Mod interoperability (solved)

Post Reply
Vindelle_Pounze
Member
Posts: 17
Joined: Thu Jan 05, 2017 22:06

Mod interoperability (solved)

by Vindelle_Pounze » Post

Don't know if posting this in the respective mods sections would be better but I consider this a general problem so I just post it here for now.
In my singleplayer world I have some repeating game crashes I may or may not understand the cause of after lots of digging in the respective code while sadly still not motivated enough to learn coding enough.
It's an instance with quite some (lots?) mods loaded. The whole list is not necessary I think, the crashes tell me mods involved are Goblins, Advtrains, and the TechAge Modpack.
Crash message is this:
+ Spoiler
From what I understand, the problem is that Goblins mod checks for protection via 'standard' minetest.is_protected function but the other two mods in charge alter this for making their own, special protection stuff work.
Techage erroring code:
+ Spoiler
AdvTrains Code:
+ Spoiler
Questions for me are now:
1: Did I understand correctly?
2: If so, would just adding an opt-depends do the trick?
(3: Should I just post this in the respective mods' sections?)
4: Is there a way to avoid this kind of stuff for 'just regular' players? - that is, I just installed the mods via the ingame mod-browser, which is quite a cool tool, actually. But it does not tell players who want to install a lot of mods of how those might not be compatible with other mods.

Edit: Respective code snippets added.
Edit_2: copy and paste was wrong.
Last edited by Vindelle_Pounze on Sat Dec 19, 2020 17:19, edited 1 time in total.

User avatar
joe7575
Member
Posts: 541
Joined: Mon Apr 24, 2017 20:38
GitHub: joe7575
In-game: JoSto wuffi
Location: Germany, in the deep south

Re: Mod interoperability

by joe7575 » Post

This is obviously no interoperability issue. This is simply a bug in TechAge. In the protection function, I did not consider to check if the world on the position to be checked, already exists (nodes are stored in the database).
For player based protection checks, this never occurred and will likely never happen. But other mod obviously check map positions that are not generated so far.
I fixed the bug in Techage, the update in on GitHub: https://github.com/joe7575/techage
Sent from my Commodore 64. Some of my Mods: Tech Age, TechPack, Hyperloop, Tower Crane, Lumberjack, Iron Age, Minecart, Signs Bot.

Vindelle_Pounze
Member
Posts: 17
Joined: Thu Jan 05, 2017 22:06

Re: Mod interoperability

by Vindelle_Pounze » Post

@joe7575
Thank you for the quick answer and for the fix.
I do have one more specific question or call it request regarding your modpack but as this does fit the title it also is a general question coming from this.
Could you add compatibility for mods that alter world gen like "underground challenge" for example? I (as 'just a player') don't know how to do this properly. I have just changed the coalburner part from ironage of your modpack to accept any "group:cobble", but it obviously gets overridden every time I pull an updated version of your mod (maybe there is a way to avoid this, but there is the 'just a player' again...I would love to but can't learn all I need to ...git, lua, coding, in the best case 'everything'...for just playing a game).
I am able to do the really basic stuff like my own 'mod' where I just change some recipes or define new ones, where I override some crafting stuff in the way of "if mod 'a' is installed, change output of mod 'b' to this or that", but for anything more I am just to dumb/lazy/whatever. So changing your respective function outside of your mod is beyond my capabilities. The little I understand, local functions (variables, etc) are not meant to be accessed from outside, are they?

@all
However, to the general part. As a player who still prefers singleplayer games or multiplayer with just some real-life friends on a private server (yes, I guess I am quite an oldish person) I experience this kind of problems quite often... I tend to install 'just every mod' that sounds interesting and want to at least try it out.
There is lots of overlapping or conflicting recipes, lots of dependencies (optional often but not everytime) and generally the feeling of 'it does not really work'.
Custom made games (or servers) would of course remedy this but those are not the 'cure' for every type of player (and thus will not help the apparent wish of at least some involved in this game- see recurring and well visited threads- to make it appeal to a broader audience).

