After several days of working around the clock, I'm happy to announce one of the mods I've been most eager to create. It's intended for a game I will be making later, but for now I'm releasing a minetest_game version.
For the mod to work properly, you must first disable the default player script. To do that, open minetest_game/mods/default/init.lua and comment out the dofile line for player.lua.
- Mod information:
So... what is this all about? The Creatures mod is mob framework forked from PilzAdam's SimpleMobs. It is based on a different approach to what players and monsters should be like. Typically, players are players and the "superior race" of the Minetest world... while mobs only exist to attack them, let them farm meat, or have a pet.
Creatures changes that. It works by defining races, which are played by mobs and players equally. All races have their own alliances, and the player can be part of any species he wishes. What can the player reincarnate as? Anything! Players can become mice, sheep, monsters, oerkkis, or the normal player who was now turned into a mob (humans spawn in the same areas as sheep). Of course, small or non-intelligent races have limited abilities. For example, mice only offer an 1 x 1 crafting grid and have 4 inventory slots rather than 32, while having less hit points and a lower eye position (camera view offset).
By default, players start as ghosts, and need to possess a mob in order to become part of their species. Each mob has a random chance of being possessible. Possessible mobs will typically walk toward the player, who punches them in order to assume their body. When a player dies, it becomes a ghost again. Ghost players are never attacked by any race, as they are not considered part of the living world. On the other hand, ghosts are not able to have any inventory (items are instantly deleted) and cannot dig or place nodes. When the player is a ghost, the sky and screen are purple while a spooky ambient sound can be heard.
- Technical stuff:
Most work was on ensuring that the differences between players and mobs are as few as possible, and making all elements common. At the time, mobs and players both: Take environmental damage (water or light), play random sounds, have the same walk speed, the same maximum health, and more. For example, mobs use the server's default walking and running speed which assures they always match that of players, while the "speed" offset of the race equally applies to both. There's only one creature definition containing the creature's parameters.
On the downside, there are a few things I couldn't add. For instance, the collision box cannot be changed for players yet... so if the player possesses a mouse, it still can't go through tunnels which are 1 block high. Lava damage can also not be disabled... so while stone monster mobs are immune to lava, stone monster players are still hurt by it. I'm hoping I may request a few engine changes in the spirit of this mod later on.
Otherwise, I implemented several new features and abilities to the existing mob framework, while keeping it simple and lightweight. Most important one is that mobs can also attack and kill each other, not just players. I also added several new sound effects, which give the world a lot of extra depth.
I will continue to develop the mod until I feel it has everything it could and should have. Most importantly, the mod is open to new features and ideas. Also, if you wish to add something which I don't feel like coding, feel free to submit a pull request. Do however mention what you intend to do first, as there are changes I might not accept. Please let me know what you think or if you find any bugs, and I hope you all enjoy the mod!
- Screenshots and download:
Code by MirceaKitsune (LGPL), based on SimpleMobs
by PilzAdam (WTFPL). Media (models, textures, sounds) by various authors and under various licenses. Full license information included in the README.txt