Page 1 of 1

[Mod] Zoonami [0.3.0] [zoonami]

Posted: Sun Sep 13, 2020 20:10
by isaiah658


A tsunami of monsters are invading Minetest! Zoonami adds monsters that you can collect, train, and use in battles. The battles use a formspec interface that looks and feels similar to a true 2D RPG. It takes advantage of the latest additions in Minetest 5.4.0 to control font sizes, styling, and animated images in the battle formspec.

New players that join the world will be given a few monsters for testing purposes. At some point, a proper way for choosing a starter monster will be made. Monsters can be found roaming the world or spawned in via creative mode spawn eggs. Right clicking on a monster will initiate a battle. If you need to immediately exit a battle, you can press ESC or whatever key you would normally use to exit a formspec. If the sfinv mod is installed, there will be a menu tab for Zoonami. Currently it only has one option and that option adjusts the battle formspec visual scale.

Warning! This mod is incomplete, has bugs, and can cause server crashes. Only use it for testing and experimenting. There is not a lot of content to explore and enjoy at this time.

Screenshots and Videos
+ Spoiler
Main Goals
  • Ensure all formspecs are secure and cannot be used to crash a server
  • Fully implement player vs. computer battles
  • Fully implement player vs. player battles
  • Add a large amount of monsters to collect
  • Balance monster stats
  • Add details to monster spawning conditions (time of day, biomes, etc)
Help with this mod is appreciated! I'm not a "good" programmer, and formspecs were never really meant to be used as a game, so a project like this is slowly becoming hard for me to handle. Creating the monsters will be easy once the battling code is polished, secure, and feature complete.

Downloads and Dependencies

Version 0.3.0:
Source Code:
Rename the mod folder to zoonami after downloading.

Requirements: Optional Requirements: Changelog

Version 0.3.0
  • This update introduces the backpack menu. The backpack menu allows access to items, monsters, settings, and player stats. The menu can be accessed either via the menu tab if SFINV is installed or right clicking while holding the backpack item. Currently there is no crafting recipe for the backpack. It will be added in a later update.
+ Full Changelog


Re: [Mod] Zoonami [0.1.0] [zoonami]

Posted: Tue Sep 15, 2020 12:42
by freshreplicant
This is really quite neat! I have been wondering why none of the Pokemon/Pokemon-like mods ever seem to have gained steam on Minetest, when mods like Pixelmon are a big draw in the Minecraft world.

I gave it a quick go just to experiment and have some very initial thoughts/observations (I respect this mod is in its early stages so far):

Things that might need addressing:

1. The behaviour of the ESC key - is there a way to prevent this from just automatically closing the formspec battle window? I noticed that when you press ESC during a battle, the little 2D Zoonami (creature?) disappears from the world map altogether. I guess this works ok with Pokemon, where most monsters are not visible until encountered, but it's a bit jarring. Even in Pokemon, I think you can't 'Run away' from 100% of battles.

A way to keep this general behaviour but make it a bit less sudden might be to do a small animation with particles on the worldmap Zoonami sprite. Perhaps there could be different ones for different situations, such as defeating a monster, leaving the battle with your monster, capturing a monster etc.

2. When your first monster is defeated, I didn't seem to be able to continue the battle with my other monsters. Is this intentional?

3. Will there be a way to set certain Zoonami to be aggressive, i.e. they will approach you and prompt a formspec battle?

4. Is there any way to make the formspec battle backgrounds change according to the biome you are in, or does this already happen?

5. Is there a way to make the Zoonami a tiny bit thicker, i.e. not make them disappear from view entirely when viewed side on? I know that you can do that for wielded items I think, even if you only provide a 2D sprite. Of course you could choose to have them totally flat for artistic reasons too.

6. It'd be great to have your own little monsters more 'present' in the world somehow. Maybe even just as a wield item, or maybe you have a little Pokedex type computer as a wield item that you can log into to check on them (maybe this could be another formspec). Alternatively, maybe you could pick one to follow you around in the worldmap, just like in games like Pokemon Heartgold, etc.

7. Capture mechanics/items would be a big thing to integrate, but I suspect you might be able to get some more contributors to help you with this.


1. I really like your art style, it's very simple but the monsters are fun and unique looking. It doesn't feel like a 1 for 1 Pokemon ripoff. The music is actually pretty great too.

