Minetest logo

IRC log for #minetest, 2022-02-12

| Channels | #minetest index | Today | | Google Search | Plaintext

All times shown according to UTC.

Time Nick Message
00:10 onehittoaster update: Placing a chest at an air-node w/ minegeld inventory clears the meta, so this illicit minegeld cannot be reclaimed.
00:13 onehittoaster The player who created this minegeld claimed that they used an unpublished hack running as a CSM to duplicate items.  I have no futher info on how they did it.  I know this via a second hand witness.
00:13 onehittoaster It seems odd to me that a CSM (or even a hacked client) could tell the server "place this thing here", and the server would blindly trust it.
00:13 onehittoaster but I've not studied this part of minetest code yet.
00:18 onehittoaster using world-edit "//replace air stone" does NOT clear meta.
00:19 AliasAlreadyTake joined #minetest
00:26 onehittoaster worldedit air->leaves, then a technic chainsaw to remove the leaves removed the meta.
00:30 Verticen joined #minetest
01:05 erlehmann onehittoaster i know how this happened
01:06 erlehmann i have plucked items from thin air before
01:06 erlehmann the CSM is not the issue here
01:06 erlehmann neither is the engine
01:07 erlehmann you simply have a mod installed that allows this to occur
01:07 erlehmann onehittoaster can you tell me the server name so i can log in and take a look around?
01:09 erlehmann also, is this a pay to win server?
01:09 erlehmann usually people dupe money or items on pay to win servers
01:09 erlehmann to ruin the ingame economy
01:09 onehittoaster no, absolutely not a pay-to-win.
01:09 onehittoaster lol, I've seen Horizon's videos on taking down P2W though... love those.
01:09 onehittoaster Nope, this is just a run of the mill minetests server.
01:10 onehittoaster with a former player who was a bit of a trouble-maker.
01:10 erlehmann i once made a machine on a server that had ingame money
01:11 Pexin we've seen digtrons glitch so the inventory gets stuck in the dighead nodes when they dig too fast. some sort of race condition something I believe.
01:11 erlehmann and duped a lot of items and money and made the machine dispense random duped items
01:11 erlehmann when someone pressed a button
01:11 erlehmann it was protected by protection node
01:11 erlehmann so you could not steal my dupe stash
01:11 erlehmann it turned minetest into a clicker game, players went to the machine and clicked the button a lot
01:12 erlehmann instead of mining
01:12 erlehmann it was very funny
01:12 Pexin ding levelup
01:12 erlehmann until an admin banned me for having too much fun
01:13 erlehmann from my point of view there is little difference between mining a mineshaft to get items and clicking an in-game button to get items
01:13 erlehmann in both case you are clicking the mouse a lot ^^
01:14 Pexin from what i've seen, ingame economies are almost as stupid as irl economy. minegeld must come from somewhere, especially since it's flammable / droppable and GC-ed / etc
01:15 erlehmann i think that duping ingame money and “ruining the economy” is a funny thing, but *threatening* to do it is an asshole move
01:15 Pexin then concentrated in a bunch of smartshops
01:15 erlehmann like, if you hate the economy that much, just do it
01:15 erlehmann ppl who threaten to do something instead of just doing it usually want something out of it
01:16 Pexin yeah I seem to be incapable of imagining a server where, if someone flooded "circulation" with a bunch of minegeld, they wouldnt just laugh at the sillyness. I mean the person would still get banned for the attitude, but nobody cares about minegeld
01:17 erlehmann yep, it's the attitude
01:17 erlehmann i once had someone /give me slime blocks on a server
01:17 erlehmann but tell me to not share them
01:17 erlehmann to not ruin the “slime economy” hahahahaha
01:18 erlehmann sticky blocks
01:18 erlehmann i believe sticky blocks is the correct translation
01:18 * Pexin scratches chin
01:18 Pexin I know of sticky pistons. and I know of quicksand..
01:25 erlehmann pexin if you move a sticky block with a piston all blocks that are adjacent, are moved too
01:27 erlehmann onehittoaster i am sorry for not knowing which mod allows it. but surely more than one player on your server knows how to dupe. it is always multiples.
01:28 erlehmann onehittoaster could you elaborate a bit on the ingame economy? where does the money come from?
01:28 erlehmann is it like catlandia, where everdone is rich?
01:28 erlehmann everyone
01:28 onehittoaster The server issues $10 minegeld to anyone with none in their inventory when they craft something. (from observation, I've not actually looked at the mod code for this).
01:29 onehittoaster Some players have shops and sell stuff.
01:29 onehittoaster Most players average a few hundred to a few thousand minegeld in their inventories, and ATM accounts, and protected chests.
01:30 onehittoaster but there are some (long ago banned) players with inventories and chests with tens of millions of minegeld.
01:30 onehittoaster mithril chests (90 slots) willed w/ minegeld_100 65535
01:30 onehittoaster filled
01:30 Pexin the server where I regular at, gives you 5bux each ingame "day" you do one of mining,building,farming, uhh some other stuff I think
01:30 Pexin also the bank i believe gives some interest
01:30 onehittoaster some of these chests are burried in unprotected places, so this person could log in w/ an alt and recover it.
01:30 onehittoaster well, until today.  I wrote a tool that found all of them.
01:31 onehittoaster takes ~5h to process a 34 GiB map.sqlite file on an AMD 5950
01:32 onehittoaster I'll make it multi-threaded and clean it up a bit later.
01:32 onehittoaster gprof, fix what is slow, etc...
01:32 onehittoaster maybe I'll post it on github.
01:34 erlehmann onehittoaster if it is minetest 5.3 or earlier, you will have the same problem again
01:34 erlehmann see security advisories
01:34 onehittoaster ok, I'll go find them.
01:34 erlehmann rubenwardy did a writeup, wait, i look it up
01:35 onehittoaster sadly, the server is multicraft-2.0.0 (some fork of minetest-5.??).  I didn't choose the binary, and if I go back to minetest-5.4.1, then some mobile users can no longer connect.
01:35 onehittoaster I'm not very familiar w/ the multicrap vs minetest schism.
01:35 erlehmann https://github.com/minetest/minetest/security/advisories/GHSA-hwj2-xf72-r4cf
01:35 erlehmann > If a mod saves user input in an ItemStack's metadata, then this can be abused by an attacker to add or modify other meta fields of the same item stack.
01:35 erlehmann this is one way to get arbitrary items
01:36 onehittoaster ah, ok
01:36 erlehmann usually limited to whatever input is saved in there
01:36 onehittoaster interesting.
01:36 erlehmann but if you deserialize meta, you can also have this! https://github.com/minetest/minetest/security/advisories/GHSA-7q63-4fq2-hqcr
01:36 erlehmann RCE
01:36 onehittoaster "remote code execution...".  yeah, I always wondered why the lua table serialization format was "return {...table...}".
01:36 onehittoaster that just reads like a bad idea to me.
01:37 erlehmann hehe
01:37 erlehmann well
01:37 onehittoaster (in my former life I was a network security type person...)
01:37 erlehmann onehittoaster what is the worst that would happen if all that ingame money got out?
01:37 erlehmann like what is the “Economy” based on
01:37 erlehmann is it item shops?
01:37 onehittoaster probably not much.  I mostly hunted down the chests to see if I could - technical challange.
01:37 onehittoaster the server isn't crazy popular, and there is no real-world money.
01:38 Pexin 34G map for a server that is not crazy popular..  o_o
01:38 onehittoaster the other problem is that some older/defucnt shops were set up by ealrier admins w/ "creative" powers, so they sell veyr high end gear for stupid cheap.  full draconis armor for $5MG
01:38 onehittoaster HV_technic for cheap.
01:40 lagash Anyone know of a mod with a formspec that looks like a passcode entry? Like, 4 digits, up and down arrows to increment and decrement, etc?
01:40 MTDiscord <GreenXenith> My server isnt crazy popular either but its still a 75GB map. It mostly just depends on regular players and time.
01:42 Pexin GreenXenith: x_x
01:42 onehittoaster Before admining this server, I played (well I still do) on pandorabox.  They take the issues of player balance, progression and "its a surivival server" seriously, and I guess that I'm trying to clean up this new server in that spriti.
01:43 Pexin I...think(?) our admin periodically wipes unprotected distant areas
01:43 onehittoaster yeah, I plan to run BB's "mapcleaner" at some point also.
01:43 onehittoaster at least, I'll wipe all mapblocks that contain only "water, air, vacuum, stone".
01:44 onehittoaster but I'm affraid that if/when they re-mapgen that they the cavegen thing will destroy adjacent player buildings.
01:44 onehittoaster idk.
01:44 onehittoaster need to test that in a backup copy of the server.
01:45 MTDiscord <GreenXenith> Yeah, id run a cleaner if I had a backup, but I dont have room on the drive to make a backup. And I cant be bothered to make a remote backup at the moment.
01:46 onehittoaster i've got BB's "mapserver" installed as well.  This adds an "mtime" column to the "blocks" table in map.sqlite, and triggers to set the value on isert/update.  Using that, I am developing a python script to make a lazy "slony-like" (if you;'ve ever used "slony" for postgresql...) backup.
01:47 onehittoaster it will copy over ~100 mapblocks per cycle, from the oldest mtime to current.
01:47 onehittoaster so it will slowly catch up to current, and then replicate just the changing/new mapblocks after that.
01:47 onehittoaster but yeah, still need 2x the disk space.
01:48 erlehmann onehittoaster do not wipe areas
01:48 onehittoaster Or I could down the server, and "cp map.sqlite backup.sqlite", but that causes ~4 minutes of outage.
01:48 onehittoaster pbox wiped areas once, when their database got to 200G..
01:56 onehittoaster erlehmann: is there any other downsize to removing "unused" mapblocks other than cavegen disturbing adjacent mapblocks?
01:57 erlehmann onehittoaster yes, some people hate protection nodes or protection areas
01:57 erlehmann i never protecc
01:57 erlehmann except as a troll
01:57 erlehmann like the clicker machine
01:57 erlehmann it was meant as a statement against protection nodes
01:58 erlehmann the cavegen griefing is very serious though
01:58 erlehmann ask kay27 about it
01:59 erlehmann you should really avoid it
01:59 onehittoaster I don't plan to remove mapblocks that have any "real" content in them, protected or not.  At least, not unless forced.
01:59 erlehmann you can remove ones that have only air
01:59 onehittoaster Just blocks that contain only air, water, vacuum or stone (or combos of).
01:59 erlehmann it will only remove dupestashes
01:59 erlehmann but why remove mapblocks that are generated?
01:59 erlehmann they will need to be generated again
01:59 onehittoaster such blocks are really small though, so it won't reduce the database size by much.
01:59 erlehmann leading to lag probably
02:00 erlehmann you only have a limited number of emerge threads
02:00 onehittoaster b/c maybe 10G of them were generated by ME as I flew around the map exploring as an admin.
02:00 erlehmann ideally you have 1 emerge thread because the emerge is racy as far as i know
02:00 onehittoaster when i took over, the server database was maybe 20G or so.  Not its 34G.
02:00 erlehmann happens
02:00 onehittoaster not/now
02:00 erlehmann the bigger the map is, the slower it grows
02:01 erlehmann if i were you i would manually look for giant mapblocks
02:01 erlehmann and figure out why they are big
02:01 erlehmann consider the following
02:01 erlehmann do you have shulkers?
02:01 erlehmann portable chests i mean
02:01 onehittoaster most of the existing players are highly concentrated within 5k nodes of world center.  We are going to try to encourage new players to spread out a bit more, so I expect the map filesize to grow.
02:01 onehittoaster "wifi" chests.
02:01 erlehmann a shulker contains an entire inventory
02:02 onehittoaster but those are not quite the same as a shulker.
02:02 erlehmann a chest you can pick up
02:02 erlehmann that means it can have a meta of like 50k or so
02:02 onehittoaster btw, I've never played minecraft.  not once.  I only know  about them from Horizon's youtube videos.
02:02 erlehmann never played it either
02:02 erlehmann whatever, let's consider books
02:02 onehittoaster IDK where the wifi chest stores its meta, but they are not per-player, but universal.  eg, you interact w/ anyone's wifi chest and see your inventory.
02:02 erlehmann what's the maximum amount of characters in a book?
02:02 onehittoaster its huge I assume.
02:03 erlehmann so lets assume 10 kilobytes
02:03 erlehmann what's the maximum amount of inventory space in a chest?
02:03 erlehmann in mineclonia it is 27
02:03 onehittoaster lol... my C++ code crashed earlier today when trying to handle a mapblock w/ a chest w/ a crated digtron.  the Inventory "Item" sttring was HUGE.  I was lazy and used "std::regex()" to parse it.
02:03 onehittoaster and that recursed 200k stack frames and segfaulted.
02:03 erlehmann what
02:04 erlehmann this should not happen
02:04 onehittoaster mithril chest is either 90 or 100.
02:04 erlehmann your regex implementation may be stupid
02:04 onehittoaster it is
02:04 onehittoaster c++17 g++ v 11.2
02:04 erlehmann let me look i up
02:04 erlehmann wait
02:04 onehittoaster https://discord.com/channels/513329453741637637/668091303883571200  SX did an analysis.  It recursed 1 frame for each character.
02:04 onehittoaster so I recoded it.
02:04 erlehmann https://swtch.com/~rsc/regexp/regexp1.html
02:05 erlehmann >  This is a tale of two approaches to regular expression matching. One of them is in widespread use in the standard interpreters for many languages, including Perl. The other is used only in a few places, notably most implementations of awk and grep. The two approaches have wildly different performance characteristics:
02:05 onehittoaster I was just being laze and did a "std::regex_match()" on "Item (.*)".
02:05 erlehmann > Notice that Perl requires over sixty seconds to match a 29-character string. The other approach, labeled Thompson NFA for reasons that will be explained later, requires twenty microseconds to match the string. That's not a typo.
02:05 onehittoaster It was the greedy ".*" that did it.
02:05 erlehmann that should *not* be a problem
02:05 erlehmann unless your regex matching algorithm is garbage
02:05 onehittoaster I just rewrote the code to byte-bang the string like it was ansi C in the 1980's.
02:05 erlehmann it is not you being lazy
02:06 erlehmann it is the std::regex() people who were probably
02:06 onehittoaster :)
02:06 erlehmann ok so lets get back to the chests
02:06 onehittoaster I should clean up my code and pit it on github...
02:06 onehittoaster put
02:06 erlehmann 100 item slots times 10kb books with random characters
02:06 erlehmann that is 1000kb for a node
02:07 onehittoaster The packed digtron (329 nodes) item-string was over 200k long.  Imagine a chest w/ 90 of those in it.  And then 4096 of those in one mapblock.
02:07 erlehmann so you get 1MB chests!
02:07 erlehmann yes
02:07 erlehmann i assume a packed digtron is a digtron as an item?
02:07 onehittoaster I wonder if that would crash minetest when that mapblock is loaded.
02:07 erlehmann that you can place as a schematic?
02:07 onehittoaster yup
02:07 onehittoaster I think so.
02:07 erlehmann no, minetest is pretty cool
02:07 onehittoaster I've not actually used a digtron though.
02:07 erlehmann you may have one problem though
02:07 erlehmann get one of those and then drop it as an item
02:07 onehittoaster but the item string was filled w/ escapes that looked like "\u(0003)foo foo foo"....
02:07 erlehmann and then *unload* the map block
02:08 erlehmann it might crash
02:08 onehittoaster the static_object list maxes out at 65536 chars per string...?
02:08 erlehmann a bit less
02:08 onehittoaster I need to check the spec.
02:08 erlehmann it is fixed in mineclonia
02:08 erlehmann items with really long meta are only problematic in two ways
02:08 onehittoaster I must go.  I need to incinirate some marginally edible item for dinner (IRL).
02:09 erlehmann 1. if they exist as an entity instead of in your inventory or node meta, unloading them would crash older minetest
02:09 onehittoaster it was great talking with you.  I'll be back later.
02:09 erlehmann 2. if your bandwith is low, you can bookban yourself with it
02:09 erlehmann look up bookbanning
02:09 Jason232 joined #minetest
02:09 erlehmann it is a known technique to make ppl unable to play the game
02:09 erlehmann by throwing them items with large meta
03:15 citrons how can I get a perisistent identifier for an entity so that I can reference it in, for instance, node metadata
03:15 MTDiscord <Jonathon> you make it yourself
03:16 citrons what do you mean
03:21 MTDiscord <Jonathon> you make a unique id for the entity, store it in the entity, make sure it gets loaded in on activate, and then store it in node meta
03:21 MTDiscord <Jonathon> and then build in error checking if the entity is gone/not loaded
03:22 citrons I see
03:29 queria joined #minetest
03:33 queria joined #minetest
03:52 olliy joined #minetest
04:04 Jason232 joined #minetest
05:00 MTDiscord joined #minetest
05:40 Sven_vB joined #minetest
06:01 riff-IRC joined #minetest
06:18 beanzilla joined #minetest
06:20 redquasar joined #minetest
06:57 redquasar joined #minetest
06:58 redquasar joined #minetest
07:02 redquasar joined #minetest
07:03 redquasar joined #minetest
07:05 redquasar joined #minetest
07:06 redquasar joined #minetest
07:13 calcul0n joined #minetest
07:31 Sven_vB_ joined #minetest
07:37 Oksanaa joined #minetest
07:45 definitelya joined #minetest
07:46 citrons I have this https://0x0.st/oXDl.txt set of functions
07:46 citrons and
07:48 citrons I have code which uses it to set metadata for a block. but when it reads back the metadata, it's empty. I've made sure that 1. it's reading the same block 2. the "data" table contains keys 3. meta:from_table returns true
07:50 definitelya It's citrons!I remember APIONET now ahah. Fun times
07:52 citrons hi!
07:52 definitelya Hey
07:52 citrons apionet is still active
07:53 definitelya nicee, lemme check in.
07:57 MTDiscord <Heav> too bad most of the bridges to apionet are down.
07:57 MTDiscord <Heav> (the miscellaneous ones)
07:57 definitelya hmm
07:58 definitelya Wait.. there's a bee
07:58 definitelya Found the culprit
08:03 redquasar joined #minetest
08:11 definitelya_ joined #minetest
08:51 independent56 joined #minetest
09:10 definitelya__ joined #minetest
09:18 GNUHacker joined #minetest
09:24 citrons we have a node that we want to make transparent. it is currently casting shadows on other blocks and the entity which is created inside it https://0x0.st/oXk_.png
09:24 citrons we set its drawtype to airlike and sunlight_propagates is set to true
09:35 Yad_ joined #minetest
09:37 grouinos joined #minetest
09:39 Talkless joined #minetest
09:55 olliy joined #minetest
09:57 erlehmann citrons does this happen without shadows?
10:01 definitelya__ citrons FYI shadow code was somewhat buggy and controversial, it's been removed in 5.5.0 .
10:02 definitelya__ Hopefully we can fix it.
10:05 sfan5 I don't think they mean those shadows, just the normal stuff
10:05 sfan5 citrons: you need paramtype = "light" too
10:06 definitelya__ yes
10:08 erlehmann oh
10:17 specing joined #minetest
10:44 Fixer joined #minetest
11:38 appguru joined #minetest
12:58 independent56 joined #minetest
13:01 independent56 90% of the new players on my server are either incompetent or  too young. Is this common?
13:08 erlehmann wdym too young
13:16 independent56 Too young to understand anything, like the fact i won't give admin to you you just joined
13:18 erlehmann i am over 12 years old, can you give me admin rights
13:18 erlehmann i did not even join
13:19 independent56 They're not tto young for admin, they're too young to understand that admin is a lot of power for a place with so much hard work
13:20 erlehmann then give them no admin and let them play
13:20 erlehmann look, it's just kids
13:20 erlehmann they will have fun and build some houses
13:21 independent56 I had a player who was just like "give me admin give me all the commands i want to help the server"
13:21 erlehmann and sometimes they make big statues of genitals or poop, because HAHA LOOK WHAT I MADE (they are kids after all)
13:21 erlehmann sounds like a scam!
13:21 erlehmann kids on servers are funny
13:21 independent56 But they are so annoying. Maybe i am being a bit tough
13:21 erlehmann i once helped a girl find the ingredients for a cake, because her brother was on the server too
13:21 erlehmann and she wanted to make a cake in game
13:22 erlehmann for his birthday
13:22 independent56 That's sweet
13:22 erlehmann yeah, unfortunately some other kid came and stole a lot of stuff
13:22 definitelya__ Yes, it's cake, obv.
13:22 erlehmann and killed the horses
13:22 erlehmann definitelya__ lOL
13:22 erlehmann LOL
13:22 definitelya__ -_-
13:23 definitelya__ I like cake of the sweet variety.
13:23 erlehmann independent56 i'd say let them play or do not run a public server
13:23 independent56 Ok, fine
13:23 erlehmann the only kid i ever encountered who was really annoying and stupid was ASKI
13:23 definitelya__ yay
13:24 erlehmann ASKI helped me when i was low on health in some mcl5 server
13:24 erlehmann but later aski was like „show me how to cheat“ (while flying around me)
13:24 erlehmann also aski gave me a netherite ingot and i gave ASKI a stack of netherite ingots back
13:25 erlehmann and then every time we met ASKI was like “show me how to dupe or i attack you”
13:25 erlehmann he is like 11 or so?
13:25 erlehmann and plays with his grandpa on the same server or so i heard
13:25 erlehmann so ASKI shot arrows of harming in my general direction
13:25 erlehmann but then remembered that those arrows are hard to make
13:26 erlehmann and have value
13:26 erlehmann and wanted them back
13:26 independent56 https://pastebin.com/EQh8Q9Cu
13:26 Pexin hahaha
13:26 erlehmann so i shot them back, which angered ASKI a tiny bit
13:26 erlehmann but i had duped the arrows, so i shot way more arrows back than i had collected
13:26 erlehmann which angerede ASKI a bit more
13:26 erlehmann angered
13:26 erlehmann because before ASKI hat shot at me i did not have any arrows of harming hehe
13:27 definitelya__ Smart
13:27 erlehmann can't dupe an item you do not have
13:27 definitelya__ Do business, not war!
13:27 tech_exorcist joined #minetest
13:28 erlehmann independent56 that does not sound too bad
13:28 erlehmann just let the kid build some stuff, come back later and look at the cool shit they came up with
13:28 moongaia joined #minetest
13:29 independent56 They weren't building anything. They were just being annoying.
13:30 erlehmann adult players can be annoying too
13:30 erlehmann in fact, the most annoying players i have met where definitely not kids
13:31 erlehmann really, just let them be
13:31 erlehmann if they do not have fun
13:31 erlehmann they will go away
13:31 independent56 ok
13:31 independent56 so no /revoke player shout ?
13:31 erlehmann not unless they spam
13:31 chilledfrogs joined #minetest
13:31 Gustavo6046 joined #minetest
13:31 independent56 Ok
13:31 erlehmann i think yuo are worrying too much about managing your server tbh
13:32 erlehmann i mean the players
13:32 erlehmann if some kid asks for admin rights that is a reason to laugh, not to revoke the shout priv
13:33 independent56 makes sense
13:33 independent56 I'm just inexperienced
13:33 Taoki joined #minetest
13:36 independent56 Is there an adminship course out there :p?
13:56 independent56 I've just had a player say "I'M GOING BYE" because i didn't watch the chat whilst doing building. -_-
13:56 independent56 They were like "CREATIVE\nCREATIVITY\nI CONSISTENTLY DIE"
13:58 MTDiscord <Warr1024> Adminship lesson 1: about 99% of players are not worth struggling to retain.  A lot of them just aren't willing to invest that much energy into your world.  You have to accept that finding players who are a good fit is rare and takes a long time.
13:58 wolfshappen joined #minetest
13:59 MTDiscord <Warr1024> As long as you make the product good, you can't sweat customers who don't click with it the first time around.  There are some things you might be able to do, but nothing that has that big of an impact.
14:00 independent56 Makes sense
14:00 independent56 I
14:00 independent56 I've given up retaining players by now. But i have got two somewhat regulars.
14:01 MTDiscord <Warr1024> You'll always get a bunch of fly-throughs who join, complain about something that they don't (and probably couldn't possibly) immediately understand, and then they go leave to whine about some other server.
14:02 TomTom joined #minetest
14:04 independent56 "But i wanted Etheral biomes where im standing right now!!!"
14:06 MTDiscord <Warr1024> "Why isn't grantme working?!"
14:06 independent56 "/xban 56independent horrible admin" "Wait it dosent work!"
14:10 definitelya__ I often wonder why, if I complain about complainers
14:10 definitelya__ complaining about other people complaining
14:10 definitelya__ the world lets me do it...
14:16 tech_exorcist joined #minetest
14:44 Jason232 joined #minetest
14:46 queria^clone joined #minetest
14:48 queria^clone joined #minetest
14:51 queria joined #minetest
14:51 jonadab The trick is to notice if you're losing the kinds of players you'd prefer not to lose, and figure out why.
14:52 jonadab You know, the ones who want to build cool stuff and help people and whatnot.
14:53 jonadab The ones who advise people on how to automate things in a way that doesn't create too much lag.
14:53 jonadab And show them working examples.
14:59 Komodo joined #minetest
14:59 independent56 Cool
15:31 MTDiscord <wwar> "Why don't we have (mod)? They use it in (server)."
15:33 grouinos joined #minetest
15:36 independent56 Haha so relatable
15:37 independent56 I've been asked for vehicles, yet i have no car infrastrucutre. Use rails
15:38 onehittoaster I've been asked to install "Nether", "NSSM" and "NSSB".  We're already at 29k registered nodes, and 32k is the max...
15:38 onehittoaster And I have to put "nether" someplace... it wants 3k vertical nodes minimum.
15:40 erlehmann can it be that LBMs are super unreliable?
15:41 erlehmann i.e. mapblocks can be loaded without the lbm activating
15:44 queria^clone joined #minetest
15:44 MTDiscord <Warr1024> I've run into reliability issues with LBMs but was never able to prove that it wasn't because they were just firing too early, e.g. before the block was actually properly loaded and active.
15:45 MTDiscord <Warr1024> I have an LBM that's supposed to regenerate some ents and every now and then it just doesn't.  As a result pretty much every LBM I use is backed by an ABM to retry in those cases.  It sucks.
15:48 MTDiscord <MisterE> Put a minetest.after in it?
15:48 queria^clone joined #minetest
15:51 MTDiscord <luatic> That's dirty as well, because you can't tell whether the time will actually be enough for the block to change state.
15:53 independent56 I have just decommisioned a line  and i haven't realised how much rolling stock there was: https://i.imgur.com/B1zEc4B.png
15:53 MTDiscord <MisterE> Put it in a minetest.after that uses a get_node to check if the block is ready (not ignore) and if not, calls another minetest.after
15:53 MTDiscord <luatic> Now you might get an infinite loop in some cases if blocks never get loaded
15:54 MTDiscord <MisterE> Make it give up after a set num of tries
15:54 onehittoaster Also consider not using a fixed delay, but "exponential decay with random jitter".
15:55 onehittoaster decay -> delay.  sorry, mixing EE and CS... ugh
15:55 onehittoaster so, the Nth delay might be "1 + 1.5 ^ N + random(10)" or so.
15:56 MTDiscord <MisterE> Map corruption on failure
15:56 MTDiscord <MisterE> XD
15:56 onehittoaster so that if lots of blocks all trigger the same timer, then they won't all fire at synchronous intervals.
16:00 queria^clone joined #minetest
16:13 erlehmann ok so in my case the lbm is for a mapgen layer
16:13 erlehmann mineclone2 <0.71 generates void nodes above the nether roof
16:13 erlehmann mineclone2 0.71 generates air
16:13 erlehmann i think
16:13 erlehmann so i have an lbm on void
16:14 erlehmann turns out a) the process is not too laggy b) after a few minutes minetest stops converting void to air on load
16:14 erlehmann in fact, it seems as if mapblocks get loaded and only after that they get converted
16:15 definitelya__ Ahah wtf was my last message? I slept and I'm normal now, I swear.
16:16 definitelya__ Obsessive Yuri moment.
16:29 independent56 joined #minetest
16:48 MTDiscord <Warr1024> I already tried queueing and delaying for the mapblock to be definitely loaded so I guess that's not it.
16:49 MTDiscord <Warr1024> For mapgen specifically I also ran into the lovely problem that sometimes mapgen modifies stuff outside of the newly generated area, like dungeons overwriting themselves multiple times.
16:49 MTDiscord <Warr1024> So far I have found nothing other than an ABM that will definitely always eventually find a node and make sure some code runs against it.
16:58 independent56 joined #minetest
17:00 grouinos joined #minetest
17:36 erlehmann Warr1024 you may want to look into the work that kay27 does
17:36 erlehmann he is basically trying to make a non-racy mapgen that does not grief your map
17:37 erlehmann ppl suggest that he work with the engine devs, but i think he said he tried that and had bad experiences
17:37 erlehmann so he is doing it in lua
17:38 erlehmann meanwhile, i have fought the stupid stone clouds again today and won
17:39 Komodo joined #minetest
17:40 Komodo Hello world
17:41 MTDiscord <Warr1024> I have had some success with Lua mapgen.  There are some things I'm not sure make sense to to in mapgen though, so in some cases I use a special node to mark things and then LBM+ABM to sweep them post hoc.
17:41 MTDiscord <Warr1024> I almost added an "albm" abstraction but out of the like 8 cases, at least half of them are subtly different enough that it wouldn't have made much sense.
17:49 erlehmann yes, structure nodes
17:50 erlehmann the advantage of a structure node, that unpacks into a structure after mapgen: if is atomic
17:50 erlehmann you get either the whole structure or not
17:50 erlehmann but not half the structure griefed by cavegen
17:50 erlehmann or chewed up by an adjacent mapblock generating
17:50 MTDiscord <Warr1024> Yeah, it's just annoying how much tooling is necessary to ensure they unpack...
17:50 erlehmann or chunk, whatever
17:51 erlehmann oh how much?
17:51 erlehmann have a link?
17:51 erlehmann is there maybe a generalized structure node unpacking mod?
17:51 MTDiscord <Warr1024> I just mean the need for an ABM to catch LBM failures.
17:51 erlehmann ah
17:51 erlehmann i once read that some user managed to snag a dfcaverns (?) structure thing that unpacked into an underground fortress or something like that hehe
17:52 MTDiscord <Warr1024> Also ABMs for node timer failures suck too.  Seems like those will get purged out of a mapblock at save time if there are too many or something.
17:52 erlehmann just by mining it when the server was laggy
17:52 erlehmann timers are cursed
17:52 MTDiscord <Warr1024> Everything is at least a little cursed ;-D
17:52 erlehmann coras fires using timers leaked memory a lot
17:53 erlehmann ABMs are the least cursed
17:53 erlehmann having 40k fires and an ABM to extinguish them randomly does not increase memory by a noticeable amount
17:53 erlehmann make each fire remember how long it burned and you fill the memory to the brim
17:54 MTDiscord <Warr1024> ABMs are good for what they're good for but if you need periodic firing of an event for a node on a strict interval, it'd be a lot of work to avoid timers.
17:54 MTDiscord <Warr1024> Node metadata at least is surprisingly less cursed than I'd have expected though.
17:55 erlehmann it is cursed in that you can put stuff in it
17:55 erlehmann it sees to be bottomless
17:55 erlehmann thicc mapblocks with lots of chests full of stuff
17:56 erlehmann way better than entity staticdata imo
17:56 definitelya__ erlehmann: Is a mapblock full of metadata nodes more prone to corruption?
17:58 definitelya__ Maybe it's unrelated; I just thought more node complexity = more breakage.
18:00 erlehmann definitelya__ having a lot of metadata and having a bit of metadata is the same complexity
18:00 erlehmann only when you get into stuff like split network packets it gets hairy
18:00 definitelya__ Ah I see, thanks.
18:18 Talkless joined #minetest
18:31 MTDiscord <Warr1024> Metadata fields can be marked private, which can help mitigate network impact.
19:11 sec^nd joined #minetest
19:17 proller joined #minetest
19:25 MinetestBot [git] dennisjenkins75 -> minetest/minetest: Correct world_format.txt specification (#12061) 0cd9c5b https://github.com/minetest/minetest/commit/0cd9c5b5be47dffd433e9bad8fd2119eb9ddf0f5 (2022-02-12T19:23:46Z)
19:25 MinetestBot [git] Wuzzy2 -> minetest/minetest: Add support for 'seed' in disallow_mapgen_settings (#12023) 10cf2f3 https://github.com/minetest/minetest/commit/10cf2f3eddb9106a87721e36f0dd284ec041c4d8 (2022-02-12T19:23:58Z)
19:25 MinetestBot [git] rollerozxa -> minetest/minetest: Apply texture pack main menu textures immediately (#12018) 258ae99 https://github.com/minetest/minetest/commit/258ae994915e1b9fc5b3a72627886f2ce4334902 (2022-02-12T19:24:20Z)
19:25 grouinos joined #minetest
19:45 Komodo joined #minetest
20:06 v-rob joined #minetest
20:35 independent56 joined #minetest
20:36 v-rob joined #minetest
20:56 chilledfrogs joined #minetest
20:58 chilledfrogs joined #minetest
21:05 Flabb joined #minetest
21:07 lagash What's a quick way to determine is something is a player or a node? E.g. from docs `clicker`: an `ObjectRef` (may or may not be a player)
21:08 Krock lagash: it's always an ObjectRef
21:09 Krock nodes are not objects
21:09 Krock use clicker:get_player_name() to check if it's a player
21:09 MTDiscord <luatic> no, use clicker:is_player()
21:10 MTDiscord <luatic> clicker:get_player_name() returns the empty string for non-players, which I wouldn't rely on
21:11 Krock it's documented to return an empty string. but agreed, there might be better functions
21:11 MTDiscord <luatic> Compare: if clicker:is_player() then ... end vs if clicker:get_player_name() ~= "" then ... end
21:12 lagash so when clicker is not a player, what can it be? a mob perhaps?
21:14 Krock any kind of lua entity, which includes mobs, vehicles, or dropped item stacks
21:16 Krock although I don't think there's a vehicle that performs right-click actions
21:16 lagash not yet you mean! }:)
21:17 Krock yes
21:17 Krock I have high expectations in you
21:36 MTDiscord <luatic> lagash: or sometimes a "fake player". These might be NPCs, but sometimes are just Lua structures for automation purposes.
22:04 chilledfrogs joined #minetest
22:19 specing joined #minetest
22:25 independent56 Is it normal to spawn to be full of bones?
22:25 independent56 Especially a spawn as mountainous as mine?
22:25 independent56 http://56i.duckdns.org:8080/#!/map/0/10/109/-3005
22:26 independent56 Here, see? Bones everywhere!
22:30 independent56 Should i make a button in spawn which grants shout for those who press it?
22:30 independent56 Or is it unethical?
23:00 Sven_vB joined #minetest
23:22 sfan5 why would it
23:24 independent56 joined #minetest
23:40 v-rob joined #minetest
23:42 Verticen joined #minetest
23:54 Hawk777 joined #minetest

| Channels | #minetest index | Today | | Google Search | Plaintext