More examples I have from my own modded worlds (funny, isn't it? without modded there is no actual world, is it?) are mods that add
  • foods ("bbq" e.g. optionally depends on "mobs_redo" and adjusts mob drops so that the cows drop 'bbq:beef', needed for burger patties.(not just the logical "standard:beef" or "group:meat". There are other mobs mods whose drops are not altered, though -- e.g. "petz" drops 'beef' anyways)
  • farming systems ("crops" is a great mod (in my opinion) for those who like a slightly more challenging experience...but close to no farming or food mod supports it) - there is plenty of different mods and additions but they are not exactly "self-explanatory" compatible to each other.
  • ores (not sure in this case but at least it is very likely that there is mods that need 'the own' iron/copper/tin, etc... for crafting [probably more the case when introducing ores that are not in the 'base game'] -- any silver is silver, is it?)
  • trees (yes, I like mods like "hard_trees(_redo in my case)" ... I don't like that I have to (try to) make any new tree from mods being compatible with this system)
  • tools, weapons (I like using "toolranks", I do have to add compatibility for every mod I want compatibility with this system...this is actually one of the cases I can do (again as 'just a player')...but it is not exactly making the system as a whole generally 'good')
  • drinkables, edibles, heal-ables, 'dimensions', player condition changing stuff (again, there is lots of mods doing things like this...but they are not exactly 'compatible' in every case [in my case it's "thirsty" ...great mod for making survival harder (in the same regard "bewarethedark" and "tempsurvive" are what I can think of right now)] why does drinking orange juice from mod 'x' e.g. not refill my thirst? -- (group:is_drink...makes thirst go down) Why does drinking not help against overheating? -- (group:is_drink_cold...makes temperature go down))
I 'could' of course politely ask every single mod maintainer to add functionality 'I' need but wouldn't it be better if there was some general compatibility provided?
You know where I'm coming from, aren't you? Some sort of forge (that thing that makes Minecraft mods compatible with each other and makes it so much more convenient when installing LOTS of mods (which is kinda NOT optional here).
When I first understood that I'll need to mod the provided basics to a proper game I had a brief (like about 20 hours or so) look at the best resource available, the modding book by rubenwardy. If I remember correctly, there was a chapter (sub-chapter?) about groups. 'Ohh, great, if I do my first simple mod I can just add (for example my "mymod:spoon") to "group:weapons" and "group:tools" [and for being weird "group:cutlery"]...nope, no such groups. (The latest group not existing I DO understand, though). Hmmm, what is the talk about groups if there not even is groups (or I'm just to dumb to use them? as 'just a player' who needs to make this a game of course)
What about the 'obvious' groups like "is_stone", "is_cobble", "is_food", "is 'xyz special' food (beef from ANY mods' cow for example)", "is_tool", "is_weapon", "is_ore"...could repeat forever.

I don't know if it is actually feasible but I think it would greatly improve Minetest (and would make it more accessible to all the new players 'you' want (or don't want?) to address.
If the groups (advertised in the standard resource for modding) are not even present...why would anyone go further?

There are some (actually more than just some) libs-mods that (seem to) try to address this 'problem'...but as far as I know from lurking the forums and searching for mods there and on ContentDB (and on ingame mod browser) there is no common 'standard' till now. ("basic_materials" at least seems to be a common standard dpendency by now [why not make it a 'real' standard?])
Mod (a) comes with its own strict dependency (self developed mod, lib, stuff - that is 'obviously' better than the other mods, libs, stuff that do the same [ermm, maybe just from the 'just a player' 's point of view]: an api for changing players' physics, make e.g. magic potions alter some stuff for some amount of time, changing properties of armor, alter 'this or that'...each one is (may or may not be...how would 'just a player' be able to differentiate?) in its own use case better or worse than the others...)


I DO know that I'm pulling the lazy 'please do this stuff (for me)'. But I DO have an excuse: Minetest advertises itself as being 'so easily modded' to one's liking, doesn't it? Just make it possible. Not THAT hard (in my 'oh, cool, this is easily modable for everone, even those who don't know a s**t' opinion that the advertising made me believe).
But still, there is some threads and lots of posts making me think that there is enough people in some way or another involved in this project who would like it to be more attractive to, well, just more people/users/players.

User avatar
joe7575
Member
Posts: 541
Joined: Mon Apr 24, 2017 20:38
GitHub: joe7575
In-game: JoSto wuffi
Location: Germany, in the deep south

Re: Mod interoperability

by joe7575 » Post

Vindelle_Pounze wrote:
Thu Dec 17, 2020 02:16
@joe7575
Could you add compatibility for mods that alter world gen like "underground challenge" for example? I (as 'just a player') don't know how to do this properly. I have just changed the coalburner part from ironage of your modpack to accept any "group:cobble", but it obviously gets overridden every time I pull an updated version of your mod
AFAIK, Minetest and MTG does not support group:cobble.
At least, the cobble definiton in MTG does not support this.

I don't know "underground challenge" but I can add group:cobble to the function num_cobble.

Is it that what you want?
Sent from my Commodore 64. Some of my Mods: Tech Age, TechPack, Hyperloop, Tower Crane, Lumberjack, Iron Age, Minecart, Signs Bot.

Vindelle_Pounze
Member
Posts: 17
Joined: Thu Jan 05, 2017 22:06

Re: Mod interoperability

by Vindelle_Pounze » Post

I don't know "underground challenge" but I can add group:cobble to the function num_cobble.

Is it that what you want?
If it is not likely to introduce any problems, yes please.
AFAIK, Minetest and MTG does not support group:cobble.
At least, the cobble definiton in MTG does not support this.
This feels like every mod needs to take care of any other mod that might be incompatible with and that's why I thought that it might be a good thing if there was some kind of compatibility provided that any mod could build upon. (like the forge stuff in Minecraft, more or less) - but as just a player I do of course not know how time consuming this would be, while I understand that time and 'man- power' is one of the biggest problems here.
Said mod replaces all of default:stone and introduces lots of different, 'underground- biome' dependent new types of stone and (I think) declares its own group:cobble. There is a companion mod from the same author to remedy some of the incompatibilities this obviously bears with recipes from some mods like technic or mesecons, for example.
As my original question is answered and my 'problem' is solved, I will now mark this as solved.
Thank you for your time and for really having helped me (again).

Sokomine
Member
Posts: 4184
Joined: Sun Sep 09, 2012 17:31
GitHub: Sokomine

Re: Mod interoperability (solved)

by Sokomine » Post

Vindelle_Pounze wrote: However, to the general part. As a player who still prefers singleplayer games or multiplayer with just some real-life friends on a private server (yes, I guess I am quite an oldish person) I experience this kind of problems quite often...
You really ought to consider looking for a nice server that is close enough to what you like. Combining diffrent mods to form your own ideal game is possible and part of the fun, but it's also work and requires checking of what fits to what, are all dependencies met, are all the small adjustments made so that you i.e. can actually craft the things...it's easier to just join a server where the server owner or most likely a team already did that work for you. Servers also have many friendly people you can meet. Not so lonely as singleplayer :-)
Vindelle_Pounze wrote: I tend to install 'just every mod' that sounds interesting and want to at least try it out.
I know that feeling :-)
Vindelle_Pounze wrote: to "group:weapons" and "group:tools" [and for being weird "group:cutlery"]...nope, no such groups
Sadly, groups have not as much meaning as they might have. I'm not even sure if there's any overview of what each group does. Some nodes and tools react to groups, and something like "falling" is very deeply embedded, but that's it mostly.

Some standard libs would certainly be great. I'm still hoping that we'll get such a system to run eventually. My wish would be to have standard libs which are shipped with "the game" (or rather, the engine) and on which mods could be based. And if someone for some reason doesn't like the implementation in the standard lib, he/she could replace that one with his/her own mod. But we aren't there yet.
A list of my mods can be found here.

User avatar
runs
Member
Posts: 2148
Joined: Sat Oct 27, 2018 08:32
GitHub: runsy

Re: Mod interoperability (solved)

by runs » Post

Forget it. Things are going to get worse. MInetets is no longer "modable", now it is "gameable".

There is no longer an official game. So games are the new kings. The mods from now on must be compatible with certain games, and only in that case try to be compatible between the specific mods of that game.

The compatibility thing is difficult. I mean, up to now you've tried to be compatible with MTG and with some similar important mods. But it is the mod creator's decision. Who on the other hand is not able to control or even know that there are other similar mods or what they do.

I think it's a matter of courtesy and making life easier for the users, but as it's not an obligation...

And it's also a matter of "timing". You can make one mod and then appear 5 more similar ones after the time. The mod is set up and you won't match it for something that others do, or even the creator can leave the Minetest community forever.

These are multiple factors that are difficult to solve.
🤑 Patreon |Minetest Chat | 👧 Samantha | ⛏️ Juanchi Game | 🐱 Petz

Post Reply

Who is online

Users browsing this forum: No registered users and 3 guests