For the initial phase of the mod, I would recommend you personally churn out a few more of these Zoonami, just to get more people interested and involved, but I wonder if after this phase it would be possible to build a little utility to quickly create/edit your own Zoonami in a way that does not require you to be adept at programming. This would really help the longevity of this mod.

2. I have heard some negative opinions about previous attempts to have 2D mobs in the 3D voxel world of Minetest, but I actually thing it could really work for this type of mod. I'm a bit of a sucker for a story though, so I think it might be great to have an explicit "in universe" explanation for why these little Zoonami things are 2D. My idea: they are interdimensional interlopers or invaders. They come from the "Second Dimension" or something like that.

From there you could take that idea in all kinds of directions - the player is a kind of 'wildlife ranger' to control their spread, etc.

3. On the topic of adding more Zoonami - what about making ones of the 'non-official' but widely accepted Minetest creatures, like the dirt monster, stone monster, etc. But maybe more interestingly, the Orekki (spelling?) and Dungeon Master, since they're more distinct. That would make this mod firmly a part of the 'Minetest' community. It might even be fun to encourage other mod makers to port some of their monsters over into this quirky 2D format.

I think there was other mods that did something similar to this already, which you might be able to draw from: (A game, but has 2D monsters I think).

4. On a related note: maybe reach out to the Tuxemon community and project? It's a really neat little project, but I don't think it really got far and seems to have stalled somewhat. They do however already seem to have quite a few little Tuxemon that might be really easy to port over into this game if licensing allows (it is FOSS as far as I known). That would also help bring new people into the Minetest community maybe, and breathe some life into the project. Of course, maybe engaging that community first before porting over anything would probably be better received.

I believe they also have a Reddit, maybe they have some sort of Discord/IRC presence?

Theoretically, you could have dozens of extra Zoonami pretty quickly and maybe even get some extra eyes in on your code to help you out.

A little diversion directly from this project and more into an untapped niche for FOSS games, but still applicable:
+ Spoiler
In closing:

I'm not a programmer (though I am really trying to learn) or a pixel artist, but I'd be interested in seeing if I could help out somehow maybe once this project gains a little bit of steam and has a set plan of action. Think this idea really has a lot of potential. Best of luck with it!

Re: [Mod] Zoonami [0.1.0] [zoonami]

Posted: Wed Sep 16, 2020 00:34
by isaiah658
@freshreplicant Thank you for the detailed reply!

Things that might need addressing:
1. As far as I know, you can't disable the ESC key. I suppose I could try to reopen the formspec after a player presses ESC, but I'm not sure many people would like that. It also wouldn't stop a player from flat out exiting the game and rejoining.

My current vision of this "feature" is this. Allow players to use ESC, but their monsters retain any damage they take during wild encounters. This allows players to examine a wild monster, but leave if it turns out to be way too high of a level or isn't what they are looking for. The wild monster would reset to full health after leaving. If they use ESC during a player vs player battle, it's an automatic forfeit. Again, they could just leave the game anyways, so this approach would need to be implemented no matter what.

Also the feature of having the monster disappear after starting a battle was mostly me just trying to get the feature to work at a basic level. If a monster doesn't disappear, I would have to somehow handle making sure other players can't engage in battle with the monster. It would start getting messy. Right now it's short, sweet, and gets the job done so that the rest of the game can be tested. It would be ideal to have the monster stay around until it was defeated or despawns. The number one goal at the moment is to prevent players from being able to crash servers with this mod. Otherwise, people won't want to test it in a multiplayer environment.

2. I don't have the feature for selecting another party member after one of them faints made. Since formspecs are insecure and can have data submitted to them at any point from hacked clients, I need to lock down the interface when choosing a party member after one faints more than how the current party member selection is made from the main menu. I know how to do it, it's just not made yet.

3. Maybe? It would depend on what functionality mobs redo provides me. I would have to look into that. But I'm not sure I would want that. I know Pixelmon does that, but does it really add to the game experience? Seems more annoying than anything.

4. Most likely, yes. I just need a way to get biome data based on player location. That was actually an idea on had on my todo list.

5. The mobs are 2D because I'm bad at making 3D models and it lets me reuse existing artwork. I don't think there is a way to do this feature. Without 2D mobs, I would have had to fall back to no mobs in the world. They would be "invisible" until encountered. That's a lot more boring than 2D mobs.

