Time Nick Message 00:23 apteryx which guards would make sense on a server sitting on the internet but for private use (e.g. only allowing a list of usernames) ? I think I saw a whitelist mod 01:44 user333_ not announcing the server will do it 99% of the time 01:45 user333_ it can still be connected to if you know the IP/port but wont be on the serverlist 02:00 burgeresque luatic im p fine, returning after 6 years to look what minetest has become 02:00 burgeresque we need to migrate not to microsoft accounts but to luanti 02:03 burgeresque i am not sure why bilinear and trilinear filtering are separate toggles, why not make them a list? 02:03 burgeresque the whole graphics section is all around the place 02:26 apteryx user333_: thanks 02:27 apteryx I'm trying to build the whitelist mod on Guix, currently getting: https://paste.guixotic.coop/829rda40m1p11vsv2ixrqspk54nz7y-luanti-whitelist-1.2.7.drv.html; any ideas? 02:29 apteryx seems the critical thing would be: ERROR[Main]: ...elist-1.2.7/share/luanti/mods/whitelist/src/commands.lua:3: attempt to index global 'chatcmdbuilder' (a nil value) 02:30 apteryx this should be available since I've packaged the chatcmdbuilder mod separately and made it available 02:31 MTDiscord probably because you arent depending on the mod 02:31 apteryx is this the fault of whitelist? Should it declare this somewhere? 02:32 MTDiscord i assume you mean s/build/run 02:32 MTDiscord and which whitelist mod, there is no "the whitelist" mod 02:33 apteryx right, it wasn't clear to me what the machinery in Guix was doing, but I've now looked at it, and it runs Luanti and ensures there are no (non-audio) errors in its output 02:33 user333_ there are a few generic ones, look on contentdb 02:33 user333_ whitelist mods 02:33 apteryx this one: https://gitlab.com/zughy-friends-minetest/whitelist 02:33 apteryx which was referenced from https://docs.luanti.org/for-server-hosts/setup/ 02:33 MTDiscord the depends is declared https://gitlab.com/zughy-friends-minetest/whitelist/-/blob/master/mod.conf?ref_type=heads#L4, do you not have that mod installed/enabled? 02:34 MTDiscord i would think it wouldnt start if thats the case 02:34 apteryx it's installed yes, by being found on the MINETEST_MOD_PATH (which is patched to LUANTI_MOD_PATH in Guix for reasons) 02:35 apteryx (which would be a better name for that MINETEST_MOD_PATH - would you (upstream) be happy to receive such a patch?) 02:36 MTDiscord if its backwards compatible you can make a pr 02:36 apteryx OK. I'd need to rework it a bit, I think it currently was doing a simple substitution. 02:36 apteryx thanks 02:37 apteryx this is what the 'luanti-chatcmdbuilder' package I just made in Guix, which is a dependency of 'luanti-whitelist', contains in its output (install prefix): https://paste.guixotic.coop/_shell_4_-74658-75841.html 02:38 apteryx that's made available to whitelist in the build environment by setting this env var: `LUANTI_MOD_PATH' set to `/gnu/store/qr7qn12zjj0d50wi3c05ckbcjmqvd14m-luanti-chatcmdbuilder-0.2.0/share/luanti/mods' 02:39 MTDiscord its your own fault 02:39 MTDiscord init.lua of the mod calls chatcmdbuilder.lua and you didnt package that 02:39 MTDiscord at least according to that paste 02:39 MTDiscord and assume i can read 02:39 apteryx OK! I'll look into that, thank you 02:41 apteryx hm, chatcmdbuilder 0.2.0 from git doesn't contain it either: https://paste.guixotic.coop/_shell_4_-76025-76742.html 02:41 apteryx (no chatcmdbuilder.lua file) 02:41 apteryx maybe I should use the last commit instead of this old 0.2.0 release 02:41 apteryx release tag* 02:43 apteryx looks like it 02:43 apteryx the release is older than that file ^^' 02:44 apteryx poked upstream about it in https://github.com/rubenwardy/ChatCmdBuilder/issues/12 02:45 MTDiscord wasting everyones time 02:46 MTDiscord the mod is rolling release like most everything in luanti 02:46 apteryx ah, OK. So the mods packaged in distros should always use the latest available commits? 02:46 MTDiscord the first mistake is mods packaged in distros 02:47 MTDiscord on contentdb, mods can either be made by manual release, from git rolling release (pulled nightly), or by tag 02:48 apteryx I disagree here, at least when it comes to Guix. I think it makes it easy to provision a server/machine with a well defined snapshot of the world, which can be reverted to if needed, or to troubleshoot regressions. 02:48 MTDiscord by in large (dont have stats and im to lazy), i would say most of mods are rolling release 02:49 apteryx OK 02:51 apteryx that specific whitelist mod is now happy, thanks for the help 02:51 MTDiscord would i be correct in assuming your doing this for a server? if so the most common way to actual have some management is a repo of submodules for mods 02:51 MTDiscord course a lot have nothing lol 03:09 MTDiscord assuming its one of the latter two, the hash will be in the release name 03:15 apteryx Yes, I'm doing this for a server 03:15 apteryx yeah, that's a lot of micromanagement and backups, when all I need otherwise is a Guix commit. 03:16 Blockhead256 guix maintainers doing weird things - if we had seen fit to rename the environment variables and the game file directory, we would have done so 03:16 Blockhead256 those were kept for backwards compatibility 03:17 Blockhead256 hence as has been said, forwards-compatibility, where the old names still work, is what would get the PR accepted 03:17 apteryx ah, relooking at the patch, the backward compatibility seems to be preserved, it just prefers the LUANTI_ prefixed variants 03:17 apteryx I'm a bit surprised it was not forwarded to upstream 03:17 apteryx I'll do so in a bit 03:18 apteryx but to get a quick view of it, it looks like: https://paste.guixotic.coop/luanti-paths.patch.html 03:18 Blockhead256 >I think it makes it easy to provision a server/machine with a well defined snapshot of the world 03:18 Blockhead256 this is what worldmods are for 03:19 Blockhead256 https://docs.luanti.org/for-players/installing-mods/ 03:19 apteryx can you easily revert to any old deployed snapshot with this? 03:20 apteryx I guess via backups 03:21 apteryx any previously deployed snapshots* 03:21 MTDiscord as previously mentioned > if so the most common way to actual have some management is a repo of submodules for mods 03:22 Blockhead256 I don't know how you intend to have a 'snapshot' of a world without that being a backup, unless you don't want to save the world but leave the default terrain and let the seed regenerate 03:23 apteryx I meant more in the sense of a snapshot of the functional parts (luanti/game/mods). For the world, good backups seems unavoidable since it's state. 03:24 Blockhead256 see e.g. https://github.com/pandorabox-io/pandorabox-mods https://github.com/mt-mods/dreambuilder_game 03:25 apteryx can I configured mods declaratively via the luanti configuration file? 03:26 Blockhead256 well there are so many methods, obviously you favour the guix package management method, others git, others a CLI tool to fetch contentDB releases, and others worldmods (often custom mods tied to that world) 03:26 Blockhead256 minetest.conf contains settings not only for the engine but any settings declared in settingtypes.txt files inside of mods 03:27 Blockhead256 per-world configuration is a bit.. messier 03:28 Blockhead256 map_meta.txt (whatever extension) saves the mapgen settings, but only those 03:28 Blockhead256 and bad luck if it's a Lua mapgen I guess, since those are all typically 'singlenode' 03:30 apteryx OK. For the moment I was thinking about globally configuring some mod; good to know that putting that configuration in minetest.conf should do it, thanks 03:32 Blockhead256 since the command line has an option for the path to minetest.conf, you could run multiple worlds on one copy of the game from that while keeping all settings separate 03:32 Blockhead256 but maybe a different container is desirable for other reasons anyway 03:47 apteryx should a mod installed to $path_share/mods/ be readily available to luanti? I was trying '/whitelist enable' as a global command and it says 'Invalid command: whitelist' 03:49 MTDiscord its installed, not enabled 03:51 apteryx and enabling it is something else than '/whitelist enable' ? 03:52 MTDiscord Your talking about a command from the mod 03:52 MTDiscord Im talking about enabling the mod itself 03:53 MTDiscord In your world.mt file 03:54 apteryx OK! 03:54 apteryx I see, that's covered in https://docs.luanti.org/for-players/installing-mods/#installing-a-mod 03:56 MTDiscord That's semi outdated, true is the old value, it's a path now iirc 03:56 MTDiscord If you enable a mod from the gui see what the world.mt file looks like 03:56 MTDiscord Some dumbass needs to update that page 03:57 MTDiscord ||aka me in a bit|| 03:59 MTDiscord Also not sure why that mentions putting mods in games, thays stupid and should be nuked from orbit 04:25 MTDiscord ok, that page should be updated now 05:59 apteryx MTDiscord: having `true` still makes sense I guess if your mod is on the some MINETEST_MOD_PATH directory rather than inside your $share_path 05:59 apteryx having to repeat that path there would be annoying 06:07 MTDiscord Mtdiscord has multiple personality disorder 06:07 MTDiscord (It's a relay) 06:08 MTDiscord True may still work, but it's depreciated, also it's a relative path 06:18 apteryx is luanti.conf already accepted as substitute for minetest.conf? 06:20 apteryx another question: how would someone install mods via the gui for a world hosted on a remote server? 06:20 apteryx that's not doable via the GUI, right? 06:50 Blockhead256 no there is no luanti.conf, c.f. earlier comments about compatibility 06:51 Blockhead256 if someone wants to install mods or enable them for a world via a GUI, I recommend doing it on a client computer and then doing a file copy 08:39 apteryx Blockhead256: I see! 08:39 apteryx are mods dependencies suposed to be satisfiable also via the MINETEST_MOD_PATH environment variable? 08:42 apteryx I'm getting an error at the moment, which I thought I should have resolved by adding lib_chatcmdbuilder to the whitelist and trusted mods, as well as on MINETEST_MOD_PATH: https://paste.guixotic.coop/_scratch_-10884-12437.html 09:17 apteryx needed to expose the transitive closure of luanti mods in my container 09:27 Blockhead256 > is missing: Install and enable the required mods 09:28 Blockhead256 either it was not installed where the program could see it or you did not enable it, and it looks like you enabled it 09:29 Blockhead256 if you had used a path instead of a boolean variable, it would have told you in case it could not be found 11:00 MinetestBot 02[git] 04CrazyladMT -> 03luanti-org/luanti: Show proper default key name in reset tooltip on keybindings menu (#1… 13975699a https://github.com/luanti-org/luanti/commit/975699a9504a5dfe50b941f5f82c013fb0e5cb17 (152025-12-30T10:58:52Z) 11:15 Blockhead256 photorec with some custom rules recovered 14500 files, time to go through them all lol. Hopefully what I'm after is in there, namely un-backed up minetest stuff 11:16 apteryx Blockhead256: the Guix service I made is containerized, and I needed to expose all the transitive mod dependencies to it 11:16 apteryx whitelist depends on lib_chatcmdbuilder for example, which was not available to the container 11:17 Blockhead256 oh yeah since all your mods are packages then you need to transitively add all of it.. fun 11:20 Blockhead256 if you were say, sysadmin of a public server, would you go to the effort to package all of your mods for guix? that sounds awfully labor intensive against git submodules, well unless there's some easy way 11:24 apteryx Blockhead256: I don't personally have very demanding needs (I only wanted a whitelist); there's already a few mods packade in the (gnu packages luanti) module, and I'm happy to let others add what they need :-) 11:24 apteryx packaged* 11:25 retro_bread_ hello 11:27 apteryx hopefully most mods do not have complex mods dependency chains, as the lack of a declarative means to enable all of them is a bit painful for servers 11:30 apteryx this is what the user-facing config of my server looks like so far: https://paste.guixotic.coop/ovh-4797-5457.scm.html 11:33 Blockhead256 you are lucky the most complicated dependency graphs are inside of games, like mineclonia 11:33 Blockhead256 but even significant content mods for Minetest Game (MTG) often have a lot of optional dependencies 11:34 Blockhead256 (mineclonia has many modules within it) 11:37 apteryx looking at the `propagated-inputs' fields of luanti packages in Guix so far to get an idea, I see only mods propagating stuff. We probably do not have that many games packaged. 12:00 Blockhead256 looking through a lot of OBJ file fragments and wishing people renamed their stuff away from Cube.001 12:00 Blockhead256 anyway I don't really think I've lost any OBJs 14:44 Blockhead256 src/settings_translation_file.cpp 14:44 Blockhead256 5:fake_function 14:44 Blockhead256 interesting, was this some weird thing to make sure a parser doesn't accidentally grab things inside block comments? 15:41 sfan5 apteryx: what are you whitelisting whitelist,lib_chatcmdbuilder for? 15:51 * cheapie gives Blockhead256 a Cube.002 15:52 * mrcheese watches stuff happen 15:53 Blockhead256 I'm not sure what happens after Cube.999, but I'm not sure it would fit into Luanti any more anywaey 15:54 cheapie Especially not with the file size limit that was added a while back, not that anything reasonable would hit it anyway 16:05 Blockhead256 Cube.001 would be a node in a meme mod, untextured white cube. Actually, some mod probably already has that.. 16:05 Blockhead256 or as an entity, where it ought to be 10x too small 16:05 * cheapie looks at a mod sitting in a test world at home called "meshnodetest" 16:05 cheapie yes 16:08 user333_ there's already an untextured white cube in MTG 16:09 user333_ default:cloud 16:09 cheapie Yes, but does it have one that's 2x2x2m and crudely painted a different color on each side? 16:12 user333_ uhh- not yet afaik 16:52 Blockhead256 GNU find is kinda mean, it keeps thinking my Lua files are JavaScript 16:53 Blockhead256 GNU file 16:53 Blockhead256 I mean nobody would ever write a mod in JavaScript right.. ? 🧐 16:58 MTDiscord more commonly typescript 16:59 MTDiscord but typescript is a superset of javascript.... so 16:59 MTDiscord can you transpile javascript to wasm, if yes you can transpile wasm to lua... hmm... :) 17:01 Blockhead256 I mean, the whole program has been transpiled before to make it run in a browser.. 17:02 MTDiscord why would you even bother with wasm? 17:02 MTDiscord just use typescript to lua like everyone else has 17:02 MTDiscord ok but if for whatever reason i wanted specifically javascript 17:03 Blockhead256 the engine just doesn't run javascript buddy 17:05 MTDiscord yes but what if i transpile javascript to webassembly, then to wasm, then transpile that to lua (surprisingly possible) 17:05 Blockhead256 let me know how you get on, particularly which step breaks it 17:16 MTDiscord Javascript is typescript, so just use the transpiler 17:16 Blockhead256 >local seed = 1048576 * (os.time() % 1048576) 17:17 Blockhead256 pro tip: if you want to replicate your RNG, just do it again 12.1 days later, to the exact second 17:17 Blockhead256 nvm it mixes microsecond time later 17:18 Blockhead256 nobody's that good, even with a good gamer chair 17:24 MTDiscord Blockhead256: me specifically wanting to write stuff in luanti with javascript was a joke, i don't know if i should actually try this 17:29 Blockhead256 well be careful, you might accidentally learn something 17:29 MTDiscord https://tenor.com/view/star-wars-admiral-ackbar-its-a-trap-meme-gif-8125029 17:52 burgeresque hi chat 17:52 MTDiscord bye chat 17:52 burgeresque why bother with typescript when you can use markdown 17:52 MTDiscord why bother commenting constructively when you can troll 17:54 MTDiscord to be fair, im basically trolling by responding in kind 17:55 burgeresque why bother trolling when you can slap the opponent with a large trout around for a bit 17:55 MTDiscord :juanchi_face: 18:03 burgeresque yep irc emojies 18:03 burgeresque uhuh 18:03 burgeresque whats next 18:03 burgeresque voicecalls? 18:03 burgeresque noob 18:03 burgeresque !say does this work still 18:03 burgeresque what was it 18:03 burgeresque !help 18:03 MinetestBot https://github.com/sfan5/minetestbot-modules/blob/master/COMMANDS.md 18:04 burgeresque !msg #luanti noob 18:04 burgeresque truly 18:04 burgeresque !msg 1 18:04 burgeresque amazing technology 18:05 burgeresque !tell 1 18:05 MinetestBot burgeresque: ...and text 18:05 burgeresque found it 18:05 burgeresque !tell #luanti jjewjq 18:05 MinetestBot burgeresque: I'll pass that on when #luanti is around 18:05 burgeresque amazing 19:19 Krock You'd need a good programmer chair and not a good gamer chair to make good code, obviously. 19:27 MTDiscord not really you'll just do it faster in this "programmer chair" 20:10 [MatrxMT] can't program without my programmervim and programmersupps 21:11 burgeresque @grok is this real 21:14 sfan5 but is it true tho 21:18 Krock `false` is real but not true 21:28 MTDiscord i'm surprised programming socks haven't been mentioned yet 21:34 Krock because they don't help you programming. Use programming gloves 22:03 * user333_ painstakingly writes a script to download IRC logs from irc.luanti.org... im parsing the HTML using basic string manipulation ;-; 22:15 sfan5 you know that there's a text mode right? 22:22 Krock why make it easy when it's also possibly the hard way? 22:22 Krock *possible 22:54 user333_ oh... it woulda helped to know that earlier 22:54 * user333_ deletes 70% of the script 23:28 user333_ ok i got error 429 (too many requests), time to add some rate limiting 23:31 user333_ 5 seconds/request should do it 23:33 user333_ seems to work, just /me's don't get formatted properly