The problem with building structures out of locked nodes is that you need to be able to protect the air too. Otherwise, vandals can fill in the spaces and make your, for example, house unusable without removing even a single one of your nodes.

I had some users on my old server complain that other users didn't want to visit them because they built so far away. Their logic was that I should grant everyone fast. My logic was that if they wanted visitors, they should build closer.

AlexYst: you'd be surprised how well it runs even on old hardware. the only real bottleneck is memory. anything beyond that is really determined by how much heavy stuff you actually build e.g. technic, pipeworks, mesecons, et al.

for the record, there was an official poll and call for subgames a while back - stuff that ought to ship with the engine for users who want something other than plain old minetest_game. it never really went anywhere after all the suggestions and discussion

VanessaE: Huh. I might have to try it then soon. I never feel like using survival mode unless I'm on a server, and I haven't used a server in ages. I think I have good(ish) RAM, just not too much processing power.

AlexYst: you don't need much processing power, especially for singleplayer usage since you are the one who controls how much load the engine has to take. memory, you just need whatever your OS wants, plus about 1.5 GB or so. 3-5 GB if you use HDX with it.

I need to know what node was dug, what the node dropped, and what player dug it, all at the same time. Minetest doesn't provide a way to know all of this at once, so I stapled something together. I hooked into minetest.get_node_drops() and had it add the node dug to the returned list under a non-numeric key. Then, when minetest.handle_node_drops() is called with the output and the player object, I have all

three pieces of data. However ... It seems minetest.get_node_drops() is called when attached nodes fall, too, in case they don't drop themselves. There's no digger, so minetest.handle_node_drops() isn't called to remove my key. It results in the attached nodes being duplicated. Does anyone have any suggestions as to how I can get all three pieces of information at once without introducing item-duplication

AlexYst: if handle_node_drops is called immediately after get_node_drops without any other intervening calls to get_node_drops, just stash the data somewhere not in the drops list but in a private data structure of your own, so it won’t affect drops if handle_node_drops is never called? Not really a Minetest solution, just a general programming solution, as I’m not a Minetest modding expert. Depends entirely on whether g

Yeah, that is a problem. If everything is single-threaded and it’s just a straight line get followed by handle, then no problem. Even if handle isn’t called for that particular get ever, then the next time the event happens, the get will overwrite your internal data and everything will be fine. But if things could be interleaved, so get#1, get#2, handle#1, then it won’t work.

If the actual table returned by get is passed to handle, you could organize a lookup table around that. It would eventually fill up with stale data that was returned by get but never passed to handle, but you could introduce a timeout to clean it up.

I asked him years ago about it, and he was not okay with ANY usage of it, non-commercial or not. Nowadays, he claims in public sources that he's fine with non-commercial usage, but then he and keyboard cat guy went and sued a game company over use of a variant of their respective images (and won via settlement)