6. Absolutely. I want players to be able to let one of their monsters follow them around if possible. There definitely needs to be a way to view all their stats, etc from a menu outside of battles. It just hasn't been implemented.

7. Capturing monsters is a feature not implemented yet, but wouldn't be too hard in general. It's mostly just thinking through all the scenarios that can cause bugs, crashes, or worse, exploits. I also have to make the item menu first.

1. Thank you! I didn't make the music, but I knew what I was looking for and didn't stop until I found something suitable. As for adding more monsters, there isn't really a reason to do so until I can get the battling fully working. Even the current monsters have no real thought put into any of the stats because I can't add more unique moves. Adding unique moves means making code to handle them in the battling. The battling and moves will come first, adding monsters and then balancing the stats would come after. With that being said, I could certainly keep making the artwork and have monsters "prepared" if I'm stuck on code and have nothing else to do.

2. The 2D mobs are there because there's no way a single person could 3D model a hundred monsters and animate them. It was either 2D or no roaming monsters. If there are any volunteers, they are more then welcome to attempt it. Additionally since the battle interface is 2D, it actually doesn't look too terrible nor jarring.

3. I'm personally not interested in trying to mimic other monsters. It's a lot easier to make something original and have no expectations that need to be met. It also means less confusing licensing or potentially having someone upset that I didn't make the mob look right.

4. I started making Zoonami as a true standalone game because Tuxemon was going in a direction I didn't really care for with game mechanics. I wanted something that a Pokemon fan could just pick up, and understand it. I eventually hit an obstacle with seamless 2D maps. I also realized there's no way I can make a story, character dialogue, and cohesive map on the scale of a Pokemon game, and decide to quit. It then occurred to me the huge potential of turning those art assets I made into something for Minetest. I would only have to focus on coding the battling.

As for Tuxemon art, I have considered using it. You have to be careful though. I noticed some people on the forums don't actually license their work. They just say "yeah, you can use it" and then someone else slaps a license on it. That's a big no-no. The creator needs to pick the license. Some also license them under non-commercial use. I will most likely try to make as many monsters as I can and then fill in the rest with other trustworthy artwork that is under an appropriate license. Even Tuxemon artwork is different enough though that it might be more of a hassle to make a monster from that project match the art style of this project. I appreciate the idea though.

Getting people from Tuxemon to look at the code wouldn't really help either. Anyone that wants to help has to have a strong understanding of formspecs which are specific to Minetest. If you don't understand them, we'll just end up with the same janky code that I have now.

At the moment, I consider player vs. player battles to be the biggest thing this mod could do. If players can battle each other, trade with each other, and more, it would make it really fun on servers. The idea of two players battling via a formspec is what inspired me to make this mod. That's what I need help with the most. The player vs. computer and player vs. player code.

Thank you for the long reply! I appreciate it and I know it means you want the mod to succeed. :)

Re: [Mod] Zoonami [0.1.0] [zoonami]

Posted: Wed Sep 16, 2020 10:09
by freshreplicant
No problem! Admittedly I got a bit carried away, but I think this kind of mod could fill a niche in Minetest.

I didn't really think of the multiplayer angle and the challenges associated with making the mod work for lots of players simultaneously.

1. I had the GUI dialled way up and didn't realise that the 2D mob vanished from the world when the fight starts rather than when it ends, makes total sense now that I think of it from the multiplayer angle. Also makes sense having using ESC in player vs. player battle be a forfeit: maybe it'd be good to have a points system or something to track that. It could penalise people quitting fights, or reward them for staying in. Just a thought.

This is veering back into Pokemon territory, but once you get the mechanics of the formspec battles ironed out, could you can have an alternative mode that can be toggled which uses something like "long grass" to be the place you encounter Zoonami? Either you keep them visible, or if you want to go full Pokemon, a hacky way might be to have the mobs_redo creatures be invisible and only walk around in areas with a special tall grass plant growing (though that would require them to be hostile). Alternatively, I suppose there'd have to be a custom encounter system linked to a specific node type.

On one level, people are very familiar with this concept already, but it would also allow server owners to set up special zones (like the safari parks in the Pokemon games) that players can encounter these creatures in. This would be particularly useful for servers that are organised into separate mini-game zones and might not want the creatures to wander freely everywhere. It would also mean less visual contrast between these mobs and any 3D ones the server might be using. If there was a custom spawning system without actual mobs walking around, that might also less the impact of the mod on server resources.

