Luanti logo

IRC log for #luanti-dev, 2025-06-03

| Channels | #luanti-dev index | Today | | Google Search | Plaintext

All times shown according to UTC.

Time Nick Message
02:00 SFENCE joined #luanti-dev
02:09 SFENCE_arch joined #luanti-dev
02:26 SFENCE joined #luanti-dev
02:29 SFENCE joined #luanti-dev
02:54 SFENCE joined #luanti-dev
03:00 MTDiscord <exe_virus> hurm, yep removing the overgeneration in the negative Y direction has the expected effect of reducing the layer of stone at boundaries, but silly enough, only most of a mapchunk in my system. I.e. still generating like 5% wrong with the overgeneration in the Y+ direction....  Why do we need overgeneration again?
03:07 MTDiscord <exe_virus> anyways, leaving this note for myself: looks like the culprit is overgeneration from the chunk below the also generating chunk from above. The chunk below is for some reason not applying biome to that overgenerated layer, and it is writing second, such that it's stone is overwriting the correct top node from the chunk above. So next spot to look is to understand how to get the chunk below to apply biome to overgenerated terrain too, if
03:07 MTDiscord not already.
03:08 SFENCE joined #luanti-dev
03:08 MTDiscord <exe_virus> the reason this doesn't happen in normal use, is if the node is not content_ignore, we skip it during terrain generation (aka stone). But it was content_ignore at the time the chunk received it's voxelmanip.
03:13 SFENCE joined #luanti-dev
03:14 MTDiscord <exe_virus> Also this is for v7, but I wonder/bet  others have the exact same issue
03:29 SFENCE joined #luanti-dev
03:36 v-rob joined #luanti-dev
03:51 SFENCE joined #luanti-dev
04:00 MTDiscord joined #luanti-dev
04:05 MTDiscord <jordan4ibanez> treee
04:36 SFENCE joined #luanti-dev
04:49 v-rob joined #luanti-dev
04:53 SFENCE joined #luanti-dev
05:02 SFENCE joined #luanti-dev
05:34 SFENCE joined #luanti-dev
06:21 SFENCE joined #luanti-dev
08:17 matteobin joined #luanti-dev
08:25 matteobin Good morning, thank you for making such a great game! I would like to write a script to rename a player's user name on a running Luanti server. Where all the player data and metadata is stored? Is it enough to just change the authentication and player database data or do I need to check all database tables for that player name? https://docs.luanti.org/for-server-hosts/database-backends/
08:35 [MatrxMT] <Zughy> I actually wonder where do we save players' metadata
08:42 matteobin [MatrxMT]: Exactly what do you mean with players' metadata?
09:03 [MatrxMT] <Zughy> matteobin: What we call PlayerMetaRef in docs/lua_api.md
09:31 matteobin Oh, sorry, I didn't get it was you Zughy! Hello my friend. MatrxMT is the Matrix bridge user, not an actual IRC user. Forgive my naivety.
09:39 sfan5 the player metadata is in the relevant database
09:39 sfan5 the more practical problem is that node metadata often saves the player name e.g. to handle ownership/protection
09:41 sfan5 so to implement your idea you'd need the script to look through the entire map data and rewrite any mentions of the player name while being aware how exactly the concrete mods in use store the ownership info
10:03 matteobin sfan5: So I need to browse the various table structures and replace the old name with the new name. Seems reasonable. It would be better if mods and node metadata used a numeric ID or a UUID to identify the player, but it shouldn't be too hard.
10:05 sfan5 no. it is hard
10:05 sfan5 the map database is not "various table structures" but a key-value store with binary blobs containing encoded map data
10:06 matteobin Oh... that's unfortunate.
10:06 matteobin Sorry, I didn't want to read arrogant.
10:08 matteobin However that blob structure is documented. Right?
10:14 stg-developer joined #luanti-dev
10:15 stg-developer left #luanti-dev
10:16 sfan5 sure
10:17 sfan5 https://github.com/luanti-org/luanti/blob/master/doc/world_format.md
10:17 sfan5 what isn't documented (as there is no standard) is how each mod decides to store player ownership
10:25 imi joined #luanti-dev
10:27 matteobin sfan5: mod player ownership is stored in the same binary blob?
10:38 MTDiscord <mistere_123> could we make decoration placement deterministic then?
10:39 MTDiscord <mistere_123> oh, this is in response to the conversation about why we need overgeneration
10:49 MTDiscord <jordan4ibanez> Yes
10:54 sfan5 matteobin: yes
11:00 matteobin sfan5: Uhm... seems very hard then. :D
12:58 MTDiscord <bastrabun> You could do it in two passes: Ask the database for every place where that namestring is mentioned, then investigate the data and see whether there are false positives and rule them out in your script.
12:59 sfan5 that doesn't work either, because the blob data is compressed
13:09 matteobin :(
13:13 sfan5 player uuids has been put on the list of things to do for Luanti 6.0 especially because such renames are essentially infeasible right now
13:14 matteobin Got it. Thank you.
13:59 MTDiscord <bastrabun> Ofc you need to uncompress it - every single mapblock - then search through it.
14:01 MTDiscord <bastrabun> One of our devs has a script which can at least find blocknames, we're using it to find where I messed up mapgen.
14:08 rubenwardy You could modify the player, auth, and meta dbs quite easily. The map is harder - but you could have an alias / renaming system that updates stuff as it appears and is loaded
14:08 rubenwardy this would mean the old name couldn't be registered by another user, which is probably desirable anyway
14:31 matteobin rubenwardy: Thanks for the input. I'll probably wait for player UUIDs to be implemented. It seems more sensible. I don't know if making old names unavailable for registration is desirable. I'm thinking about inactive accounts. There should be a way to delete inactive accounts, to avoid wasting an inactive user name.
14:32 rubenwardy it might be a few years
14:35 matteobin To 6.0? I can wait. I need this feature, but it's more of a long-term need. I'm in no hurry.
14:37 matteobin In the meantime I can donate to the project. :D
15:05 swift110-mobile joined #luanti-dev
15:11 wsor4035 joined #luanti-dev
15:12 jonadab joined #luanti-dev
15:21 citrons joined #luanti-dev
16:18 MTDiscord <exe_virus> This is the kind of community member I appreciate!! For the record, I'm in a similar boat haha.
16:22 matteobin exe_virus: Thank you. Being able to change user name without losing your data is a nice feature, quite useful, especially for public community servers. However Luanti is already a wonderful game as it is. No need to put extra pressure. :)
16:27 Juri joined #luanti-dev
17:24 alias joined #luanti-dev
18:07 v-rob joined #luanti-dev
18:37 MTDiscord <warr1024> The current workaround for this is to use mods to make a player's "display name" different from their username, e.g. in custon nametags, chat messages, etc.  Hecks was doing something like this for his server where player chat would be attributed to your character name, not your username, and usernames were treated as "sensitive/internal" data and avoided leaking to other users.  Something like that could get you closer to what you want.
19:28 YuGiOhJCJ joined #luanti-dev
19:42 MTDiscord <luatic> yep i think that's the way to go
19:43 MTDiscord <luatic> you (and other modders) should ideally start writing your mods in such a way that they treat display names and player identifiers as two separate things. this doesn't need the engine to do anything.
19:43 MTDiscord <luatic> but the engine should probably define a convention, e.g. an overrideable player:get_display_name(), so modders start adopting this
20:15 SFENCE_arch joined #luanti-dev
20:21 [MatrxMT] <Zughy> Sure, as a mantainer of ~20 mods I'll definitely do that (sarcasm)
20:24 MTDiscord <nathan4220776> That's the spirit! ( ͡° ͜ʖ ͡°)
20:41 MTDiscord <exe_virus> Or built-in could provide an easy api
21:08 luk3yx joined #luanti-dev
21:12 v-rob joined #luanti-dev
21:16 Safea joined #luanti-dev
21:17 MTDiscord <luatic> Zughy: I get that it's nasty, but it shouldn't be so bad actually. You just grep for player:get_player_name() and see where those names end up. If it's used as an ID, use player:get_poid() (fictive new API function which for now returns the player name so your code doesn't break). If it's used as a display name, use player:get_display_name().
21:18 MTDiscord <luatic> The reward you get is that suddenly players can have display names which don't need to abide by Luanti player name limitations and which can be changed. Also, could e.g. stuff clan info or something in there.
21:18 MTDiscord <luatic> But I agree that it's relatively low priority both for modders and engine devs.. so nothing happens.
21:27 MTDiscord <nathan4220776> Having customizable names would also allow players to do stuff under someone else's name. Whether or not that's a good thing depends on who you are...
21:57 Safea joined #luanti-dev
22:33 panwolfram joined #luanti-dev
22:44 v-rob joined #luanti-dev
23:05 Eragon joined #luanti-dev

| Channels | #luanti-dev index | Today | | Google Search | Plaintext