Download (286 KB)
For Minetest 5.8 and above

How do I install this?

Arena_lib is a library for Minetest working as a core for any arena mini-game you have in mind. It comes with an arena manager and a signs system. The latter creates a bridge inside your own server between the hub and your actual mod (deathmatch, capture the flag, assault, you name it). In other words, you don't have to do the boring job and you can focus exclusively on your minigame(s) :*

What's new: 7.3.0 - "Pompo nelle casse"
  • Add functions to handle audio directly through arena_lib (arena_lib.sound_play*(..))
  • Add can_disable_teams ingredient: don't let arenas disable teams by default (if minigame features teams)
  • Add chat_settings ingredient
  • Add MT's new physics values in SETTINGS.lua
  • Add BLOCKED_CMDS settings: allow server admins to block specific commands inside minigames
  • Let Hub manage blocked commands if present
  • Add is_player_playing(..) util
  • audio_lib: use custom music type "notifications" for the majority of arena_lib's sfx
  • Have HUD functions also support audio_lib custom sound types
  • Possibility to forcibly enable a builtin HUD once in game
  • Spawners can now exceed the amount of players
  • Only delete extra teams spawners when setting the teams amount to something lesser than the current amount
  • Editor: when entering, if no spawners are present but a region is, teleport at the centre of the region
  • Editor: show what team you are editing spawners for when entering the spawner section
  • Editor: turn name of players section into "Players and teams", when teams are enabled

Older and dev changelogs

Config

  1. Install it as any other mod
  2. Launch the world at least once with arena_lib enabled and then check worlds/nameofyourworld/arena_lib to customise it
  3. (modders only) First time? Check out the wiki to create your first minigame. Otherwise, dive into the full documentation

Known conflicts

Beds or any other mod overriding the default respawn system
SkinsDB or any other mod applying a 3D model onto the player, if teams_color_overlay is used
Weather or any other mod changing players skybox at runtime (custom celestial vaults will be overridden)

Coming next

Have a look at the project milestones

Reviews

Review

Do you recommend this mod?

  • Helps make a diverse array of minigames... almost any minigame you want.

    Arena_lib is very useful for making minigames (I have made/helped make 5 minigames so far) It provides well-documented callbacks to run and handle your minigame, as well as nice extras such as spectate mode, an arena editor GUI, background music handler, and more.

    It is based on the idea of punching a sign to enter a queue for the minigame. The sign displays information about the arena (number of players, arena status, etc) and rightclicking it gives more into and a menu to enter spectate.

    Arenas are physically just a collection of positions that the players will be teleported to when the game starts. its up to the arena maker to make an inescapable arena, and make the arena have the features that it should for the minigame.

    There are per-arena variables (properties) that can be set in the arena editor. That can let you do things like clear the board, or reset it, (by storing positions) or set arena specific variables to initialize that arena.

    the arena editor is also expandable per minigame mod.

    Did I mention, the documentation is great?

    0 comments
  • Great lib!

    It saved me the immense effort of having to create an arena management system from scratch :D

    1 comments
  • Great Mod!

    I like this mod. Now everybody can make a minigame. At my old server(which i never published) i wanted make a mesewars minigame, but without this libary that would be maybe impossile. Thankyou Zughy! Edit: Maybe you could add minigames type: tempoary: minigames which use round system like block league alwaysrunning: minigames which you can join every time you like and quit like skyblock.

    Oh and please add that you can quit arenas which are singleplayer, thankyou.

    1 comments
  • Really easy to use and powerful

    Following the well written tutorial in the wiki I was able to prototype some ideas I had, in just 50 lines of code I created my minigame, registered all the custom items with their relative actions and then I created the arenas with the built in editor arena_lib provides.

    0 comments
  • Good Mod!

    I used this library for my entry to the Minetest Game Jam 2023, which I sadly didn't finish in time.

    Its really nice honestly. APIs are powerful both for minigames and external stuff (see the stent mod MisterE made for my entry!), arena editor is really easy to use and can be customised by your minigames. Documentation is really good too.

    I will definitly use it next time 🙂

    What I think could be improved:

    Arena properties doesn't handle real vectors (vectors.new). When you define them with code it works but it doesn't from the arena settings editor; the property is handeled as a table with displayed keys order not matching the xyz order and converted as a regular table instead. There is the return (expression) syntax but it's run in an empty global env and would look ugly anyways. I think the mod should check if the initial setting in arena definition is a vector with vector.check and have a special GUI to edit those in arena editor settings.

    I would also love having LuaLS typing annotations (or headers) since it greatly improve developer experience, but it would require this Minetest issue anyways.

    1 comments
  • Quite powerful

    I haven't worked w/ arena_lib a lot so far but from what I've learned by going through the documentation and fixing some bugs of existing minigames, I think it seems quite powerful. What is especially interesting is the editor mode where you can edit arenas with special "items" in your hotbar which act like some kind of "mini menu". It is unusual but I understood it somehow.

    Nothing of the mod's design seems to disturb me so far, coding with it is fairly reasonable with no weird surprises.

    A minor downside are the signs because they introduce non-translatable text. Signs are hardcoded in arena_lib and can't be removed but I've read it is possible to add alternative entry methods (not tested so far).

    The only major criticism I currently have is that there is no player or admin manual, only a programmer's manual because not everything is obvious from the player/admin perspective (although it is mostly intuitive already). For example, I don't know how many players are aware that you can rightclick the signs to enter spectator mode. And it also took me quite some time to figure out how to set up my own test world with arena minigames because the documentation doesn't say.

    Arena_lib has been successfully supporting the A.E.S. minigame server which is I guess evidence enough for it's power. Overall, I can give it a clear recommend.

    1 comments
  • If you need to make a minigame this is the library for you

    I' ve used this library since the earliest versions and it has only improved since then. To date it is in my opinion the best way to create minigames on minetests, fast, easy to use, well documented, and constantly evolving.

    0 comments
  • Great lib! Very helpful

    I REALLY recommend this lib because it helps and give a boost about the creation of a minigame in Minetest. There is also a "sampleminigame" Mod that you can use to try the lib and it could be a usefull template to start to create your first minigame!

    I also would like to tell that there is a huge and detailed documentation that helps and guide you while coding the mod (in my case, all my questions found the solutions inside there)

    I really appreciated it 👍!

    1 comments

Used By