Personally, I quite like seeing the little 2D mobs walking around, but it'd be cool to have it be able to be toggled on and off. I did notice some funny interactions between these creatures and other mobs, as it appears that some aggressive mobs from other mods will attack them, but they just kind of bounce around when hit. Not really an issue though, just amusing to see.

2. Would it be possible to display another message once your leading creature is down? It might make it clear that there's nothing wrong with the mod, but that this is an intended mechanic. Something like "Your leading Zoonami fainted! Your opponent has escaped!" I really thing small textual, visual and audio cues make a huge difference in games. Of course this kind of stuff can be built in later, once you iron out the multiplayer and formspec interplay.

I should have known you were probably familiar with Tuxemon. I'm pretty curious about the game, but whenever I've checked it out, it doesn't seem to have much playable content, though there does seem to have been lots of work adding new monsters and other behind the scenes stuff. The licensing issues sound like a nightmare. A pity that the FOSS world doesn't have a more fully realised monster trainer game.

Respect your commitment to your own art style, the monsters you have so far have a unique feel to them. Plus, if as you suggest, players can later make their own monsters that would add a bunch of variety (come to think of it though, you might want to lock that down to server admins...or you might get some very inappropriate mobs walking around!).

Any plans for evolutions later on? What about the damage type/weaknesses system common to these types of games?

Either way, best of luck with the mod, will be keeping an eye on it as it is developed. Hopefully you do get some extra contributions from other Minetest modders, as it looks like some are pretty actively working on formspec related mods.

Re: [Mod] Zoonami [0.1.0] [zoonami]

Posted: Wed Sep 16, 2020 23:02
by isaiah658

1. Yes, I was going to implement a win/loss/forfeit amount or something similar that other players can view. It will help people know if someone is leaving battles often and how "tough" they are.

Invisible monsters would be kind of hacky. I would probably avoid that. Changing the nodes that monsters spawn on is pretty easy. If a server wanted to make special areas that the monsters spawn on, they could set them to spawn only on specific nodes.

The bouncing around from mob interactions is because I set the monsters to be invincible. So they can't harm them.

2. Sure, I can add a message letting players know that switching monsters after one faints isn't made yet. Press ESC to leave battle. I also need to prevent players from entering battles with a fainted monster and let players adjust the party order.

Making monsters would only be something server admins could do. It requires a front and back texture with a specific naming scheme and a lua table that defines all the properties of the monster. I could make documentation that explains this and include it with the mod.

Evolutions are a thing, but they'll just be referred to as "growing." For example, "Your Monster grew into New Monster!" And when referring to how many, it would be something like "This monster has three growth stages."

Re: [Mod] Zoonami [0.1.1] [zoonami]

Posted: Sun Sep 27, 2020 16:29
by isaiah658
Version 0.1.1 is now released. It's mostly code quality changes. I have also been working on allowing the player switch monsters after one faints and implementing the items menu. Once those are polished, expect them to be released.

Edit: Noticed a bug introduced in v0.1.1 that crashes that game when switching monsters. This was due to changing how skipping a turn was handled. Fixed it and released v0.1.2.

Re: [Mod] Zoonami [0.1.1] [zoonami]

Posted: Tue Sep 29, 2020 10:29
by freshreplicant
isaiah658 wrote:
Sun Sep 27, 2020 16:29
I have also been working on allowing the player switch monsters after one faints and implementing the items menu. Once those are polished, expect them to be released.
Not to be hogging his thread too much, I'm sure others are reading it and lurking...but great to hear you're working on that feature, will make a big difference once implemented.

Is there any particular type of contributions you're interested in from others, like new monsters, new mechanics, etc. or maybe you have some issues in mind that you'd like help implementing? Or do you feel you're not quite ready for that kind of input yet?

Re: [Mod] Zoonami [0.1.1] [zoonami]

Posted: Tue Sep 29, 2020 22:53
by isaiah658
freshreplicant wrote:
Tue Sep 29, 2020 10:29
Not to be hogging his thread too much, I'm sure others are reading it and lurking...but great to hear you're working on that feature, will make a big difference once implemented.

