I don't like your negativity. Just because there are many mods should not mean we should not start trying to standardize
some groups.
There are some groups that are so universal, so uniquely useful for basically everyone, that they just ought to be standard. For example, the group “not_in_creative_inventory=1” is so universally accepted standard, you might think it's a special group. Yet you don't complain.
The reason to standardize such group names is to have unified names. Groups would be useless if modders would just recklessly use, like, 3 different group names for exacly the same thing (like, “not_in_creative_inventory”, “notincreativeinventory”, “non_creative”, etc.). It's really that simple.
By no means I am saying we should standardize everything. This would be madness and too chaotic anyway. Clearly, groups that are mod-specific should normally not be standard. But these cases are very obvious anyway.
Your example “puts_out_fire” is specific to a very specific gameplay mechanic and you are right in that
that one particular group should not be considered “standard”, but more MTG-specific. But that's not a reason to reject any attempt of standardization whatsoever.
I disagree completely with your idea to force the fire mod to overwrite all flammable items. That's insanity, it would have to depend on ALL mods that would introduce flammable items, which is impossible. Plus, overwriting item forces you to add a dependency on the item.
Also, you seem to fail to understand the point of groups: The point of groups is exactly to AVOID hard dependencies on specific mods. Groups are meant to be a lightwight feature to put items into buckets
fast. They are very useful for concepts that are shared over many many mods. Especially “crafting recipe groups” like “wood”, “wool”, etc. For concepts that are shared over many many mods, the dependency system won't help you. It will crash down on you in flames.
Imagine we had no “not_in_creative_inventory”, but instead would have to
depend on a specific creative mod to call a mod-specific function. For each different Creative Inventory mod we would have to add new boilerplate code then, for a single node that we want to hide. Welcome to the deepest layers of Dependency Hell.
overwrite_groups is unnecessary, you can already do this stuff with overwrite_item + table.copy on the groups table you find in minetest.registered_items. So it would be a convenience function AT BEST.
I browse the tables&chairs mod and also the stairs mod. I see they define their things without copying the groups of the building material (they require you to state which groups they belong to), which is often how you want it to be. It makes it error prone to create new tables, chairs, stairs or slabs.
Off topic, isn't it?
Creating "standard" groups ahead of time is continuing to do that kind of wrong thing.
That's missing the point. Most suggestions so far here are all real world use cases that are ALREADY being actively used. This is not about some theoretical groups that might be used eventually.
Plus, adding groups in the code is a trivial thing to do. Reverting such a step, too. I really don't understand why you make a such big deal out of it. It's cheap to experiment around.
And who decides what should be standard and what doesn't have to, anyway?
Kinda by everyone. There will be no committee. There can't be, and there shouldn't be. It will always depend on what will finally end up in the real mod code. So it's the job of the “group inventor” to convince fellow modders to adopt that shiny new group. Hence this thread. I don't think it has to be rock-solid decisions. But groups only get you so far when modders can kind of agree what they mean.
But what is more important IMO is not standardization, but
documentation. If you invent groups, take your time to write down
what it freaking means. I've seen so many games that just completely ignore it.
Long story short, here is I guess a few best practices I propose for groups.
If you have an idea for a group …:
- First of all, look around in the Wiki and maybe other games/mods: Is an identical group to what you need already used, just with a different name? Then use that one instead of inventing a new group.
- If the group didn't exist, invent a new group
- … and write down what it means in an easily accessible document
So with that out of the way, can we please go back to discuss specific groups? Let's talk about the real topic here.
Like, who else (but me) will adopt the tool groups suggested above (pickaxe, axe, shovel, ...)? Did you already adopt it? Are you against it?
Do you know other universal concepts that are useful as group? Etc. etc.