Minetest logo

IRC log for #minetest, 2021-02-17

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

All times shown according to UTC.

Time Nick Message
00:02 milkt joined #minetest
00:15 ronoaldo joined #minetest
00:40 garywhite1 joined #minetest
01:14 Fixer_ joined #minetest
01:24 gry joined #minetest
01:33 Seirdy joined #minetest
01:48 Gustavo6046 People still use Pipeworks?
01:49 Gustavo6046 Is it compatible with Tubelib?
01:50 Gustavo6046 How do the two compare?
01:50 Gustavo6046 And what is the state of the art for automatic items transport?
01:57 Conradish006 Pipeworks is the best
01:58 Gustavo6046 mhm
01:58 Conradish006 Especially the lua controlled tubes
02:49 TechDude joined #minetest
02:52 SwissalpS If possible, I prefer a combo of Lua Controller with Digiline Detector tubes over Lua Sorting Tubes. The Lua Tubes have a weird way of reversing output events and sometimes simply fail. It seems they can't load Lua part as fast as the items in tubes load.
03:05 Hawk777 joined #minetest
03:11 MTDiscord <e​xe_virus> apparently it is possible to force disable the "enable damage" setting, does anyone know how to do so?
04:26 xor joined #minetest
04:41 Boingo joined #minetest
04:53 Boingo joined #minetest
04:58 Boingo joined #minetest
05:00 MTDiscord joined #minetest
05:08 Seirdy joined #minetest
05:31 Seirdy joined #minetest
05:40 galex-713 joined #minetest
06:40 gry joined #minetest
06:56 MTDiscord <J​oSto> It may see that a bit biased, but: - pipeworks has the better visual animation which helps when looking for errors in the construction -  tubelib is more server friendly because "lean and efficient" was the first design goal
07:45 TomTom joined #minetest
08:00 ShadowNinja joined #minetest
08:11 Ruud joined #minetest
08:23 Elouin joined #minetest
08:56 Zetta1Reid0 joined #minetest
08:58 Zetta1Reid0 Wanna ask . Why doesn't minetest support C++ modding
09:04 anuke[m] 1. malware because why would a player check the source code before downloading a fishy library
09:04 anuke[m] 2. having to compile for many platforms
09:07 FeXoR joined #minetest
09:09 Zetta1Reid0 You can get malware from lua code too . Dont forget you can use non minetest code too in lua script. Also user wont check code either way
09:17 calcul0n__ joined #minetest
09:54 anuke[m] yeah but youd have to disable sandboxing for that mod
09:54 anuke[m] if you do that without reading the code you pretty much deserve to get rm -rf /*'d or whatever
09:55 * Scarecrow is not going to compile mods for musl-arm
09:56 Scarecrow anything that requires engine-level abuse should be exposed in a general way to the environment mods run in anyway
10:00 troller joined #minetest
10:01 blaise lol
10:12 Lunatrius joined #minetest
10:20 Conradish006 joined #minetest
10:26 Zetta1Reid0 Even if regular users do read the code , do you think they will understand anything . Except if programmer didnt put a big comment "here starts driver erase" :D
10:30 Zetta1Reid0 Anyways from Security point it is unsecure for sure . But c++ gives you access to all code . Not just 1 developer exports to lua
10:48 rubenwardy Lua mods are sandboxed
10:48 rubenwardy the main reasons are needing to compile for many problems, unstable C++ ABIs, and a preference for Lua
11:04 mazes_81 joined #minetest
11:10 alex-resist joined #minetest
11:12 Gustavo6046 :o
11:12 Gustavo6046 my changes were merged
11:29 duckie joined #minetest
11:33 MTDiscord <e​xe_virus> Zeta: the lua is sandboxed for sure, the only endpoints that could currently allow issues are c++ functions we have exposed to lua
11:33 MTDiscord <e​xe_virus> Lua is used professionally like this all the time, even luaJIT
11:55 Fixer joined #minetest
11:57 rubenwardy "But c++ gives you access to all code"  How's is reflection in C++? I'm not sure this is true
12:00 MTDiscord <a​ppguru> You can already mod in C++
12:00 MTDiscord <a​ppguru> All you got to do is fork the engine :]
12:02 MTDiscord <e​xe_virus> C++ has no built in reflection
12:02 MTDiscord <e​xe_virus> C++ doesn't really "mod" well
12:02 rubenwardy I didn't think so
12:03 MTDiscord <e​xe_virus> You can "patch" executables
12:03 rubenwardy one area that C++ mods would be good at would be with mapgen
12:03 rubenwardy as they're mostly self contained and need good performance
12:03 rubenwardy you'd expose a C API for good ABI
12:03 MTDiscord <e​xe_virus> We could do a better job of exposing the mapgen to lua
12:03 sfan5 the sane way to do native mods is to expose a clearly specified API in C just like with Lua
12:03 sfan5 no mucking around with engine internals
12:04 rubenwardy in which case, it doesn't allow you to do more
12:04 sfan5 yeah, not more just better
12:04 rubenwardy for a truly powerful C++ API, you'd need a more modular and datadriven structure. And perhaps compiled in mods
12:04 rubenwardy that's not going to happen
12:04 MTDiscord <e​xe_virus> It can't, basically
12:05 MTDiscord <e​xe_virus> Without being completely insecure
12:05 rubenwardy well yeah, that's implied
12:05 rubenwardy we don't even allow Lua bytecode
12:05 MTDiscord <e​xe_virus> For good reasons
12:05 MTDiscord <e​xe_virus> That's the most** insecure
12:06 MTDiscord <e​xe_virus> What if we exposed mapgens to shaders ...
12:07 rubenwardy interesting idea to use compute shaders for that
12:07 rubenwardy I suggest trying it
12:07 rubenwardy not in MT ofc
12:07 MTDiscord <e​xe_virus> Why not in mt?
12:07 rubenwardy because overhead
12:07 MTDiscord <e​xe_virus> I guess cause vps don't have a gpu typically
12:07 rubenwardy better to do a proof of concept first
12:08 rubenwardy well, that to
12:08 rubenwardy *too
12:08 sfan5 it also doesn't work on embedded GPUs (phones)
12:08 sfan5 well, doesn't = very unlikely to be supported
12:08 rubenwardy yeah, this is interesting but not very portable
12:08 MTDiscord <e​xe_virus> Right
12:11 MTDiscord <e​xe_virus> Either way, I suspect we can get better mapgen integration with lua than we currently do
12:15 sfan5 https://github.com/minetest/minetest/issues/10800
12:19 erlehmann joined #minetest
12:25 FeXoR joined #minetest
12:47 Zetta1Reid0 "How's is reflection in C++?" : Didn't get that . Also when you have to compile the whole engine it is not a mod anymore .
12:52 qj joined #minetest
12:52 qj joined #minetest
13:01 Zetta1Reid0 A simple way to load mods would be dynamic loading like done in gmodule load from glibc
13:14 rubenwardy Reflection is the ability to find out information about objects and functions at runtime, and modify them
13:15 rubenwardy It looks like C++ mods would not allow access to all code anymore than Lua mods do
13:17 rubenwardy Perhaps you'd have access to all public functions and classes, but you wouldn't be able to hook into any where that isn't exposed
13:28 awell joined #minetest
13:29 erlehmann joined #minetest
13:29 Zetta1Reid0 Unless you subclass the classes
13:30 rubenwardy that requires virtual methods and you need a way to inject the subclasses
13:30 rubenwardy this is possible if you designed the code in a certain way from the beginning, but:
13:30 rubenwardy <rubenwardy> for a truly powerful C++ API, you'd need a more modular and datadriven structure.
13:30 rubenwardy <rubenwardy> that's not going to happen
13:35 Zetta1Reid0 Why ?
13:38 rubenwardy because a massive rewrite is not justified
13:45 fleeky_ joined #minetest
13:47 Zetta1Reid0 joined #minetest
13:53 nly joined #minetest
13:53 nly require() is disabled
13:53 erlehmann joined #minetest
13:54 nly can i disable mod security for just mymod?
13:55 erlehmann joined #minetest
14:01 MTDiscord <e​xe_virus> You can, but only on your machine
14:01 rubenwardy nly:    secure.trusted_mods
14:01 MTDiscord <e​xe_virus> Add it to trusted nods and request an insecure environment
14:02 rubenwardy then   ie = minetest.request_insecure_environment()       and     ie.require
14:02 rubenwardy secure.trusted_mods is a .conf setting
14:03 Flabb joined #minetest
14:12 TechDude joined #minetest
14:14 nly mod.conf -> secure.trusted_mods = mymod
14:14 nly init.lua -> minetest.request_insecure_environment()
14:15 rubenwardy minetest.conf not mod.conf
14:15 rubenwardy it's a user setting
14:15 nly ah yes, minetest.conf
14:15 rubenwardy it wouldn't be very secure if a mod could just go "yes, you can trust me"
14:16 macc24 joined #minetest
14:16 nly dint work
14:16 rubenwardy are you requiring lua code?
14:16 rubenwardy have you made sure ie.package.path is as expected?
14:17 submariner joined #minetest
14:20 submariner joined #minetest
14:24 nly ie = mintest.request_insecure_environment()
14:24 nly local socket = ie.require("socket")
14:25 nly attempt to index global 'ie' (a nil value) line 38
14:25 sfan5 evidently it did not return an insecure environment, did you check the output? warnings? errors?
14:26 nly maybe socket is not present in my libs
14:27 submariner joined #minetest
14:27 Zetta1Reid0 joined #minetest
14:29 rubenwardy > attempt to index global 'ie' (a nil value) line 38
14:29 rubenwardy means you didn't edit trusted mods
14:29 rubenwardy also, local
14:29 rubenwardy local ie =
14:30 erlehmann_ joined #minetest
14:37 numzero joined #minetest
14:41 Boingo joined #minetest
14:53 absurb joined #minetest
15:00 kamdard joined #minetest
15:08 rubenwardy joined #minetest
15:16 submariner joined #minetest
15:18 daiNoZord with after_place_node, I (try to) make sure "player" has a value - so local player = placer:get_player_name(), but then any attempt to call player:get_meta() crashes as get_meta() is a nil value. Did I miss a step?
15:20 sfan5 post the relevant excerpt from your code
15:21 Krock we're supposed to guess it
15:23 daiNoZord no it's basically that with all the comments and other things removed - sorry was tidying it up https://pastebin.pl/view/b2112426
15:23 daiNoZord to make it readable
15:23 Krock {}  -> postr
15:23 Krock set_string expects a string
15:24 Krock and placer != player
15:24 sfan5 "placer" is the player object, what you did was set "player" to the name of the player
15:24 sfan5 get_meta is a method that operates on a player object
15:25 daiNoZord if i change placer to player then player becomes a nil value
15:27 daiNoZord and I thought set_string required both a key and a value?
15:29 daiNoZord and if i remove the line player:get_player_name() then player is also nil
15:30 sfan5 you need to call placer:set_meta
15:32 daiNoZord ah.. fancy that! it doesn't crash now on placing the node.. thanks! :)
15:32 MTDiscord <I​hrFussel> Or you change 'placer' to 'player' inside the (...,...,...)
15:46 olliy joined #minetest
16:09 troller joined #minetest
16:11 nlyy joined #minetest
16:13 nlyy attempt to index local 'ie' (a nil value)
16:13 nlyy but i got secure.trusted_mods = opmod in ~/.minetest/minetest.conf
16:13 rubenwardy did you close and reopen MT?
16:14 nlyy so many times..
16:14 nlyy i deleted my world. rip
16:20 rubenwardy what's the code?
16:20 rubenwardy is the mod name different `opmod`
16:24 nly this https://git.sr.ht/~op/opmod/tree/master/item/init.lua
16:25 rubenwardy ah
16:25 rubenwardy needs to be in the root of the init.lua
16:25 rubenwardy like, not in a function
16:30 kamdard joined #minetest
16:40 nlyy thanks
16:43 nly left #minetest
16:47 daiNoZord sorry to keep asking - but when I try to retrieve that string on_punch.. i get a nil value. please excuse the commented-out bits, they show other approaches: https://pastebin.pl/view/32ad9531
16:48 calcul0n_ joined #minetest
16:49 Verticen joined #minetest
16:49 MTDiscord <J​onathon> did you set the string anywhere?
16:50 daiNoZord ah yes - after_place in another node
16:50 MTDiscord <J​onathon> did you place that node before punching this one?
16:51 daiNoZord yes its placed
16:52 daiNoZord i get: Invalid position coordinate 'x' (expected number got nil)
16:53 MTDiscord <J​onathon> from which line?
16:53 daiNoZord set_pos
16:54 MTDiscord <J​onathon> where does postr come from?
16:54 daiNoZord https://pastebin.pl/view/cfbc4d98
16:55 MTDiscord <J​onathon> local spos = minetest.string_to_pos(postr) should be local spos = minetest.string_to_pos(rmeta)
16:55 MTDiscord <J​onathon> i think is what you want
16:56 daiNoZord ah i get the same error
16:57 MTDiscord <J​onathon> since it looks like your putting postr(in after_place_node) in player meta to save it, then you should get back from there
17:02 milkt joined #minetest
17:05 daiNoZord darn curly braces! Thanks Jonathon, it works :)
17:07 Verticen_ joined #minetest
17:12 craigger joined #minetest
17:31 LoneWolfHT Was this ever considered as an engine replacement? They just had a 2.0 release 9 days ago https://github.com/horde3d/Horde3D
17:32 Wuzzy joined #minetest
17:34 rubenwardy never heard of it
17:35 LoneWolfHT Maybe I'm thinking of Ogre3d
17:37 Mahjong joined #minetest
17:41 Talkless joined #minetest
17:50 Mahjong joined #minetest
17:52 ShadowBot joined #minetest
17:53 galex-713 joined #minetest
18:01 Mahjong left #minetest
18:10 Taoki joined #minetest
18:31 proller joined #minetest
18:34 Hawk777 joined #minetest
18:48 daiNoZord is arena_lib a thing to use to reset an environment - an arena - ie chest inventories, node positions (including falling nodes) etc?
18:49 rubenwardy I believe that mod is more about having multiple minigames at once on a server, their worlds tend to be readonly to avoid the unpredictable server freezers
18:49 rubenwardy Zughy[m]1: can answer that
18:50 daiNoZord ah ok thanks. I can possibly achieve a reset of certain things with node timers?
18:51 rubenwardy on CTF, the world is saved as a schematic. It's then placed when a new world starts
18:51 rubenwardy this allows each map to be git versioned in a folder
18:51 rubenwardy however, on a server with multiple minigames at once this isn't viable
18:51 rubenwardy you could use readonly backup databases and delete area
18:51 rubenwardy Minetest supports having two .sqlite file
18:52 rubenwardy one contains changes, one is readonly. Minetest reads from the changes before reading from readonly
18:52 rubenwardy this means you can put things in readonly, play a game, and then delete the area to read from readonly again
18:52 rubenwardy you could also do clever stuff with LVMs and storing which nodes have changed
18:52 Mahjong joined #minetest
18:52 rubenwardy but it's not always possible to keep track of changes, callbacks tend to be partially unreliabl
18:53 rubenwardy for example: LVMs don't call callbacks
18:54 Krock if there's lvm support, when will there be lvm2?!
18:54 daiNoZord ah.. ok.. but if a game ends.. manually loading a schem (like with worldedit) would work wouldn't it? so (sorry if im simplifying it..) but shouldn't it be possible to automate that?
18:55 MinetestBot [git] rubenwardy -> minetest/minetest: Fix short_description fallback order (#10943) a8f6bef https://git.io/JtM7n (2021-02-17T18:53:44Z)
18:57 rubenwardy daiNoZord: yes, if you only have one game at a time you can use schematics
18:57 rubenwardy that's what CTF does
18:57 rubenwardy it takes about 8 seconds to place IIRC
18:57 rubenwardy most of that is light calcs
18:58 rubenwardy https://github.com/MT-CTF/capturetheflag/blob/master/mods/ctf/ctf_map/ctf_map_core/schem_map.lua#L332
18:59 daiNoZord But you can place schems in game using WE. There must be a way of resetting various areas depending on a "condition" being met
18:59 daiNoZord ie by placing schems
18:59 rubenwardy ...?
18:59 rubenwardy I don't get what you mean
18:59 rubenwardy When a new match starts in CTF, it places a schematic for the new map
19:00 rubenwardy if this were done on the same location it would reset the map
19:01 daiNoZord u say schems can only be used to reset one minigame, but surely a number of different areas can be reset in the same way? I can place buildings etc all day long... there must be a way to reset individual areas depending on when a specific condition is met
19:02 rubenwardy I still don't get the question
19:02 rubenwardy what do you mean by reset?
19:02 rubenwardy To mapgen?
19:02 rubenwardy To some predefined state?
19:03 rubenwardy I don't get the question because I never said that it's not possible to reset other types of area
19:03 rubenwardy you can use the same technique on any position of the map
19:03 daiNoZord ok so a game ends and all players (objects_inside_radius) are teleported away - then when a new player hits a block and is teleported into the "lobby", then maybe objects_inside radius could be used to set a aschem
19:04 daiNoZord oh sorry i misunderstood
19:04 daiNoZord *a schem
19:04 daiNoZord and this could be done in multiple locations?
19:05 submariner joined #minetest
19:08 delta23 joined #minetest
19:08 daiNoZord ah you said the world is saved as a schematic - I would only be saving small areas
19:09 rubenwardy the world in CTF is only 200x100x200
19:09 rubenwardy I also said "map"
19:09 rubenwardy <daiNoZord> and this could be done in multiple locations?
19:09 rubenwardy Yes, you can place a schematic wherever you like
19:10 daiNoZord rubenwardy: on CTF, the world is saved as a schematic. It's then placed when a new world starts
19:10 daiNoZord ok thanks ill look into that
19:10 rubenwardy oops
19:11 daiNoZord if that's a suitable way of returning an area to a "default" state then that's the method i'll try to employ :)
19:16 Zughy[m]1 daiNoZord: the arena reset won't be available till 7.0 (meaning not soon, we're on 4.6) => https://gitlab.com/zughy-friends-minetest/arena_lib/-/milestones/32
19:16 Zughy[m]1 so you have to do it manually, like Skywars does (you can find it on CDB)
19:17 daiNoZord ah ok thanks Zughy[m]1 - i'll go look at that now :)
19:20 homthack joined #minetest
19:29 daiNoZord haha.. skywars seems to be missing the islands..
19:33 FeXoR joined #minetest
19:51 MinetestBot [git] rubenwardy -> minetest/minetest: Add nametag background setting and object property (#10937) f85e9ab https://git.io/JtMdD (2021-02-17T19:51:28Z)
19:58 bulldozer joined #minetest
20:11 Verticen_ joined #minetest
20:11 bulldozer joined #minetest
20:21 galex-713 joined #minetest
20:55 ShadowNinja joined #minetest
20:57 Sven_vB hi :)
21:19 Sven_vB how can I start my singleplayer world directly? with "minetest --name singleplayer --world worlds/test --go" I get "ERROR[Main]: Access denied. Reason: Player name not allowed.", but without --name, I start with a wrong name and thus empty inventory.
21:19 Sven_vB using MT 5.3.0 on Ubuntu focal
21:30 LoneWolfHT Does it work without the --name?
21:40 sfan5 yes you need to omit that
22:05 jess joined #minetest
22:09 submariner joined #minetest
22:11 submariner joined #minetest
22:17 submariner joined #minetest
22:18 qj joined #minetest
22:20 deltaepsilon23 joined #minetest
22:21 Fixer_ joined #minetest
22:26 submariner joined #minetest
22:34 submariner joined #minetest
22:42 Jhalman joined #minetest
23:05 olliy joined #minetest
23:06 olliy_ joined #minetest
23:07 qj joined #minetest
23:32 search_social joined #minetest
23:57 fluxflux joined #minetest

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