Is there any particular type of contributions you're interested in from others, like new monsters, new mechanics, etc. or maybe you have some issues in mind that you'd like help implementing? Or do you feel you're not quite ready for that kind of input yet?
You're welcome to talk on here as much as you want. Yes, actually. I have some tasks that don't require programming nor art skills.
  • Find more battle music. I'd like to have a few different battle music options in the mod for when a player is battling an NPC, another player, or a rare monster. The music will need to be licensed as CC0, CC-BY-3.0, or CC-BY-4.0. Just to find the music I currently have took a few hours of searching. The speed, theming, instruments used, etc are all important as to whether or not they match the game. For example, a realistic orchestral battle track will sound out of place. But it doesn't need to sound like something on a old gaming console either.
  • Find or make better UI sound effects. I couldn't actually find any good UI sound effects and had to use SFXR and BFXR to randomly generate sounds until I got something useful. I would prefer to find something other than using SFXR and BFXR as they would most likely clash with the music. Sound effects will need to be licensed as CC0, CC-BY-3.0, or CC-BY-4.0.
  • Find or make better sound effects for monster moves. Basically the same exact thing as the UI sound effects above. I would like many potential sound effects that way I don't have to search for them when making a new move.
  • Rethink how monster stats factor in to damage dealt. One thing I never liked about Pokemon was the damage calculation formula. It's a very weird formula that you can't do in your head. Thus you never really know how much damage you will deal. I thought I would be clever and just have hard attack and defense values, but I see why that doesn't work now. If monsters are a low level, and the attack is 20 and the defense is 10, 10 damage would be dealt. That would be a decent amount for that level. If it's a higher level, and the stats increase linearly, it's still only going to deal 10 damage even though higher level monsters have more health. That is why Pokemon uses the monsters level when determining damage. The easy way is factor in the level and display that output to the player via the move tooltip instead of the move damage percentage. But I want to consider other options as well. This plays a big role is allowing monster stats to be balanced.
  • Coming up with a monster typing chart that allows monsters to have mostly equal advantages and disadvantages over other types. I actually haven't chosen any types yet. I have some in the game, but nothing actually planned. I was maybe going to use Yu-Gi-Oh attributes and types for some inspiration. Monster types and move types should be the same, so we need types that can match both. For example, "goblin" would make a good monster type, but wouldn't make sense for a move type. Thus, it wouldn't be a good fit.

Re: [Mod] Zoonami [0.1.1] [zoonami]

Posted: Sun Oct 04, 2020 16:02
by freshreplicant
isaiah658 wrote:
Tue Sep 29, 2020 22:53

[Find more battle music. I'd like to have a few different battle music options in the mod for when a player is battling an NPC, another player, or a rare monster. The music will need to be licensed as CC0, CC-BY-3.0, or CC-BY-4.0. Just to find the music I currently have took a few hours of searching. The speed, theming, instruments used, etc are all important as to whether or not they match the game. For example, a realistic orchestral battle track will sound out of place. But it doesn't need to sound like something on a old gaming console either.

I'm no good at the background technical nitty gritty stuff, I never actually really played Pokemon or this genre of game intently and I'm universes away from a 'min maxer' (hate that stuff), so I'm afraid I'd be no use with balancing, coming up with moves, etc.

I did a bit of browsing for music and came across some potential ideas. Don't know exactly what style you're looking for, but I thought these could work for monster training games: ... nter-theme ... amitracker

Very different style with more 'real' instruments: ... of-atheria

There's also big collections like this one:

Saw that you're working on the per-biome battle background feature, that's great.

Eventually maybe spawning structures like gyms and clinic type places would be cool.

Re: [Mod] Zoonami [0.3.0] [zoonami]

Posted: Sun Oct 04, 2020 20:55
by isaiah658
Zoonami 0.3.0 is released. It doesn't look like much, but it adds a better looking menu for managing settings, items, monsters, and player stats. I managed to keep SFINV an optional dependency by adding a backpack item that can also open the backpack menu. It was necessary to get this made that way I know how and where items for battle will be stored. Next feature update will most likely implement items including using some items in battle. Version 0.2.0 also expanded on different battle background based on biome names or node names. Below are some screenshots. Only some of the biome backgrounds are shown.
+ Screenshots

Re: [Mod] Zoonami [0.3.0] [zoonami]

Posted: Sun Oct 04, 2020 22:01
by isaiah658
"Eventually maybe spawning structures like gyms and clinic type places would be cool."

Yes, map generation ideas are on my todo list. At the very least, I want to add plants, berry bushes, hopefully some buildings. If I wanted to go all out, I would make a separate mod specifically for the map generation.