Time Nick Message 11:35 MinetestBot erle: Aug-25 13:09 UTC hmm thats odd. i guess to compensate for stuff like that, i'd say that a client side option should act as a % tweak maybe. so like if you have to set it to 90% and the server game wants your near plane to be 0.1 then is set to 0.09 for example. 11:36 erle it would be kinda bizarre to want this as a server setting in the first place, seeing that it is dependent on hardware features 11:36 erle btw, wireframe does not work on vivante GPU (and possibly others, idk) 11:41 luatic it is not at all bizarre for a game to want to control this. but yes, just like the rest of the camera API, this should be a clientside (SSCSM) API. 11:42 erle luatic as i said before: if engine developers can't get this right, i have a very low confidence that game devs can get this right 11:45 erle luatic there exist a bunch of things that only become a bad idea once you account for the human in the loop. remember the time when someone “helpfully” suggested to kick players that had oversized inventory “so the server does not crash”? absolute evil! 11:45 erle (google bookbanning) 11:46 erle luatic btw, do you have any idea regarding backwards compat for the model compatibility offensive introduced in 5.9 that makes the head of the player model be in the crotch? 11:47 erle like, from an engine point of view, is it easily possible to support both old and new models in a client without grandfathering the old ones in, e.g. via hash? 11:47 erle i know you won't do it for purity reasons, but there's someone who makes a minetest-client-but-with-irrlicht and that someone is interested 12:09 luatic i'm confused. i'm not aware of a change in 5.9 that would "make the head of the player model be in the crotch"? 12:11 luatic also, "minetest-but-with-irrlicht" sounds weird, that's what luanti is, except we've forked irrlicht. and having delved into irrlicht code more than i would have liked to, i can tell you the ability to modify it is worth a lot. 16:27 MinetestBot 02[git] 04Desour -> 03luanti-org/luanti: Builtin profiler: Capture Tracy zones; And small improvements (#16479) 136949720 https://github.com/luanti-org/luanti/commit/69497200f9d0c0cd17c9c2324d5601ab63b3e158 (152025-09-08T16:27:26Z) 18:36 bgstack15 I see Luanti has a history of the console commands, but it appears to only work for the current session. Closing and re-opening Luanti loses all the console command history. https://docs.luanti.org/for-players/console/#history 18:36 bgstack15 Is there a way to keep it across restarts of the client? 18:38 jonadab The obvious way to do that would be with a client-side mod. Though the most obvious way to do a thing, isn't necessarily always the best way. 18:39 jonadab But in this case, it might actually be the best way, because command history feels like a UI feature to me. 18:40 jonadab That leaves the question of whether the CSM should keep one global history that applies to local games and all servers, or separate ones for each. 18:58 bgstack15 Well, I found a CSM for logging the chat. I was more interested in the command history. 20:15 jonadab Yeah, I wasn't claiming that the CSM exists, only that that would be the logical way to approach the problem. 20:15 jonadab Though logging the chat also seems useful, at least to me. 20:18 MTDiscord The simplest way is to have one chat history, kind of like how .bash_history is usually just a single file with every command listed in it. 20:19 MTDiscord In some clients (I'm not sure about stock minetest), you can log any text that you send using something like minetest.register_on_sending_chat_message(chateffects.send) . 20:20 MTDiscord Where chateffects.send is the name of the function that handles messages. 20:24 MTDiscord For instance, here's a client-side mod that replaces certain characters with other characters: 20:24 MTDiscord https://cdn.discordapp.com/attachments/749727888659447960/1414707957232439460/chateffects_example.txt?ex=68c08cf5&is=68bf3b75&hm=d23cfb0bef30800ffb8aa5b7abd4de9d5b79f9987eb2fd9763e90d91dbaab656& 20:25 MTDiscord If you want your commands to be saved to a file, you'd probably have to enable "unsafe" mods in your minetest settings. You'd also probably need to write a function that checks that the text contains a / or . before saving it to a command history file. 20:26 jonadab Assuming you only want to save commands, and not everything, yeah. 20:27 jonadab My instinct would be to make it work like e.g. .bash_history i.e., save everything the user types whether it's a valid command or not. 20:27 jonadab But suppress duplicates, probably. 20:27 jonadab But I'm not the one who wants the mod, so my instincts are possibly not the same as what he would want. 20:28 jonadab There's also the question of when to rewrite the file. You could do it after every command, but you might not want to. You might prefer to write it on disconnect, or something. Dunno. 20:30 bgstack15 I would want the chat history to be populated by the history when the client starts up again. Is that possible, do you think? 20:30 bgstack15 (I would expect a logging utility to merely append to a file; but that's an implementation detail we don't need to concern ourselves with here) 20:30 MTDiscord The answer to "is that possible" is usually "yes". However, I don't know how I would do that. 20:31 MTDiscord Just wondering, why do you need the command history? 20:31 MTDiscord Maybe it would be easier to write a client-side mod that runs various commands one after another if you're doing the same thing over and over again. 20:34 jonadab My instinct says worldedit is probably involved, but that's only a guess. 20:47 erle luatic have you ever sent a patch to irrlicht upstream though? 20:48 erle bgstack15 jonadab if you are interested in people who make CSMs, join oysterity anarchy server. quite a lot of people there use custom clients that e.g. have enhanced sccript APIs 20:48 MTDiscord Yeah, and also the Team Acedia discord. 20:48 MTDiscord The Oysterity server is cool, but the discord server is quite dead at the moment. 20:48 erle and sometimes these are very useful for debugging, but luanti would never add them 20:49 jonadab erle: I won't play on servers that have PvP combat. 20:49 erle jonadab you can just idle at spawn and chat with people though 20:49 jonadab Ah, I suppose. 20:49 erle like, i do that sometimes when i test performance issues 20:49 jonadab I'll keep that in mind if I ever want to write a CSM. 20:49 erle i mean oysterity is … special, so to say 20:49 MTDiscord Oysterity is a rather laid-back server, with occasional moments of panic if you get caught by surprise. 20:49 erle haha yes 20:50 jonadab Which, I potentially might at some point, though at present I don't know what it would be. Don't need a CSM for anything I want to do right at the moment. 20:50 erle also i once stole an end portal (the one near x=1812) and rebuilt it on the nether roof 20:50 erle then reported the dig-any-node bug and now that trick can't be repeated 20:50 MTDiscord Jona, I have a csm for crafting stuff automatically. 20:50 MTDiscord There are a lot of things you can do with a csm. 20:50 erle cora has a CSM for schematics 20:51 jonadab Hmm, bulk crafting would be a nice CSM. 20:51 erle like, if you are ever on a mineclonia server and you see a lot of heart-shaped nether portals, that's cora's doing 20:51 jonadab If the UI is any good. 20:51 MTDiscord It's great that you mention that. Is there a modern csm for automatically building stuff? 20:51 jonadab I don't see myself playing on a mineclonia server though. 20:51 erle ask cora ig? or someone else doing that stuff 20:51 MTDiscord Idk if irc users can see my attachments, but here it is if you're interested. 20:51 erle jonadab this stuff is not mineclonia-specific 20:51 erle i can't see any attachment 20:51 jonadab Right, crafting would be relevant in a lot of games. 20:52 MTDiscord https://cdn.discordapp.com/attachments/749727888659447960/1414714923195568169/init.lua?ex=68c09371&is=68bf41f1&hm=77047319f7f7879a6555e1bf77b2212eeb2e783d604c1da4937865eb888126c3& 20:52 erle now i see it 20:52 erle btw some servers (e.g. oysterity) have rail lines from the origin to the map edge 20:52 erle these are made using the railbot CSM 20:53 erle nathan why you need the autocrafter in the first place? 20:54 MTDiscord To make building stuff les tedious. 20:54 MTDiscord less* 20:54 bgstack15 Alas, I don't think I need CSM development. I mean, I might, but it looks kinda like regular mod development so I might not need specific help? 20:54 MTDiscord I actually created a pull request for a minecraft-style crafter block in mineclonia, but I don't think it's ever getting added. 20:54 jonadab erle: At the moment, I don't. 20:54 MTDiscord It's been months since there has been any activity on that PR. 20:55 jonadab (Or, well, pipeworks autocrafters do enough.) 20:55 jonadab But I can see how it would be useful. 20:55 jonadab And yes, the use case would be to make it less tedious to make stacks of certain kinds of things. Particularly things with non-stackable crafting ingredients. 20:56 MTDiscord Also, another reason is to quickly replenish tools that break. 20:56 MTDiscord For instance, here is my csm for automatically crafting flints once they break. 20:56 MTDiscord https://cdn.discordapp.com/attachments/749727888659447960/1414716031045341335/init.lua?ex=68c09479&is=68bf42f9&hm=f8f62cb80c4568453b5e76b852d12cf2309dfcaf00af44c97f12cbbc90393dbf& 20:56 erle athan mineclonia has a “put all the stuff in the crafting grid for the current recipe” button 20:56 erle also nathan maybe use a proper pastebin instead so it gets preserved for posterity 20:56 MTDiscord Yes, but that still requires manual interaction. 20:56 erle like https://mister-muffin.de/paste 20:56 jonadab Eh, once I've been in a world for a decent amount of time, I don't break tools any more, I repair them. 20:56 MTDiscord Maybe someday. ;) 20:57 MTDiscord Flints aren't worth repairing. 20:57 erle bgstack15 the thing about CSM development is that luanti does not have much of it with it. whereas e.g. the client waspsaliva comes with a range of CSMs you can learn from. 20:57 erle and improved CSM APIs 20:57 MTDiscord Cloakv4 is the latest client with good CSM support. 20:57 erle yay \o/ 20:57 erle e.g. killaura is funny: hit everything on a list. like, all mobs if you idle. 20:58 erle according to legend cora several times killed a server admin on clamity who liked to snoop on players by teleporting close to them and doing a flyby hehe 20:58 jonadab I don't know that I've ever used a flint tool, other than flint and steel, and I don't think I've ever used that enough times to break it. Typically you just occasionally light a permanent fire in a hearth or someplace (on a coal block, usually) for aesthetic purposes. Like, once every twenty or thirty builds. 20:58 erle waspsaliva also has auto-eat 20:59 erle and one of the funniest: kamikaze mode. just homes in on the target, unarmed, and punches it. 20:59 erle after respawning, does it again 20:59 erle repairing is not the same in every game. i think in some games repairing costs xp (like mineclonia when using the anvil) or disenchants things (like mineclonia when using the grindstone) 21:00 erle and i think i have also seen code that makes repairing things more difficult to repair in the future 21:00 jonadab I was thinking Technic repair. 21:01 jonadab Most of my experience playing, is with Pipeworks/Technic/Mesecons installed. 21:01 erle anyway, CSMs are often viewed as “you can cheat with that” but in my experience that's only really true for PvP 21:01 erle of course if you have a dupe, you can dupe faster using a CSM :P 21:01 erle but who has dupes anyway hehehehehe 21:02 bgstack15 My servers are only ever survival mode Mineclonia or MTG. I'm kinda boring. 21:02 MTDiscord You can always duper water. 21:02 MTDiscord Survival mineclonia is the best kind of server. 21:02 erle mineclonia is not boring, it has exquisite fun times 21:02 FeXoR Middle mouse button crafts 10, shift+left mouse button on craft output a stack. So not sure why a CSM. 21:02 erle and since v rewrote the redstone stuff, it works well 21:02 erle you can make flying machines easier 21:02 jonadab Cheating isn't particularly of interest to me, except insofar as how servers can be set up to deter griefing. 21:03 MTDiscord Fexor, but a csm can let a player idle for hours next to a mob farm and automatically condense the items into solid blocks. 21:03 erle and since dispensers are movable, you can even make a flying machine that bombs using TNT (if you have enough TNT) 21:03 jonadab (Which is mostly about area protection.) 21:03 MTDiscord Protections can also facilitate griefing. 21:03 erle i think area protection is bullshit in terms of griefing protection 21:03 MTDiscord If someone lavacasts a protected spawn, it is inescapable unless an admin removes the cobble. 21:03 erle look at the servers that have no griefing but a sizeable audience, they are almost always nodecore 21:03 erle (if they have no protection) 21:04 erle i once made a funny thing with protection nodes. i found a small space near spawn of a server and made a machine that had a dispenser with a button which was fed by double chests with a few valuable items and a lot of trash. 21:04 MTDiscord Also, it's usually possible to harvest protected plant farms by pouring water from a decent height above them. 21:04 erle i then protected that thing 21:04 jonadab If your protected spawn area can be lava-flooded, you did it all wrong. 21:05 erle no one could actually take out the goods 21:05 erle so new players would sit around the machine and press the button 21:05 erle like rats in a skinner box 21:05 MTDiscord Kinky. 21:05 erle i saw it as an art piece, reduce the game down to it's essentials 21:05 erle press button, receive a random reward 21:05 jonadab Which, granted, I once played on a server where the admins had done that wrong, and someone did lava-flood the area around the spawn pavillion. I fixed it, and installed a protected glass roof directly above the protected area. 21:05 erle unfortunately i got banned when an admin showed up and saw what was going on 21:06 erle apparently having fun like that was BANNED 21:06 jonadab (And then a week or so later the server went offline. Which I should've seen coming, given how inactive the server operators were.) 21:06 MTDiscord Jonadb, was this kay27's mineclone 5 server? 21:06 erle but i laughed a lot when i saw people would not mine and instead press that button until they got a valuable item 21:06 erle they dropped the shitty items, which i then filled into the chests again 21:06 erle so the chances became lower and lower to win a prize hehe 21:07 jonadab It wasn't a mineclone server, no. I don't have any interest in mineclone. 21:07 erle most protection is just annoying to me 21:07 erle IIRC cora and li0n and me once went to a your-land (i think?) 21:08 erle a server with cities surrounded by wilderness 21:08 erle you could claim a plot in the city and elect a mayor or something 21:08 erle well, we ventured outside of the city and setup a treehouse and defended it against mobs hehe 21:08 jonadab Or you could just go out into the wilderness and build (and protect) whatever you want, sure. 21:08 jonadab Yeah, I did the same thing on, umm, li-fo I think it was. 21:08 erle protected areas rarely have roofs actually 21:09 erle they are a single stack of sand nodes away from being lightly griefed 21:09 erle and a bunch of lava and water away from being lavacast 21:09 jonadab There's not a lot of point in protecting an unroofed area. 21:09 erle though i must say that lavacasting unfortunately still does not work well, because viscosity was only applied to the inflow last i checked 21:09 erle like, water and lava drop at the same speed 21:10 erle which makes “build stairs and put lava source and water source at the top to make a giant cobble triangle” not work well 21:10 MTDiscord That's why you put lava first, let it spread, and then put water in ways that don't break the source block. 21:10 MTDiscord I don't usually build stairs when I do it. 21:10 MTDiscord Just a block to place the lava on, and another block to cover the lava source. 21:10 erle it's not necessarily about the source block. it's about the fact that any interruption of the flow makes holes in the cast 21:10 erle i once did a pure-lua patch to fix that 21:11 erle basically, if you make an abm that slows down lava dropping or makes water drop faster the bug is virtually fixed 21:11 erle in any case, the issue is that fluids flow into spaces at different speeds, but flow out of spaces at the same speed 21:11 erle (if i am wrong about that, i want proofs) 21:13 MTDiscord Speaking of killaura (from earlier), there are a lot of things that you do to "tune" a cheat so that it looks more legit. Here's an example of only killauraing players that are in direct line of sight, so it doesn't kill people through walls: if (core.settings:get_bool("killaura.legitaura") and target_enemy ) then local pos = truncate_pos(player:get_pos()) local enemy_pos = truncate_pos(target_enemy:get_pos()) local 21:13 MTDiscord has_los = not is_block_between(pos, enemy_pos, 1.0) if (not has_los) then return end end 21:13 jonadab At first I thought that statement made no sense (thinking of flowing from space A to space B as flowing out of A and into B), and then I realized that by "flowing out of" you meant drying up when the source is removed. 21:13 MTDiscord The full version of this code is available on github. 21:14 erle maybe provide a link? 21:14 MTDiscord Here's the line-of-sight function: -- Returns true if there is a solid block between pos1 and pos2. local function is_block_between(pos1, pos2, step) step = step or 0.5 -- How far apart to sample along the ray local diff = vector.subtract(pos2, pos1) local total_distance = vector.length(diff) local direction = vector.normalize(diff) local steps = math.floor(total_distance / step) for i = 1, steps do 21:14 MTDiscord local sample_pos = vector.add(pos1, vector.multiply(direction, i * step)) local node = minetest.get_node_or_nil(sample_pos) -- Consider only nodes that are not air or ignore --if node and node.name ~= "air" and node.name ~= "ignore" then if node and not string.find(node.name, "air", 1, true) and not string.find(node.name, "ignore", 1, true) and not string.find(node.name, "water", 1, true)then 21:14 MTDiscord --local node_def = minetest.registered_nodes[node.name] -- Check if the node is considered "solid" (walkable), you might -- adjust this logic depending on what you consider a blockage. -- if node_def and node_def.walkable then return true -- Solid block found along the path. --end end end return false -- No solid blocks found. end 21:14 MTDiscord One moment. 21:15 MTDiscord Here it is: https://github.com/TeamAcedia/CloakV4/blob/main/builtin/cheats/combat.lua 21:16 MTDiscord Though the line-of-sight thing is called "throughwalls" in their version. 21:59 luatic nathan4220776: just so you know, this looks horrenduous on an IRC client as your message is broken across multiple messages; the markdown markup of the code block is lost. 22:04 luatic erle: i have not submitted something to irrlicht yet. i think most of the changes i've done to irrlichtmt would require considerable work to port to irrlicht. 22:05 luatic if you or i wanted to test the waters, you could submit the matrix4.h diff from https://github.com/luanti-org/luanti/commit/8719a816e723f48e78480107e4d8e9056f45da8a#diff-33e46fb90be14c977a2a8e33c23b96a3147b4e1962e95f6ef4558de64350f051. (this is a clear bugfix, but changes behavior) 22:07 MTDiscord Ok. That's good to know.