Time Nick Message 01:43 riff-IRC News: this game looks awesome in HDR 02:19 Extex riff-IRC: wdym? 02:20 riff-IRC Got a new monitor recently that has HDR 02:20 riff-IRC MT looks way better on this monitor 02:20 riff-IRC (it's also an IPS panel, that probably has something to do with it) 02:21 Extex Oh ok 05:04 Extex Hello DrFrankenstone 05:22 DrFrankenstone hi 07:45 Andrey01 Can I put a callback e.g. minetest.register_on_receive_fields() inside an other custom function? What would happen? Would that internal function be also called? 10:38 Krock you'd register a callback every time you execute the custom function, Andrey01 10:38 Krock and you definitely don't want to do that 10:50 Andrey01 Krock, I just wanted on each minetest.register_on_player_receive_fields() call the external function would be called at first where that callback is, but it is of course impossible :) 12:57 JDCodeIt Hi All, I'm trying to migrate a 0.4,17 world to 5.1.1 and have the ol' player half-way in the ground issue. I've upgraded stujones11 3darmor and used the 5.x minetest_game, so I can't figure out how it is getting the wrong model. Any ideas where to look? 13:06 sfan5 are you 100% sure it's using the updated mods and game? no stuff left over from the old version? which other mods are you running? 13:15 JDCodeIt checking anything that calls player_set_model should locate this, right? 13:18 JDCodeIt of the mods that are active, minetest_game default's legacy.lua and stujones11 3d_armor init.lua contain these calls 13:22 JDCodeIt Opened both .blend models in Blender, and the character is standing on the plane - is that right, or should 0,0,0 be in the center? 13:23 Krock 0,0,0 should be feet 13:23 Krock disable 3d_armor and check whether the issue persists 13:24 JDCodeIt OK, will try that. 13:24 Krock find out which mod exactly causes it. minetest_game alone must work, if you got the right version 13:31 JDCodeIt Thanks - it is somewhere in 3darmor so I will investigate that 14:03 adfeno Hi there, I'm trying to apply textures in server-side, how do I do that? 14:03 Krock hi. A: you don't 14:03 Krock everything's processed client-side if you mean that 14:04 Krock if you'd like to add more textures, provide them to the client by putting them into any "textures" directory within the mod you'd like to extend 14:04 adfeno The wiki says it should work by naming the texture as server, but I don't know if by that they mean to put exactly "server" (every server would have that texture) … 14:05 adfeno … or if I should name it after the world's name… or if I should name after the server name. 14:05 Krock no, they're probably talking about the "server" texture pack name 14:06 Krock I never used that, but you could create a new texture pack in ~/.minetest/textures/ named "server" 14:06 Krock and put the custom textures inside 14:09 adfeno Hm, didn't work. 14:11 Krock strange 14:11 Krock server.cpp L2464 "fs::GetRecursiveDirs(paths, porting::path_user + DIR_DELIM + "textures" + DIR_DELIM + "server");" 14:11 Krock so that should work. does the client use a custom texture pack as well? 14:11 adfeno No. 14:12 adfeno However, does the server texture only gets picked if the server is dedicated (not started from GUI)? 14:12 Krock no, in any case 14:12 Krock singleplayer too 14:13 Krock do the texture names correspond to what they should overwrite? example: default_stone.png 14:13 Krock minetest(server) needs to be restarted after a texture pack change, though. 14:14 adfeno I'm running Minetest 5.1.1 14:14 adfeno Was this change implemented after 5.1.1 ? 14:14 Krock line last touched 3 years ago 14:15 Krock that's roughly 0.4.16 IIRC 14:16 adfeno Re: textures corresponding to override: Yes, they match, `override.txt' has: 14:16 adfeno default:dirt_with_grass sides default_stone.png 14:16 adfeno And it currently only applies if I go in client-side "Content" tab and select that for use. 14:16 Krock oh 14:16 Krock I see 14:16 Krock the "server" texture pack does not handle overrides 14:17 Krock no, actually it does 14:17 Krock server.cpp L375 14:18 Krock adfeno: minetest.conf. add or change the setting "texture_path" to the absolute texture pack path 14:18 adfeno By the way, if the name must be really "server" then perhaps people hosting multiple servers will find problems keeping their servers thematic. 14:19 Krock it looks like "server" is only an experimental feature, since it's not even documented 14:19 Krock the proper way here would be to change the minetest.conf setting 14:20 adfeno I wonder if the configuration can be done per-world 14:20 adfeno (if that would be the case, then please ignore my previous rant) 14:21 Krock yes, you can define the minetest.conf path in CLI arguments 14:21 Krock because the other server would need a different file anyway 14:22 Krock but there's no minetest.conf that's read for the selected world 14:22 DS-minetest >it looks like "server" is only an experimental feature, since it's not even documented 14:23 DS-minetest it's documented in texture_packs_here.txt 14:23 adfeno OK, I added texture_path with "$MY_HOME/.minetest/textures" as argument, having "server" as "$MY_HOME/.minetest/textures/server", and it worked 14:23 Krock DS-minetest: err.. not the right location 14:24 adfeno So the stuff only works if texture_path is explicitly defined by the user. 14:24 Krock nice 14:24 Krock *by the server 14:24 Krock or yes.. depends on the perspective 14:25 adfeno And it mandatorely picks "server" (verbatim name) from inside texture_path. 14:25 DS-minetest $path_user/textures/texture_packs_here.txt 14:25 Krock no, that's some special handling. you can pick any location 14:26 adfeno What i meant is that I cannot change the name to something different from "server". 14:26 JDCodeIt player half-way in the ground is some weird interaction of mobs (Tenplus1) and 3d_armor. If I don't load mobs, player position is correct. Strange it works in 0.4.17 14:26 Krock adfeno: you can, or you can leave it as-is. it does not matter. 14:27 Krock the minetest server just either needs a "server" texture pack or the minetest.conf setting, dunno why former doesn't work alone 14:27 Krock JDCodeIt: because that's the key point 14:27 Krock 0.5.0-dev changed the feet position 14:28 Krock previously it was at (0,1,0) 14:28 adfeno To rephrase my previous messages: I didn't set texture_path to "$MY_HOME/.minetest/textures/server", instead I had only set it to "$MY_HOME/.minetest/textures", and so the game picked "server" from inside that path. 14:29 Krock weird 14:29 adfeno But I'll try setting it to "$MY_HOME/.minetest/textures/some_Texture_pack" now to see how it goes. 14:29 Krock as long it works it's fine 14:30 JDCodeIt Agree - that's the point, but I don't get why "mobs" have anything to do with the player's model 14:31 adfeno OK, Krock is right, it works both ways 14:32 Krock JDCodeIt: maybe it contains a character model or calls the model setter function? 14:32 Krock also yes, mobs should not touch that 14:33 adfeno Last message I read: 11:30:29-03:00 adfeno: OK, Krock is right, it works both ways 14:34 Krock adfeno: same 14:34 adfeno First, it requires texture_path to be set to any path. Then if that is true, the server checks whether that path is a texture pack by itself (with images, override.txt and other files) or failing that, if there is a directory called "server" inside. 14:35 adfeno Krock: Thanks for the walkthrough :D 14:35 Krock !next 14:35 MinetestBot Another satisfied customer. Next! 14:35 adfeno I must go now, it's almost lunch time. 14:35 adfeno Bye! :D 14:35 Krock cya 14:36 Krock that's a weird timezone, though. 14:38 DS-minetest an Atlantic 14:45 cien hi, how to connect to a home hosted server with ipv6? 14:46 rubenwardy https://wiki.minetest.net/Setting_up_a_server 14:46 rubenwardy you need to portforward 14:47 cien my router doesn't display that function 14:47 rubenwardy even in advanced settings? 14:47 cien even there 14:48 rubenwardy you're stuck then 14:48 rubenwardy I'd be suprised that your router doesn't support this, most do 14:48 rubenwardy I've never had one that does 14:48 rubenwardy *doesn't 14:49 Krock could try to configure it over CLI 14:49 cien unitymedia / vodafone ist the provider and in there forums customers with ipv6 didn't have that function "because ipv6 doesn't support portforwarding" 14:49 rubenwardy that sounds like BS 14:50 JDCodeIt player half in ground - it is mod mobs_badplayer - it loaded the same model name as used by 3d_armor, which I guess just over-writes the previously loaded model. There is no warning that a duplicate model was loaded. 14:50 Krock JDCodeIt: then remove it 14:51 rubenwardy maybe the internal ipv6 addresses are externally addressable, which means that you don't need portforwarding as external devices can reference it directly 14:51 rubenwardy there will probably still be a firewall - check for allowed ports? 14:52 cien I'll check for firewalls, thx so far 14:52 rubenwardy don't turn it off, no matter what you do, just whitelist the machine and port 14:52 JDCodeIt If the mod wanted to use something from 3d_armor it should have it as a dependency, not include a copy of something 15:59 cien rubenwardy we tried using the internal aswell as external ipv6 adress, including and excluding port 30000, also with deactivated ipv6 firewall in the router but still could not connect to a home hosted server *shrugs* 15:59 cien next we want to try a VPN like with hamachi 16:30 sfan5 cien: did you set ipv6_server = true? 16:37 Andrey01 Is it possible to get id of any active object? As I see, there`s no a method like obj:get_id() 16:37 sfan5 there is not 16:38 sfan5 even if there was, there is nothing useful you can do with the id of an object 16:38 Andrey01 And also it would be nice to get an active object by id e.g 'minetest.get_object_by_id()' 16:47 rubenwardy sfan5: you can safely store a reference to another object 16:47 rubenwardy When people want object:get_id(), they want an actual globally unique ID 16:48 sfan5 I know that 16:49 sfan5 but that's currently not somehing the engine provides 16:49 sfan5 something* 16:49 rubenwardy #5012 16:49 ShadowBot https://github.com/minetest/minetest/issues/5012 -- Add uuid to ObjectRefs for tracking objects between loads 16:50 Krock where uuid = timestamp of creation + random value 16:51 katp32 hey, some players on my server have been unable to find papyrus, even after exploring out to x=10,000 trying to find it... I'm wondering if they are just cosmically unlucky, or there's something wrong? 16:52 Krock katp32: biome issues in 5.1.0 and 5.1.1 16:52 katp32 ah 16:52 Krock update the server to 5.2.0-dev, and minetest_game too 16:52 Krock or patch it menually 16:52 katp32 ah, ok 16:53 Krock game#2580 16:53 ShadowBot https://github.com/minetest/minetest_game/issues/2580 -- Fix missing papyrus in savanna, add a dry dirt version by paramat 16:53 Krock if you're interested 16:53 katp32 thanks 16:53 Krock although the papyrus won't generate in already existing parts of the map, thus you'll likely need to provide shops for players or similar 16:54 Krock !next 16:54 MinetestBot Another satisfied customer. Next! 17:06 JDCodeIt katp32: v7 mapgen? 17:06 katp32 yes 17:07 JDCodeIt yep had the same issue - doesn't work unless you mess with the biome params. v7 has sandy shores 17:09 JDCodeIt papyrus grows on default:dirt by default 17:28 Andrey01 sfan5: if there`s no get_id() then how to act in my case? After rightclick a vehicle a function is called building a formspec string and then showing it to the player that clicked. If that player presses a button of the formspec it will attach him to corresponding seat in the vehicle. But how to pass that vehicle self into minetest.register_on_player_receive_fields to obtain that? 17:32 Andrey01 If those API functions were, it would be possible to save an object id to the player`s metadata and then get that object by the saved id inside minetest.register_on_player_receive_fields callback 17:40 sfan5 you can store the reference to the vehicle in a variable yourself 17:49 Andrey01 But how to pass that variable into the callback? 18:12 DS-minetest Andrey01: store the object reference in a table that you declare in your file. let that table hold the obj ref per player name 18:13 DS-minetest then access this table in both, when showing the fs and in the callback 18:13 DS-minetest (and don't forget to set entries to nil on player leave and co.) 18:14 Krock > store the object reference in a table 18:14 DS-minetest yep, bad 18:14 Krock as long it's only valid for a callback cycle 18:14 DS-minetest there's no way to check if a obj ref is still valid, is there? 18:15 Krock you gotta call a function of it 18:15 Krock like obj:get_velocity() ~= nil 18:15 DS-minetest hacky 18:15 Krock basically all getters are such checks 18:15 Krock indeed it is 18:16 DS-minetest storing the id from minetest.object_refs and see if it's still there would work https://github.com/minetest/minetest/blob/625b1005939e76d6a5b2d241635be3b8a89eb128/doc/lua_api.txt#L5434-L5435 18:17 Krock except that IDs are recycled 18:17 DS-minetest are they? 18:17 Krock yes, every 2^16 18:17 Krock AFAIK 18:17 DS-minetest ah 18:18 DS-minetest which is not a problem in most cases heh 18:19 DS-minetest hm, would it work using a weak table and calling collectgarbage in lua? 18:20 Krock calling the garbage collector in general indicates a problem somewhere 18:20 Krock never rely on the garbage collector 18:20 DS-minetest ok 18:21 DS-minetest but anyway, is userdata collected by the garbage collector? 18:21 Krock it's only a handy tool to clean up stuff you don't need sometime, but it tends to be slow and calling it manually is definitely not a solution 18:21 Krock no, it's removed from C 18:22 Krock well, there could be garbage collecting involved, but that's already when it does not matter any more 18:22 DS-minetest but shouldn't then calling functions on unloaded objs call segfaults? 18:22 DS-minetest cause* 18:23 Krock void ObjectRef::set_null(lua_State *L) 18:24 Krock see also s_base.cpp L341 18:24 Krock the engine cuts the connection to the C++ side entity in removeObjectReference 18:25 Krock that happens whenever it is deleted 18:25 Krock hence no segfaults 18:30 cien sfan5 "did you set ipv6_server = true?" I don't think so. That looks like a server config text file but we just started the server from the launcher 18:31 sfan5 there's your problem then, minetest does not listen on ipv6 by default 18:31 cien oh ok, good to know, how to set it to true? 18:32 sfan5 close the game, open minetest.conf in a text editor and add a line that says "ipv6_server = true" (no quotes) 18:32 sfan5 alternatively, you can also find that setting in the advanced settings menu 18:37 cien ok done. When looking up my ip with the ipconfig cmdline, which of the displayed IP do others have to address? 18:37 cien IPv6 Address, Temporary IPv6 Address or Link-local IPv6 Address ? 18:40 sfan5 the first 18:41 sfan5 link-local will only work in the same network (or perhaps not at all) 18:41 cien ah ok, the first is my external internet address then, right? 18:41 sfan5 and the temporary address will change after a given amount of time 18:41 sfan5 the first two are, yes 18:43 cien is a port necessary with ipv6? 18:43 Krock yes sure 18:43 DS-minetest Krock: ah, I see now, thanks! 18:43 Krock !next 18:43 MinetestBot Another satisfied customer. Next! 18:43 Krock MinetestBot: ? 18:43 Krock Another satisfied customer. Next! 18:43 DS-minetest she said that 18:44 Krock backstabbed, bamboozled and most likely ninja'd 18:45 DS-minetest however, it would be nice to have an extra function on objrefs for just checking if it's still valid 18:47 DS-minetest calls to get_pos and co. with unloaded objs could then result in warnings or errors instead of silently returning nothing 18:49 cien sfan5 it worked! °o° thank you very much 18:49 sfan5 you're welcome 18:54 cien I need to add a new IPv6 inbound filtering rule to my firewall which protocol should I select for Minetest, UDP? 18:55 sfan5 yep 18:55 cien thx 18:58 galex-713 Hi, what are B3D and OBJ file and where can I learn things about them? 18:58 Krock blender 18:58 DS-minetest use this for blitz3d: https://github.com/minetest/B3DExport 18:58 Krock straight forward exported models from Blender, with UV maps that somehow work special in Minetest 18:58 galex-713 and .x files 18:59 Krock never do .x files. they're evil 18:59 Krock mainly because the attachments don't work properly there 18:59 galex-713 Krock: what are they? 18:59 galex-713 does the B in B3D stand for Blender or Blitz? 18:59 Krock models too 18:59 DS-minetest blitz 18:59 Lone_Wolf For Blender 2.8 use https://github.com/GreenXenith/io_scene_b3d 18:59 galex-713 Krock: but what are they and where are they from? 19:00 Lone_Wolf I'd suggest googling that galex 19:00 Krock can be exported in Blender too 19:00 galex-713 are OBJ files related to B3D ones? 19:00 DS-minetest see also https://en.wikipedia.org/wiki/List_of_filename_extensions 19:00 galex-713 Krock: I guessed that but isn’t there a full name or reference implementation? because “x” is pretty common as a name… 19:00 galex-713 ok thank you 19:00 DS-minetest DirectX 3D object probably 19:01 Krock > Direct import of common mesh file formats: Maya (.obj), 3DStudio (.3ds), COLLADA (.dae), Blitz3D (.b3d), Milkshape (.ms3d), Quake 3 levels (.bsp), Quake2 models (.md2), Microsoft DirectX (.X)… [more] 19:01 Krock http://irrlicht.sourceforge.net/?page_id=45 19:01 DS-minetest directx is some thing of the hole in the wall thing, right? 19:02 galex-713 Krock: thank you very much! 19:02 Krock !next 19:02 MinetestBot Another satisfied customer. Next! 19:02 DS-minetest afaik, minetest can't use obj materials 19:02 DS-minetest and afaik you can't do animations with obj 19:02 Krock DS-minetest: that's an Irrlicht limitation, not Minetest 19:03 DS-minetest ah, I see 19:03 Krock just saying 19:03 Calinou I'm not sure if Minetest exposes all formats by the way 19:03 Calinou I remember only seeing .b3d, .x, .obj and .md2 on the list 19:04 DS-minetest btw. obj files can be written per hand 19:05 DS-minetest if you don't want to use blender 19:05 Krock DS-minetest: I think you meant .x files? 19:06 DS-minetest no, wavefront 19:06 Krock Calinou: yes, the media fetcher does only let pass a few types 19:06 DS-minetest https://en.wikipedia.org/wiki/Wavefront_.obj_file 19:07 Krock til 19:10 Krock > Further proposed extensions come from the DirectXMesh toolkit for Microsoft's DirectX engine, allowing the ability to define a model's pre-compiled RMA material. 19:10 Krock this probably explains the ".x" origins 19:13 Krock inefficient memory swap. 19:25 Krock !mod replacer 19:25 MinetestBot Krock: exchange/replace nodes with one click [replacer] by Sokomine - https://forum.minetest.net/viewtopic.php?t=4676 19:29 Zerock do non-player entities keep chunks loaded, or is there a way to configure a type of entity to do so? 19:56 sfan5 they don't and the only way to keep chunks loaded without players nearby is via forceloads 20:12 Andrey01 Krock: to check whether the object ref is currently valid, you can call obj:get_luaentity() instead, can`t? 20:12 Andrey01 If it is, it should return self table, otherwise nil 20:12 Krock that too 20:13 Krock although that'll only work for LuaEntities 20:14 DS-minetest all the functions on objrefs return 0 in C as count of return values if the object is unloaded => in lua they return nil 20:15 DS-minetest the question is: which function causes the least overhead 20:15 Krock pos, vel and acc are very cheap. 20:18 DS-minetest (the cheapest would be to call the function that would be called anyway. I.e. if you want to get the luaentity and know that it can only be an entity, get_luaentity() is good) 20:31 Andrey01 Anyway, thanks, DS-minetest and Krock 20:33 Krock !next 20:33 MinetestBot Another satisfied customer. Next! 20:33 Extex Ooh me me 20:33 Extex :P 20:34 Extex How do I separate command parameters into parts? 20:34 Krock string.split 20:34 Krock !mod cmd 20:34 MinetestBot Krock: External Commands [external_cmd] by Menche - https://forum.minetest.net/viewtopic.php?t=3924 20:34 Krock not this 20:34 Extex Like /command 20:34 Krock https://forum.minetest.net/viewtopic.php?t=14899 20:35 Extex This is for a csm 20:35 Krock https://github.com/minetest/minetest/blob/master/doc/client_lua_api.txt#L604-L607 20:35 Extex Would ChatCmdBuilder work? 20:35 Krock would need some adjustments 20:36 Extex I tried using string.split(param, "%S+"( 20:36 Extex )* 20:36 Extex I might be doing it wrong though 20:37 Extex I'm doing this 20:37 Krock string.split(param, "%S+", false, -1, true) 20:37 Extex local one, two, three = string.split(param, "%S+") 20:37 Extex Is that wrong? 20:38 Krock local args = string.split(param, "%S+", false, -1, true) 20:38 Krock local one = args[1] 20:38 Extex Ok 20:38 Krock or unpack 20:38 Extex ? 20:39 Krock local one, two, three = unpack(string.split(param, "%S+", false, -1, true)] 20:57 Extex Oh ok ty :) 20:57 Extex !next 20:57 MinetestBot Another satisfied customer. Next! 20:57 Extex :P