1 local minetest,math,vector = minetest,math,vector
2 --this is where mobs are defined
4 local path = minetest.get_modpath(minetest.get_current_modname())
6 dofile(path.."/spawning.lua")
7 dofile(path.."/api/api_hook.lua")
8 dofile(path.."/items.lua")
9 dofile(path.."/chatcommands.lua")
16 collide_with_objects = false,
17 collisionbox = {-0.37, 0, -0.37, 0.37, 0.85, 0.37},
19 visual_size = {x = 3, y = 3},
22 --blank out the first two to create adult pig
26 --these are used to anchor a point to the head position
31 debug_head_pos = false,
32 head_directional_offset = 0.5, --used in vector.multiply(minetest.yaw_to_dir(body_yaw),head_offset)
33 head_height_offset = 0.8, --added to the base y position
34 --use this to correct the head position initially because it becomes severly offset - look at your blender model to get this perfect
35 head_position_correction = vector.new(0,3,-0.5),
36 --this is used to tell the game the orientation of the bone (swaps x to and y, then z and y)
37 head_coord = "horizontal",
42 automatic_face_movement_dir = 0,
43 automatic_face_movement_max_rotation_per_sec = 300,
44 makes_footstep_sound = false,
46 gravity = {x = 0, y = -9.81, z = 0},
47 movement_type = "walk",
52 item_drop = "mob:raw_porkchop",
53 standing_frame = {x=0,y=0},
54 moving_frame = {x=0,y=40},
55 animation_multiplier = 20,
61 die_sound = "pig_die",
65 attacked_hostile = false,
66 attack_type = "punch",
70 --explosion_radius = 4, -- how far away the mob has to be to initialize the explosion
71 --explosion_power = 7, -- how big the explosion has to be
72 --explosion_time = 3, -- how long it takes for a mob to explode
74 visual_size = vector.new(1/3,2/3,1/3),
75 position = vector.new(0,3,0),
84 collide_with_objects = false,
85 collisionbox = {-0.37, 0, -0.37, 0.37, 0.85, 0.37},
87 visual_size = {x = 3, y = 3},
90 "sheep_head_wool.png","sheep_wool.png","sheep.png"
91 --"sheep_head_shaved.png","nothing.png","sheep.png"
94 --these are used to anchor a point to the head position
99 debug_head_pos = false,
100 head_directional_offset = 0.571, --used in vector.multiply(minetest.yaw_to_dir(body_yaw),head_offset)
101 head_height_offset = 1.15, --added to the base y position
102 --use this to correct the head position initially because it becomes severly offset - look at your blender model to get this perfect
103 head_position_correction = vector.new(0,4.1,-0.86),
104 --this is used to tell the game the orientation of the bone (swaps x to and y, then z and y)
105 head_coord = "horizontal",
110 automatic_face_movement_dir = 0,
111 automatic_face_movement_max_rotation_per_sec = 300,
112 makes_footstep_sound = false,
114 gravity = {x = 0, y = -9.81, z = 0},
115 movement_type = "walk",
120 item_drop = "mob:raw_porkchop",
121 standing_frame = {x=0,y=0},
122 moving_frame = {x=0,y=40},
123 animation_multiplier = 20,
126 death_rotation = "x",
128 hurt_sound = "sheep",
133 attacked_hostile = false,
134 attack_type = "punch",
137 c_mob_data = {sheared = false},
139 custom_on_activate = function(self)
140 --print(dump(self.c_mob_data))
141 if self.c_mob_data.sheared == true then
142 self.object:set_properties({textures = {"sheep_head_shaved.png","nothing.png","sheep.png"}})
146 custom_on_punch = function(self)
147 if self.c_mob_data.sheared == false then
148 self.object:set_properties({textures = {"sheep_head_shaved.png","nothing.png","sheep.png"}})
149 self.c_mob_data = {sheared=true}
150 local pos = self.object:get_pos()
152 minetest.throw_item(pos,{name="weather:snow_block"})
156 visual_size = vector.new(1/3,2/3,1/3),
157 position = vector.new(0,3,0),
167 collide_with_objects = false,
168 collisionbox = {-0.225, 0, -0.225, 0.225, 0.675, 0.225},
170 visual_size = {x = 3, y = 3},
171 mesh = "chicken.b3d",
173 --blank out the first two to create adult pig
177 --these are used to anchor a point to the head position
182 debug_head_pos = false,
183 rotational_correction = -math.pi/2,
184 head_directional_offset = 0.2, --used in vector.multiply(minetest.yaw_to_dir(body_yaw),head_offset)
185 head_height_offset = 0.82, --added to the base y position
186 --use this to correct the head position initially because it becomes severly offset - look at your blender model to get this perfect
187 head_position_correction = vector.new(0,1.8,-0.89),
188 --this is used to tell the game the orientation of the bone (swaps x to and y, then z and y)
189 head_coord = "vertical",
195 automatic_face_movement_dir = 90,
196 automatic_face_movement_max_rotation_per_sec = 300,
197 makes_footstep_sound = false,
199 gravity = {x = 0, y = -9.81, z = 0},
200 movement_type = "walk",
205 item_drop = {"mob:egg","mob:feather"},
206 standing_frame = {x=20,y=20},
207 moving_frame = {x=0,y=20},
208 animation_multiplier = 15,
211 death_rotation = "z",
213 hurt_sound = "chicken_hurt",
214 die_sound = "chicken_die",
218 attacked_hostile = false,
219 attack_type = "punch",
221 --explosion_radius = 4, -- how far away the mob has to be to initialize the explosion
222 --explosion_power = 7, -- how big the explosion has to be
223 --explosion_time = 3, -- how long it takes for a mob to explode
225 visual_size = vector.new(1/6,1/2.2,1/6),
226 position = vector.new(0,2.3,0),
232 local acceptable_drawtypes = {
234 ["glasslike"] = true,
235 ["glasslike_framed"] = true,
236 ["glasslike_framed_optional"] = true,
238 ["allfaces_optional"] = true,
246 collide_with_objects = false,
247 collisionbox = {-0.37, 0, -0.37, 0.37, 1.75, 0.37},
249 visual_size = {x = 9, y = 9},
250 mesh = "snowman.b3d",
252 "snowman.png","snowman.png","snowman.png","snowman.png","snowman.png","snowman.png",
255 --these are used to anchor a point to the head position
260 debug_head_pos = false,
261 rotational_correction = math.pi/2,
262 head_directional_offset = 0.01, --used in vector.multiply(minetest.yaw_to_dir(body_yaw),head_offset)
263 head_height_offset = 1.65, --added to the base y position
264 --use this to correct the head position initially because it becomes severly offset - look at your blender model to get this perfect
265 head_position_correction = vector.new(0,0.6,0),
266 --this is used to tell the game the orientation of the bone (swaps x to and y, then z and y)
267 head_coord = "vertical",
273 automatic_face_movement_dir = -90,
274 automatic_face_movement_max_rotation_per_sec = 300,
275 makes_footstep_sound = false,
277 gravity = {x = 0, y = -9.81, z = 0},
278 movement_type = "walk",
283 item_drop = {"weather:snowball","main:coal","mob:carrot","main:stick"},
284 standing_frame = {x=0,y=0},
285 moving_frame = {x=0,y=0},
286 animation_multiplier = 10,
289 death_rotation = "z",
296 attacked_hostile = true,
297 attack_type = "projectile",
298 projectile_type = "weather:snowball",
299 projectile_timer_cooldown = 1,
301 custom_function = function(self,dtime,moveresult)
302 if moveresult and moveresult.touching_ground then
303 local pos = vector.floor(vector.add(self.object:get_pos(),0.5))
304 if self.custom_old_pos and not vector.equals(pos,self.custom_old_pos) then
305 node = minetest.get_node(pos).name
306 if node == "air" then
307 node = minetest.get_node(vector.new(pos.x,pos.y-1,pos.z)).name
308 def = minetest.registered_nodes[node]
310 if not def then return end
311 drawtype = acceptable_drawtypes[def.drawtype]
312 walkable = def.walkable
313 liquid = (def.liquidtype ~= "none")
314 if not liquid and walkable and drawtype and node ~= "main:ice" then
315 minetest.set_node(pos,{name="weather:snow"})
319 self.custom_old_pos = pos
324 custom_timer_function = function(self,dtime)
325 if weather_type and weather_type ~= 1 then
326 self.object:punch(self.object, 2,
328 full_punch_interval=1.5,
329 damage_groups = {damage=2},
334 visual_size = vector.new(1/4,2/3,1/4),
335 position = vector.new(0,3.3,0),
344 collide_with_objects = false,
345 collisionbox = {-0.37, 0, -0.37, 0.37, 0.85, 0.37},
347 visual_size = {x = 3, y = 3},
350 --blank out the first two to create adult pig
351 "phyg.png","wings.png"
354 --these are used to anchor a point to the head position
359 debug_head_pos = false,
360 head_directional_offset = 0.5, --used in vector.multiply(minetest.yaw_to_dir(body_yaw),head_offset)
361 head_height_offset = 0.8, --added to the base y position
362 --use this to correct the head position initially because it becomes severly offset - look at your blender model to get this perfect
363 head_position_correction = vector.new(0,3,-0.5),
364 --this is used to tell the game the orientation of the bone (swaps x to and y, then z and y)
365 head_coord = "horizontal",
370 automatic_face_movement_dir = 0,
371 automatic_face_movement_max_rotation_per_sec = 300,
372 makes_footstep_sound = false,
373 takes_fall_damage = false,
374 make_jump_noise = false,
376 gravity = {x = 0, y = -1, z = 0},
377 movement_type = "walk",
382 item_drop = "main:gold",
386 standing_frame = {x=0,y=0},
387 moving_frame = {x=0,y=40},
388 animation_multiplier = 20,
391 death_rotation = "x",
394 die_sound = "pig_die",
398 attacked_hostile = false,
399 attack_type = "punch",
401 --explosion_radius = 4, -- how far away the mob has to be to initialize the explosion
402 --explosion_power = 7, -- how big the explosion has to be
403 --explosion_time = 3, -- how long it takes for a mob to explode
405 visual_size = vector.new(1/3,2/3,1/3),
406 position = vector.new(0,3,0),
414 mobname = "big_slime",
416 collide_with_objects = false,
417 collisionbox = {-1.25, 0, -1.25, 1.25, 2.5, 1.25},
419 visual_size = {x = 15, y = 15},
424 collision_boundary = 2.5,
427 automatic_face_movement_dir = 90,
428 automatic_face_movement_max_rotation_per_sec = 300,
429 makes_footstep_sound = false,
431 gravity = {x = 0, y = -9.81, z = 0},
432 movement_type = "jump",
433 make_jump_noise = true,
438 death_rotation = "z",
439 hurt_sound = "slime_die",
440 die_sound = "slime_die",
441 attack_type = "punch",
444 custom_on_death = function(self)
445 local pos = self.object:get_pos()
447 local obj = minetest.add_entity(pos,"mob:medium_slime")
453 --this is used to properly position fire when the mob catches on fire
455 visual_size = vector.new(1/5.8,1/3.3,1/5.8),
456 position = vector.new(0,1.5,0),
463 mobname = "medium_slime",
465 collide_with_objects = false,
466 collisionbox = {-0.625, 0, -0.625, 0.625, 1.25, 0.625},
468 visual_size = {x = 7.5, y = 7.5},
475 automatic_face_movement_dir = 90,
476 automatic_face_movement_max_rotation_per_sec = 300,
477 makes_footstep_sound = false,
479 gravity = {x = 0, y = -9.81, z = 0},
480 movement_type = "jump",
481 make_jump_noise = true,
486 death_rotation = "z",
487 hurt_sound = "slime_die",
488 die_sound = "slime_die",
490 attack_type = "punch",
492 custom_on_death = function(self)
493 local pos = self.object:get_pos()
496 local obj = minetest.add_entity(pos,"mob:small_slime")
503 visual_size = vector.new(1/5.8,1/3.3,1/5.8),
504 position = vector.new(0,1.5,0),
511 mobname = "small_slime",
513 collide_with_objects = false,
514 collisionbox = {-0.3, 0, -0.3, 0.3, 0.6, 0.3},
516 visual_size = {x = 3.7, y = 3.7},
523 automatic_face_movement_dir = 90,
524 automatic_face_movement_max_rotation_per_sec = 300,
525 makes_footstep_sound = false,
527 gravity = {x = 0, y = -9.81, z = 0},
528 movement_type = "jump",
529 make_jump_noise = true,
534 death_rotation = "z",
535 hurt_sound = "slime_die",
536 die_sound = "slime_die",
538 attack_type = "punch",
539 item_drop = "mob:slimeball",
542 visual_size = vector.new(1/5.8,1/3.3,1/5.8),
543 position = vector.new(0,1.5,0),
555 collide_with_objects = false,
556 collisionbox = {-0.37, -0.4, -0.37, 0.37, 0.5, 0.37},
558 visual_size = {x = 3, y = 3},
561 "creepig_body.png","creepig_leg.png","creepig_leg.png","creepig_leg.png","creepig_leg.png"
565 automatic_face_movement_dir = -90.0,
566 automatic_face_movement_max_rotation_per_sec = 300,
567 makes_footstep_sound = false,
569 gravity = {x = 0, y = -9.81, z = 0},
570 movement_type = "walk",
575 item_drop = "mob:cooked_porkchop",
577 standing_frame = {x=0,y=0},
578 moving_frame = {x=5,y=15},
579 animation_multiplier = 5,
582 has_head = true, --remove this when mesh based head rotation is implemented
583 head_visual = "mesh",
584 head_visual_size = {x = 1.1, y = 1.1},
585 head_mesh = "pig_head.x",
586 head_textures ={"creepig_head.png","creepig_nose.png"},
587 head_mount = vector.new(0,1.2,1.9),
589 death_rotation = "z",
592 die_sound = "pig_die",
594 attack_type = "explode",
595 --projectile_timer_cooldown = 5,
596 --projectile_type = "tnt:tnt",
598 explosion_radius = 2, -- how far away the mob has to be to initialize the explosion
599 explosion_power = 7, -- how big the explosion has to be
600 explosion_time = 5, -- how long it takes for a mob to explode
613 collide_with_objects = false,
614 collisionbox = {-0.23,0, -0.23, 0.23, 1.7, 0.23},
616 visual_size = {x = 3.2, y = 3.2},
623 automatic_face_movement_max_rotation_per_sec = 300,
624 makes_footstep_sound = false,
626 gravity = {x = 0, y = -9.81, z = 0},
627 movement_type = "walk",
630 hostile_cooldown = false,
633 item_drop = "mob:cooked_porkchop",
635 standing_frame = {x=0,y=0},
636 moving_frame = {x=0,y=40},
637 animation_multiplier = 20,
641 --these are used to anchor a point to the head position
643 automatic_face_movement_dir = 0,
645 debug_head_pos = false,
646 --this always has to be slightly positive
647 head_directional_offset = 0.01,
648 head_height_offset = 1.55, --added to the base y position
649 --use this to correct the head position initially because it becomes severly offset - look at your blender model to get this perfect
650 head_position_correction = vector.new(0,2.4,0),
651 head_coord = "vertical",
655 death_rotation = "x",
659 sound_pitch_mod_min = 60,
660 sound_pitch_mod_max = 80,
661 sound_pitch_mod_min_die = 50,
662 sound_pitch_mod_max_die = 70,
663 attack_type = "punch",
669 visual_size = vector.new(1/4,2/3,1/4),
670 position = vector.new(0,3.3,0),
680 collide_with_objects = false,
681 collisionbox = {-0.37,0, -0.37, 0.37, 1.5, 0.37},
683 visual_size = {x = 3.2, y = 3.2},
684 mesh = "creeper.b3d",
690 automatic_face_movement_max_rotation_per_sec = 300,
691 makes_footstep_sound = false,
693 gravity = {x = 0, y = -9.81, z = 0},
694 movement_type = "walk",
697 hostile_cooldown = false,
700 item_drop = "mob:gunpowder",
702 standing_frame = {x=0,y=0},
703 moving_frame = {x=0,y=40},
704 animation_multiplier = 20,
708 --these are used to anchor a point to the head position
710 automatic_face_movement_dir = 0,
712 debug_head_pos = false,
713 --this always has to be slightly positive
714 head_directional_offset = 0.01,
715 head_height_offset = 1.45, --added to the base y position
716 --use this to correct the head position initially because it becomes severly offset - look at your blender model to get this perfect
717 head_position_correction = vector.new(0,2.4,0),
718 head_coord = "vertical",
722 death_rotation = "x",
724 hurt_sound = "creeper_hurt",
725 die_sound = "creeper_hurt",
727 attack_type = "explode",
728 --projectile_timer_cooldown = 5,
729 --projectile_type = "tnt:tnt",
731 explosion_radius = 4, -- how far away the mob has to be to initialize the explosion
732 explosion_power = 4, -- how big the explosion has to be
733 explosion_time = 3, -- how long it takes for a mob to explode
735 die_in_light = false,
737 visual_size = vector.new(1/4,2/3,1/4),
738 position = vector.new(0,3.3,0),
747 collide_with_objects = false,
748 collisionbox = {-0.37,0, -0.37, 0.37, 1.5, 0.37},
750 visual_size = {x = 3.2, y = 3.2},
751 mesh = "creeper.b3d",
757 automatic_face_movement_max_rotation_per_sec = 300,
758 makes_footstep_sound = false,
760 gravity = {x = 0, y = -9.81, z = 0},
761 movement_type = "walk",
764 hostile_cooldown = false,
767 item_drop = "mob:gunpowder",
769 standing_frame = {x=0,y=0},
770 moving_frame = {x=0,y=40},
771 animation_multiplier = 20,
775 --these are used to anchor a point to the head position
777 automatic_face_movement_dir = 0,
779 debug_head_pos = false,
780 --this always has to be slightly positive
781 head_directional_offset = 0.01,
782 head_height_offset = 1.45, --added to the base y position
783 --use this to correct the head position initially because it becomes severly offset - look at your blender model to get this perfect
784 head_position_correction = vector.new(0,2.4,0),
785 head_coord = "vertical",
788 damage_color = "blue",
790 death_rotation = "x",
792 hurt_sound = "creeper_hurt",
793 die_sound = "creeper_hurt",
795 attack_type = "explode",
796 explosion_type = "weather:snow_block",
797 --projectile_timer_cooldown = 5,
798 --projectile_type = "tnt:tnt",
800 explosion_radius = 4, -- how far away the mob has to be to initialize the explosion
801 explosion_power = 4, -- how big the explosion has to be
802 explosion_time = 3, -- how long it takes for a mob to explode
804 die_in_light = false,
806 visual_size = vector.new(1/4,2/3,1/4),
807 position = vector.new(0,3.3,0),
815 mobname = "nitro_creeper",
817 collide_with_objects = false,
818 collisionbox = {-0.37,0, -0.37, 0.37, 1.5, 0.37},
820 visual_size = {x = 3.2, y = 3.2},
821 mesh = "creeper.b3d",
827 automatic_face_movement_max_rotation_per_sec = 300,
828 makes_footstep_sound = false,
830 gravity = {x = 0, y = -9.81, z = 0},
831 movement_type = "walk",
834 hostile_cooldown = false,
837 item_drop = "mob:gunpowder",
839 damage_color = "blue",
841 standing_frame = {x=0,y=0},
842 moving_frame = {x=0,y=40},
843 animation_multiplier = 20,
847 --these are used to anchor a point to the head position
849 automatic_face_movement_dir = 0,
851 debug_head_pos = false,
852 --this always has to be slightly positive
853 head_directional_offset = 0.01,
854 head_height_offset = 1.45, --added to the base y position
855 --use this to correct the head position initially because it becomes severly offset - look at your blender model to get this perfect
856 head_position_correction = vector.new(0,2.4,0),
857 head_coord = "vertical",
861 death_rotation = "x",
863 hurt_sound = "creeper_hurt",
864 die_sound = "creeper_hurt",
866 attack_type = "explode",
867 --projectile_timer_cooldown = 5,
868 --projectile_type = "tnt:tnt",
870 explosion_radius = 6, -- how far away the mob has to be to initialize the explosion
871 explosion_power = 6, -- how big the explosion is (radius)
872 explosion_time = 3, -- how long it takes for a mob to explode
873 explosion_blink_timer = 0.1, -- how fast the blinking happens
875 die_in_light = false,
877 visual_size = vector.new(1/4,2/3,1/4),
878 position = vector.new(0,3.3,0),
883 local spider_eyes = {}
885 spider_eyes.initial_properties = {
887 mesh = "spider_eyes.b3d",
888 textures = {"spider_eyes.png"},
890 collisionbox = {0, 0, 0, 0, 0, 0}
892 spider_eyes.glow = -1
893 spider_eyes.on_step = function(self)
894 if not self.owner or not self.owner:get_luaentity() then
897 local owner_head_bone = self.owner:get_luaentity().head_bone
898 local position,rotation = self.owner:get_bone_position(owner_head_bone)
899 self.object:set_attach(self.owner, owner_head_bone, vector.new(0,0,0), rotation)
902 minetest.register_entity("mob:spider_eyes",spider_eyes)
908 collide_with_objects = false,
909 collisionbox = {-0.37, 0, -0.37, 0.37, 0.85, 0.37},
911 visual_size = {x = 3, y = 3},
917 --these are used to anchor a point to the head position
919 head_bone = "body.head",
920 debug_head_pos = false,
921 rotational_correction = -math.pi/2,
922 head_directional_offset = 0.3, --used in vector.multiply(minetest.yaw_to_dir(body_yaw),head_offset)
923 head_height_offset = 0.63, --added to the base y position
924 --use this to correct the head position initially because it becomes severly offset - look at your blender model to get this perfect
925 head_position_correction = vector.new(0,1.24,0),
926 --this is used to tell the game the orientation of the bone (swaps x to and y, then z and y)
927 head_coord = "horizontal",
932 automatic_face_movement_dir = 90,
933 automatic_face_movement_max_rotation_per_sec = 300,
934 makes_footstep_sound = false,
936 gravity = {x = 0, y = -9.81, z = 0},
937 movement_type = "walk",
942 item_drop = "mob:string",
943 standing_frame = {x=21,y=21},
944 moving_frame = {x=0,y=20},
945 animation_multiplier = 20,
948 death_rotation = "z",
950 hurt_sound = "spider",
951 die_sound = "spider_die",
957 friendly_in_daylight = true,
958 attacked_hostile = true,
960 attack_type = "punch",
963 custom_on_activate = function(self)
964 local eyes = minetest.add_entity(self.object:get_pos(), "mob:spider_eyes")
965 eyes:set_attach(self.object, "body.head", vector.new(0,0,0), vector.new(0,0,0))
966 eyes:get_luaentity().owner = self.object
967 if math.random() > 0.998 then
968 local obj = minetest.add_entity(self.object:get_pos(),"mob:pig")
969 local obj2 = minetest.add_entity(self.object:get_pos(),"tnt:tnt")
970 local obj3 = minetest.add_entity(self.object:get_pos(),"boat:boat")
972 obj2:get_luaentity().timer = 7
973 obj2:get_luaentity().radius = 7
975 obj:set_attach(self.object,"",vector.new(0,3,0),vector.new(0,90,0))
976 obj2:set_attach(obj,"",vector.new(0,4.5,0),vector.new(0,90,0))
977 obj3:set_attach(obj2,"",vector.new(0,6.5,0),vector.new(0,0,0))
979 obj:set_properties({visual_size={x=1,y=1}})
980 obj2:set_properties({visual_size={x=1/3,y=1/3}})
983 --explosion_radius = 4, -- how far away the mob has to be to initialize the explosion
984 --explosion_power = 7, -- how big the explosion has to be
985 --explosion_time = 3, -- how long it takes for a mob to explode
986 --this is used to properly position fire when the mob catches on fire
988 visual_size = vector.new(1.3/3,2/3,1.3/3),
989 position = vector.new(0,4,0),
998 collide_with_objects = false,
999 collisionbox = {-0.37, 0, -0.37, 0.37, 0.85, 0.37},
1001 visual_size = {x = 3, y = 3},
1002 mesh = "spider.b3d",
1007 --these are used to anchor a point to the head position
1009 head_bone = "body.head",
1010 debug_head_pos = false,
1011 rotational_correction = -math.pi/2,
1012 head_directional_offset = 0.3, --used in vector.multiply(minetest.yaw_to_dir(body_yaw),head_offset)
1013 head_height_offset = 0.63, --added to the base y position
1014 --use this to correct the head position initially because it becomes severly offset - look at your blender model to get this perfect
1015 head_position_correction = vector.new(0,1.24,0),
1016 --this is used to tell the game the orientation of the bone (swaps x to and y, then z and y)
1017 head_coord = "horizontal",
1022 automatic_face_movement_dir = 90,
1023 automatic_face_movement_max_rotation_per_sec = 300,
1024 makes_footstep_sound = false,
1026 gravity = {x = 0, y = -9.81, z = 0},
1027 movement_type = "walk",
1032 item_drop = "mob:string",
1033 standing_frame = {x=21,y=21},
1034 moving_frame = {x=0,y=20},
1035 animation_multiplier = 20,
1038 death_rotation = "z",
1040 hurt_sound = "spider",
1041 die_sound = "spider_die",
1047 friendly_in_daylight = true,
1048 attacked_hostile = true,
1050 attack_type = "punch",
1051 group_attack = true,
1053 --explosion_radius = 4, -- how far away the mob has to be to initialize the explosion
1054 --explosion_power = 7, -- how big the explosion has to be
1055 --explosion_time = 3, -- how long it takes for a mob to explode
1057 visual_size = vector.new(1.3/3,2/3,1.3/3),
1058 position = vector.new(0,4,0),