Skip to content
PilzAdam edited this page Apr 9, 2013 · 6 revisions

Simple Mobs has a simple API. Other mods can use the functions to add their own mobs.

mobs:register_mob(name, definition)

This functions registers a new mob as a Minetest entity.

  • name is the name of the mob (e.g. "mobs:dirt_monster")
  • definition is a table with the following fields
    • type the type of the mob ("monster" or "animal")
    • hp_max same is in minetest.register_entity()
    • physical same is in minetest.register_entity()
    • collisionbox same is in minetest.register_entity()
    • visual same is in minetest.register_entity()
    • visual_size same is in minetest.register_entity()
    • textures same is in minetest.register_entity()
    • mesh same is in minetest.register_entity()
    • makes_footstep_sound: same is in minetest.register_entity()
    • view_range the range in that the monster will see the playerand follow him
    • walk_velocity the velocity when the monster is walking around
    • run_velocity the velocity when the monster is attacking a player
    • damage the damage per second
    • drops is list of tables with the following fields:
      • name itemname
      • chance the inverted chance (same as in abm) to get the item
      • min the minimum number of items
      • max the maximum number of items
    • armor the armor (integer)(3=lowest; 1=highest)(fleshy group is used)
    • drawtype "front" or "side"
    • water_damage the damage per second if the mob is in water
    • lava_damage the damage per second if the mob is in lava
    • light_damage the damage per second if the mob is in light
    • on_rightclick its same as in minetest.register_entity()
    • attack_type the attack type of a monster ("dogfight", "shoot", maybe somehting like "explode" in the future)
    • arrow if the attack_type="shoot" needed: the entity name of the arrow
    • shoot_interval the minimum shoot interval
    • sounds this is a table with sounds of the mob
      • random a sound that is played randomly
      • attack a sound that is played when a mob hits a player
    • animation a table with the animation ranges and speed of the model
      • stand_start
      • stand_end
      • walk_start
      • walk_end
      • run_start
      • run_end
      • punch_start
      • punch_end
      • speed_normal
      • speed_run used when mob runs behind player to make animation faster

mobs:register_spawn(name, nodes, max_light, min_light, chance, active_object_count, max_height)

This function registers a spawn algorithm for the animal. Without this function the call the mobs won't spawn.

  • name is the name of the animal/monster
  • nodes is a list of nodenames on that the animal/monster can spawn
  • max_light is the maximum of light
  • min_light is the minimum of light
  • chance is same as in register_abm()
  • active_object_count mob is only spawned if active_object_count_wider of ABM is <= this
  • max_height is the maximum height the mob can spawn

For each mob that spawns with this function is a field in mobs.spawning_mobs. It tells if the mob should spawn or not. Default is true. So other mods can only use the API of this mod by disabling the spawning of the default mobs in this mod.

mobs:register_arrow(name, definition)

This function registers a arrow for mobs with the attack type shoot.

  • name is the name of the arrow
  • definition is a table with the following values:
    • visual same is in minetest.register_entity()
    • visual_size same is in minetest.register_entity()
    • textures same is in minetest.register_entity()
    • velocity the velocity of the arrow
    • hit_player a function that is called when the arrow hits a player; this function should hurt the player
      • the parameters are (self, player)
    • hit_node a function that is called when the arrow hits a node
      • the parameters are (self, pos, node)
You can’t perform that action at this time.