00:21 <+bridge_> <12944qwerty> wait is ddnet on 0.6 or 0.7 lol 00:21 <+bridge_> <12944qwerty> i might be stupid 00:25 <+bridge_> ddnet is based on teeworlds 0.6.4, but implements everything(ish) up till latest 0.7 00:25 <+bridge_> except vanilla server 00:26 <+bridge_> <12944qwerty> ah, i think it's a tclient thing 00:26 <+bridge_> <12944qwerty> i got kicked trying to connect via 0.7 on a tclient but not ddnet so 00:26 <+bridge_> <12944qwerty> i got kicked trying to connect via 0.7 on a tclient server but not ddnet's so 00:26 <+bridge_> <12944qwerty> mb 00:28 <+bridge_> <12944qwerty> uh nvm, it's a map thing???? 00:29 <+bridge_> <12944qwerty> nvm idk what's gonig on 00:37 <+bridge_> <12944qwerty> I was able to connect to these servers with 0.7 a few months ago but now I keep getting `0.7 connections are not accepted at this time`. Did something change that quickly recently? 00:47 <+bridge_> Hey! Can someone answer this situation with a far grander tw physics knowledge than mine? I have never seen anything like this, the 3 tees merged together had the same coords, but when the bounce happened it sent only 1 tee up and 2 stayed down, why? You could stack 36 tees together and 35 will go up and only 1 will stay down, at least from my experience. 00:47 <+bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1457158402919629011/how.mp4?ex=695afc03&is=6959aa83&hm=ac99b958adfa8eaaa66a18465112f8f91d2ce9c80b032b80416dcd91da7c0d8f& 00:58 <+furo> @12944qwerty If you get that message, it means the server doesn't support 0.7 clients. You need to convert the current map with the `map_convert_07` tool and place the output map in the `maps7` folder. Also, enable `sv_sixup` if it's off. 01:00 <+bridge_> <12944qwerty> the problem is that it worked for the same maps (ctf7, tutorial, dm, etc) a few months ago. it's not different maps 01:03 <+bridge_> <12944qwerty> sv_sixup worked but I didn't need to do that last time how fun 01:06 <+furo> You might've loaded a map that doesn't have a converted 0.7 map. That will disable `sv_sixup` until you enable it again (#7669) 01:07 <+furo> Easiest to just check the server logs, it will say there. `sixup: couldn't load map maps7/ctf5.map` 01:07 <+bridge_> this is probably depending on the IDs of the individual tees and the sequence of actions for collision calculations 01:16 <+bridge_> <12944qwerty> chiller bug halp 01:16 <+bridge_> <12944qwerty> https://cdn.discordapp.com/attachments/293493549758939136/1457165826733113366/image.png?ex=695b02ed&is=6959b16d&hm=14a31c3a2652f97d2722023d148acb70a20a9300785a6b0ac5937b950b605b53& 01:18 <+bridge_> so before that run even started it was determined that i would not be able to do that? 01:18 <+bridge_> or are the people inside the tower the important ones 01:19 <+bridge_> bruh this is so weird is this even a bug or is this how it needs to be? xD 01:23 <+bridge_> <12944qwerty> chiller bug halp 01:23 <+bridge_> <12944qwerty> 01:23 <+bridge_> <12944qwerty> happening at random times. sometimes it receives several snaps before it stops. 01:23 <+bridge_> <12944qwerty> on server with sv_sixup 01:23 <+bridge_> <12944qwerty> https://cdn.discordapp.com/attachments/293493549758939136/1457165826733113366/image.png?ex=695b02ed&is=6959b16d&hm=14a31c3a2652f97d2722023d148acb70a20a9300785a6b0ac5937b950b605b53& 01:27 <+bridge_> both :pepeW: 01:29 <+bridge_> what could be the odds for this to happen tho? the guy in the video said it happened twice in a row :poggers2: 01:39 <+bridge_> since everyone has the same id during the entire run ig it would happen for all the times i try 01:39 <+bridge_> or only with the same people? can nobody fully explain ts? xD 01:40 <+bridge_> only with the same people 01:40 <+bridge_> i got 20 people telling me "its bcs of id's" but nobody telling me why exactly 01:40 <+bridge_> with the roles reversed it could probably work 01:43 <+bridge_> yeah probably, he failed this, but it looked like it wouldve worked if he hit it right 01:43 <+bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1457172615860060384/asiocjaoisn.mp4?ex=695b0940&is=6959b7c0&hm=c666606d37ac31f4cd6f3eb38f68338cae8bc0f8f50ca08ea9ed15c001a1f990& 01:44 <+bridge_> (20th fail btw) 01:44 <+bridge_> sadly couldnt try long enough until they dont fail their part bcs they lost their faith in my words after we failed so much XDDDDDDDD 04:47 <+bridge_> @12944qwerty: oh shiet! How do I reproduce? Could you print the data you got as a hexdump that fails to parse? Or send me a tcpdump. Or if you can consistently reproduce tell me how. Which server using what code exactly? 04:51 <+bridge_> <12944qwerty> Copied your gui code you sent me yesterday (just removed the rendering) and a custom ticker 04:51 <+bridge_> <12944qwerty> ```py 04:51 <+bridge_> <12944qwerty> last_tick = time.time() 04:51 <+bridge_> <12944qwerty> while 1: 04:51 <+bridge_> <12944qwerty> now = time.time() 04:51 <+bridge_> <12944qwerty> if now - last_tick >= 0.05: 04:51 <+bridge_> <12944qwerty> last_tick = now 04:51 <+bridge_> <12944qwerty> 04:51 <+bridge_> <12944qwerty> client.tick() 04:51 <+bridge_> <12944qwerty> ``` 04:51 <+bridge_> <12944qwerty> Using DDNet's server so localhost 04:56 <+bridge_> <12944qwerty> msg.data 04:56 <+bridge_> <12944qwerty> 04:56 <+bridge_> <12944qwerty> happens whenever I'm in the server then do any action 04:56 <+bridge_> <12944qwerty> https://cdn.discordapp.com/attachments/293493549758939136/1457221072272359495/supersmallhexdumplol.bin?ex=695b3661&is=6959e4e1&hm=e926d44937f7231bf7126d3c4b7e548f7d8cb9ea6147149e4aab80ab53e05f4d& 04:56 <+bridge_> <12944qwerty> msg.data 04:56 <+bridge_> <12944qwerty> 04:56 <+bridge_> <12944qwerty> happens whenever I'm in the server and do any action. If I even move my mouse it will throw, but doesn't until then 04:56 <+bridge_> <12944qwerty> https://cdn.discordapp.com/attachments/293493549758939136/1457221072272359495/supersmallhexdumplol.bin?ex=695b3661&is=6959e4e1&hm=e926d44937f7231bf7126d3c4b7e548f7d8cb9ea6147149e4aab80ab53e05f4d& 04:59 <+bridge_> Im on the phone. Is that a binary dump of the incoming packet that breaks? 04:59 <+bridge_> Will have a look tomorrow 05:00 <+bridge_> !remind 600 investigate twnet\_parser bug 05:00 <+bridge_> Ah gg the bot is muted 05:00 <+bridge_> <12944qwerty> yes 05:00 <+bridge_> <12944qwerty> https://cdn.discordapp.com/attachments/293493549758939136/1457222181082632272/image.png?ex=695b3769&is=6959e5e9&hm=fa51451614dfd857544ec070cd544d31d12637d81a36fbe4752b71b7048cd95a& 05:01 <+bridge_> So you use 0.7? 05:02 <+bridge_> Do you get the same error when pasting it here? https://twnet.zillyhuhn.com/?v=7 05:03 <+bridge_> I don’t recognize the dump format. Why does it start with 1 2 3 4 5 6 … what’s that? 05:04 <+bridge_> <12944qwerty> columns 05:05 <+bridge_> Ah so it’s not the data 05:06 <+bridge_> <12944qwerty> yeah 05:06 <+bridge_> <12944qwerty> i do get a parser error 05:06 <+bridge_> <12944qwerty> twnet_parser.error.ParserError: Got 0/0 messages but there are still 37 bytes remaining 05:06 <+bridge_> <12944qwerty> ``` 05:06 <+bridge_> <12944qwerty> [twnet_parser v0.15.1][huffman=rust-libtw2] udp payload: 00 02 00 0a 00 b9 01 00 00 00 00 41 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ba ff 03 00 0b 00 00 00 00 00 00 00 00 42 00 00 05:06 <+bridge_> <12944qwerty> --- 0.7 05:06 <+bridge_> <12944qwerty> Traceback (most recent call last): 05:06 <+bridge_> <12944qwerty> File "/home/chiller/git/teeworlds-web-traffic-decoder/src/tw_packet_decoder.py", line 68, in hex_str_to_annotation 05:06 <+bridge_> <12944qwerty> packet = twnet_parser.packet.parse7(data) 05:06 <+bridge_> <12944qwerty> File "/home/chiller/git/teeworlds-web-traffic-decoder/venv/lib/python3.13/site-packages/twnet_parser/packet.py", line 193, in parse7 05:06 <+bridge_> <12944qwerty> return PacketParser(ignore_errors).parse7(data, we_are_a_client) 05:06 <+bridge_> <12944qwerty> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^ 05:06 <+bridge_> <12944qwerty> File "/home/chiller/git/teeworlds-web-traffic-decoder/venv/lib/python3.13/site-packages/twnet_parser/packet.py", line 186, in parse7 05:06 <+bridge_> <12944qwerty> self.get_messages(pck.payload_decompressed, pck)) 05:06 <+bridge_> <12944qwerty> ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 05:06 <+bridge_> <12944qwerty> File "/home/chiller/git/teeworlds-web-traffic-decoder/venv/lib/python3.13/site-packages/twnet_parser/packet.py", line 83, in get_messages 05:06 <+bridge_> <12944qwerty> raise ParserError( 05:06 <+bridge_> <12944qwerty> ...<2 lines>... 05:06 <+bridge_> <12944qwerty> ) 05:06 <+bridge_> <12944qwerty> twnet_parser.error.ParserError: Got 0/0 messages but there are still 37 bytes remaining 05:06 <+bridge_> <12944qwerty> ``` 05:07 <+bridge_> Okay nice thanks. I hope this is enough to go off 05:07 <+bridge_> <12944qwerty> lol 05:08 <+bridge_> <12944qwerty> now i'm confused why you havent' gotten in 05:08 <+bridge_> <12944qwerty> now i'm confused why you havent' gotten it 05:08 <+bridge_> <12944qwerty> i had to turn on sv_sixup on the server, maybe that? 05:08 <+bridge_> Otherwise you can’t connect at all 05:08 <+bridge_> Yea I also doubt I will be able to reproduce 05:09 <+bridge_> BTW you can share it as link like this https://twnet.zillyhuhn.com/?v=7&d=00+02+00+0a+00+b9+01+00+00+00+00+41+00+00+00+00+00+00+00+00+00+00+00+00+00+00+00+00+ba+ff+03+00+0b+00+00+00+00+00+00+00+00+42+00+00 05:09 <+bridge_> I need to figure out what this is supposed to be 05:09 <+bridge_> Ideal would be if I can get my server to send it. Will play around tomorrow. 05:11 <+bridge_> Earlier matrix showed you said „msg.data“ does that mean the dump is only the snapshot payload? 05:14 <+bridge_> <12944qwerty> it's in the snap_single part of the code 05:14 <+bridge_> <12944qwerty> 05:15 <+bridge_> <12944qwerty> also kinda weird, snap empty and snap single kept alternating around every second? idk if that's intentional 05:16 <+bridge_> <12944qwerty> oh yeah it is only the snap payload 05:19 <+bridge_> Can you give me the full raw udp payload? 05:20 <+bridge_> Without any decompression or parsing just what the server sent 05:21 <+bridge_> Alternating empty and single makes sense. If there is nothing new it just sends an empty 05:26 <+bridge_> <12944qwerty> worked this time 05:26 <+bridge_> <12944qwerty> https://twnet.zillyhuhn.com/?v=7&d=10%2004%2001%20ff%20aa%20bb%20ee%2008%2031%20c5%20df%200f%2052%2085%2061%2082%207e%2052%20c0%20cf%20a3%2085%20bd%20ee%2095%20b4%2028%2094%20ea%20d1%20c4%20e2%2092%20f8%20c7%20ff%20fa%20ff%20ff%20d7%206c%200e%2092%2016%20fd%20ff%2051%20a9%20e2%2006 05:27 <+bridge_> <12944qwerty> https://twnet.zillyhuhn.com/?v=7&d=10%2004%2001%20ff%20aa%20bb%20ee%2008%2031%20c5%20df%200f%2052%2085%2061%2082%207e%2052%20c0%20cf%20a3%2085%20bd%20ee%2095%20b4%2028%2094%20ea%20d1%20c4%20e2%2092%20f8%20c7%20ff%20fa%20ff%20ff%20d7%206c%200e%2092%2016%20fd%20ff%2051%20a9%20e2%2006 05:27 <+bridge_> <12944qwerty> that's crazy compression ngl 05:34 <+bridge_> i actually looked into https://github.com/KDAB/cxx-qt for Prism Launcher but didnt have time to implement it in our build system 05:35 <+bridge_> I use one of these things to grind my fennel seeds: 05:35 <+bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1214509113761857577/HI2liQr.png?ex=695adf81&is=69598e01&hm=354da571a75d0f55ace243099f8947fdaa4f2dd2263d615c2e91b1dda2842478& 09:41 <+bridge_> <12944qwerty> msg.data 09:41 <+bridge_> <12944qwerty> 09:41 <+bridge_> <12944qwerty> happens whenever I'm in the server and do any action. If I even move my mouse it will throw, but doesn't until then 09:41 <+bridge_> <12944qwerty> https://cdn.discordapp.com/attachments/293493549758939136/1457221072272359495/supersmallhexdumplol.bin?ex=695b3661&is=6959e4e1&hm=e926d44937f7231bf7126d3c4b7e548f7d8cb9ea6147149e4aab80ab53e05f4d& 10:30 <+bridge_> @12944qwerty: oh so the website doesn’t crash on that one hmm .-. Could you try to reproduce with the pure example I sent you or send me your code just to be sure I can reproduce the error 10:45 <+ChillerDragon> matrix is such a joke ngl I didn't even believe the shit it showed was real :D 10:45 <+ChillerDragon> element ios showed scrumpli spamming like 4 random out of context images without any text message 10:46 <+ChillerDragon> and irc showed what was actually sent 10:46 <+ChillerDragon> wtf are fennel seeds btw xd 10:51 <+ChillerDragon> okay nice i could reproduce one crash in game let me see if i can fix it @12944qwerty 11:19 <+ChillerDragon> uhm wtf am i too stupid to use `cl_port`??????? 11:19 <+ChillerDragon> I connected one client on local server with cl_port it worked i connect another client with cl_port set too but it gets a random port????? 11:46 <+bridge_> You can't use the same port for both clients on the same system. The client picks a random port if the user-defined port could not be bound to. 12:19 <+ChillerDragon> yes that makes sense 12:19 <+ChillerDragon> but i was using different ports 12:21 <+bridge_> What did you set `cl_dummy_port` to? Maybe it was randomly the port you manually set. 12:21 <+ChillerDragon> i did not connect a dummy 12:22 <+bridge_> Client opens the sockets immediately 12:22 <+ChillerDragon> `DDNet "cl_port 1100;connect localhost"` 12:22 <+ChillerDragon> `DDNet "cl_port 1102;connect localhost"` 12:22 <+ChillerDragon> `player has entered the game. ClientId=0 addr=<{[::1]:1100}> sixup=0 12:22 <+ChillerDragon> weechat ah 12:22 <+ChillerDragon> `player has entered the game. ClientId=1 addr=<{[::1]:54378}> sixup=0` 12:22 <+ChillerDragon> dummy port is 0 12:23 <+bridge_> The client binds all three sockets immediately. Maybe it randomly picked the port you were going to use with the second client. 12:23 <+ChillerDragon> isnt that chance quite low? 12:23 <+ChillerDragon> i can consistently reproduce 12:23 <+bridge_> Depends on your OS 12:24 <+ChillerDragon> but how would it predict my port 12:24 <+ChillerDragon> i assume it might reuse based on some pool 12:24 <+ChillerDragon> but if i make up a new random port for the second client 12:24 <+ChillerDragon> it still does not work 12:25 <+bridge_> Can you set all three ports explicitly for the first client? 12:25 <+bridge_> `cl_port 1100; cl_dummy_port 1101; cl_contact_port 1102` 12:25 <+ChillerDragon> whats the third 12:25 <+ChillerDragon> a 12:26 <+ChillerDragon> that threw a lot of errors for the first client lol 12:26 <+ChillerDragon> and second client still cant set a port 12:26 <+bridge_> Maybe port 1102 is already used by another service? 12:49 <+ChillerDragon> @robyt3 if i use 1102 in the first client it works the order seems to matter 12:50 <+ChillerDragon> @12944qwerty i think i found the crucial bug! And I also understand why i never ran into it. I tested 0.6 with ddnet and 0.7 with teeworlds. 12:51 <+ChillerDragon> but the bug is more prominent in 0.7 ddnet 12:51 <+ChillerDragon> will release a new version soon 12:51 <+bridge_> it seems to be time for a gdb'ing 12:53 <+ChillerDragon> yea i cba 12:53 <+bridge_> :sadge: 12:53 <+ChillerDragon> i just used a random port for second client 12:53 <+ChillerDragon> i can work around it i just wanted to check if its an actual bug or me being stoopid 12:53 <+bridge_> do you not have this insatiable desire to know what was going on? 12:54 <+ChillerDragon> i still am not sure but now yall know and can try to reproduce 12:54 <+ChillerDragon> @learath2 i couldnt care less i want to build stuff 12:54 <+bridge_> I couldn't possibly sleep not knowing why something like that happened 😄 12:54 <+ChillerDragon> busy fixing bugs that cause actual problems 12:55 <+ChillerDragon> well if the bug does not block me from doing something its a low prio bug 12:55 <+ChillerDragon> also i still feel like its user issue 13:02 <+ChillerDragon> I love the crc hash smh 13:02 <+ChillerDragon> its so simple just add numbers together and overflow :D 13:03 <+ChillerDragon> you can actually debug a crc mismatch by checking how many bytes are missing or too much 13:04 <+bridge_> @learath2 13:04 <+ChillerDragon> @12944qwerty ok the new bugfix release will be delayed because i found another bug and have to go now -.- 13:05 <+bridge_> Thanks, looking at it 15:07 <+bridge_> so true 15:07 <+bridge_> I will spend days tracking down some stupid bug, even if it's in some dependency and I could just open an upstream report 15:07 <+bridge_> but it's fun and I always end up learning something 15:24 <+bridge_> this is what I was about to say too, these kinds of bugs might be low impact, but they are highly likely to lead to learning 15:25 <+bridge_> perhaps you misunderstood something about how a lower level system works, perhaps there is a bug in an upstream library 18:08 <+bridge_> did you check it out? 18:29 <+bridge_> <12944qwerty> Okie, I've been using master branch instead of release anyway 18:35 <+ChillerDragon> oh then it should have improved a bit 18:37 <+bridge_> @chillerdragon hi, how did you run ddper? I can't run it on Linux. I just heard that you launched it somehow. 18:44 <+ChillerDragon> why cant you run it? 18:44 <+ChillerDragon> i think back when i tested it the libs were linked dynamically so i had to find the matching distro with the right versions 18:45 <+ChillerDragon> but i think i reported that and they might have fixed it so your error would help 19:00 <+bridge_> It doesn't work on Arch at all for me. I tried it on Proton GE - same problem. 19:00 <+bridge_> ```bash 19:00 <+bridge_> …/Downloads/ddper-v8.4-linux_x86_64 ❯ sudo ./DDPER 19:00 <+bridge_> [sudo] пароль для sqwinix: 19:00 <+bridge_> 2026-01-04 18:31:24 I engine: running on unix-linux-amd64 19:00 <+bridge_> 2026-01-04 18:31:24 I engine: arch is little endian 19:00 <+bridge_> 2026-01-04 18:31:24 I engine: operating system version: Linux 6.18.2-arch2-1 (x86_64, #1 SMP PREEMPT_DYNAMIC Thu, 18 Dec 2025 18:00:18 +0000); "Arch Linux" 19:00 <+bridge_> 2026-01-04 18:31:24 I storage: added path '$USERDIR' ('/home/sqwinix/.local/share/ddnet') 19:00 <+bridge_> 2026-01-04 18:31:24 I storage: added path '$DATADIR' ('data') 19:00 <+bridge_> 2026-01-04 18:31:24 I storage: added path '$CURRENTDIR' ('/home/sqwinix/Downloads/ddper-v8.4-linux_x86_64') 19:00 <+bridge_> 19:00 <+bridge_> …/Downloads/ddper-v8.4-linux_x86_64 ✗ 19:00 <+bridge_> ``` 19:04 <+bridge_> https://cdn.discordapp.com/attachments/1164196375798493295/1457433876023476306/IMG_7877.jpg?ex=695bfc91&is=695aab11&hm=0e66d9d7c8262930a963c4faa6d3bc9ec424d6da43a34ebe6fcc558f9142a555&&_t=19b8a2e8cf8&_r=l3voe0 https://cdn.discordapp.com/attachments/1164196375798493295/1457433876568871143/IMG_7878.jpg?ex=695bfc91&is=695aab11&hm=2fcae679116e2aa556c37351136ebd3136d3fdf559ef67d71eee1ce0823e1276&&_t=19b8a2e8cf8&_r=n7y73a https://cdn.discordapp.com/attachm 19:04 <+bridge_> @Discord Mod 19:26 <+ChillerDragon> why do you run it as root? -.- @sqwinix 19:27 <+ChillerDragon> try ubuntu 19:28 <+bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1457440671982944471/image.png?ex=695c02e6&is=695ab166&hm=f062b5c3d2165d7ebc18d5d6f968ff790745b08e8afa0bbc6a257db8ea451883& 19:29 <+bridge_> ```bash 19:29 <+bridge_> …/Downloads/ddper-v8.4-linux_x86_64 ❯ ./DDPER 19:29 <+bridge_> 2026-01-04 19:29:08 I engine: running on unix-linux-amd64 19:29 <+bridge_> 2026-01-04 19:29:08 I engine: arch is little endian 19:29 <+bridge_> 2026-01-04 19:29:08 I engine: operating system version: Linux 6.18.2-arch2-1 (x86_64, #1 SMP PREEMPT_DYNAMIC Thu, 18 Dec 2025 18:00:18 +0000); "Arch Linux" 19:29 <+bridge_> 2026-01-04 19:29:08 I storage: added path '$USERDIR' ('/home/sqwinix/.local/share/ddnet') 19:29 <+bridge_> 2026-01-04 19:29:08 I storage: added path '$DATADIR' ('data') 19:29 <+bridge_> 2026-01-04 19:29:08 I storage: added path '$CURRENTDIR' ('/home/sqwinix/Downloads/ddper-v8.4-linux_x86_64') 19:29 <+bridge_> Sudo permissions required. 19:29 <+bridge_> 19:29 <+bridge_> …/Downloads/ddper-v8.4-linux_x86_64 ❯ ``` 19:29 <+ChillerDragon> where is that sudo instruction from? 19:30 <+ChillerDragon> thats extremly sus 19:30 <+ChillerDragon> its not even a open source client 19:30 <+ChillerDragon> i wouldnt run that on my system even without sudo 19:31 <+ChillerDragon> can you send a link to the site that you screenshotted with the sudo command? 19:32 <+bridge_> I'm careful, but everything seems to be fine on virustotal. 19:32 <+bridge_> ddper.ir 19:32 <+bridge_> https://ddper.ir/download/ 19:33 <+bridge_> I'm just too lazy to install Ubuntu/Debian 19:34 <+bridge_> It would be cool if it was a virus XD 19:39 <+ChillerDragon> ye back then i only ran that shit in a vm and it didnt need sudo i think but maybe i just forgot 19:40 <+ChillerDragon> @sqwinix you could try running it with strace and ltrace and see where it dies `sudo strace ./DDPER` 19:46 <+bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1457445018783711232/message.txt?ex=695c06f2&is=695ab572&hm=841285aaa597e7375a9cbe13f9ecbea192aecad83a6c90b7d1884c17b1580212& 19:47 <+bridge_> Something with file system I think 19:48 <+bridge_> The application tries to open ```/dev/mapper/root[/@]``` as a device path, but this is a misinterpreted Btrfs subvolume notation. Btrfs reports ```[/@]``` to indicate the subvolume, but the program treats it literally as part of the device path. 19:48 <+bridge_> claude answer 19:52 <+bridge_> can you do `sudo strace -e trace?file ./DDPER 2>&1 | grep -v ENOENT` 19:52 <+bridge_> 19:52 <+bridge_> ENOENT = Error no entry 19:52 <+bridge_> 19:52 <+bridge_> 95% of that strace is useless xd 19:52 <+bridge_> can you do `sudo strace -e trace=file ./DDPER 2>&1 | grep -v ENOENT` 19:52 <+bridge_> 19:52 <+bridge_> ENOENT = Error no entry 19:52 <+bridge_> 19:52 <+bridge_> 95% of that strace is useless xd 19:53 <+bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1457446850155249716/message.txt?ex=695c08a7&is=695ab727&hm=c4b5deaa3ce1a4f408c6a5bd1d8397d280ee63672365e5b684fe45341166043b& 19:54 <+bridge_> interesting, if you really want to run it, symlink /dev/mapper/root to "/dev/mapper/root.[/@]" XD 19:54 <+bridge_> also ddper is trying to launch 2 subproccesses? 19:54 <+bridge_> :Pepe_sus: 19:55 <+bridge_> kinda sus 20:01 <+bridge_> why does he demand /dev/mapper/ :justatest: 20:06 <+bridge_> I wrote to them on the dc server and am waiting for a response. 20:21 <+bridge_> It also turns out that it doesn't allow foreign IPs to access the server. :kek: 20:23 <+bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1457454401483444285/image.png?ex=695c0faf&is=695abe2f&hm=679993b63ffd7acea9b2d073d6eb6c5b4853440dc4931f640d6e9ee34aaf5091& 20:54 <+bridge_> Looks concerning, I would next investigate what it opens if you are not using btrfs 20:55 <+bridge_> Maybe a very misguided way to generate a hardware id by trying to read a 4k out of the block device 20:58 <+bridge_> like hwid authentication? 20:59 <+bridge_> yes, I remember ddper being really keen on trying to prevent cheaters by using stuff like that 21:00 <+bridge_> Maybe. I read a post on their Telegram that they were supposedly fighting fraud. But I didn't quite understand it because the translation was strange. 21:01 <+bridge_> Oh btw, only keep investigating this if you know how to stay safe. I don't trust any of these closed source clients at all 21:05 <+bridge_> It read this path from a FIFO it seems "/dev/mapper/root[/@]", then it tried to open it 21:09 <+bridge_> Yeah, it does seem to be a weird hwid generation thing choking on btrfs 😄 21:10 <+bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1457466182935253086/image.png?ex=695c1aa8&is=695ac928&hm=5a39a859ef528fad7afd98dea43bbdab6d36bbbbe3ddb0bcae0048767c20f713& 21:11 <+bridge_> It's possible. But why does it create subprocesses? 21:12 <+bridge_> I didn't spot the subprocesses yet, just peeking thru the trace 21:13 <+bridge_> why arent there any ddnet servers hosted with sv_high_bandwidth 1? 21:15 <+bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1457467413141389393/image.png?ex=695c1bcd&is=695aca4d&hm=8f5d24c481e9d9f1cc688e0113d7f71dadab7174e9e04c8419d28ae02759a4ae& 21:16 <+bridge_> I'm waiting for a response from their creators. We'll see then 21:17 <+bridge_> for what reason tho 21:17 <+bridge_> also there is servers 21:17 <+bridge_> that have it enabled 21:18 <+bridge_> like chiller dragons solo fng 21:18 <+bridge_> Oh, I see, the `clone3` calls, well if you want to not wait for them you can `strace -o trace -ff ./DDPER` and we can see what the subprocesses were doing 😄 21:19 <+bridge_> It uses a lot of bandwidth, which adds up when you are hosting 30-40 servers per machine 21:20 <+bridge_> and the higher snap rate iirc can cause catastrophic failures under packet loss 21:22 <+bridge_> Broadly it launches a subprocess, that subprocess sends it back that path its trying to open through a pipe, then it tries to open it and fails, guess whatever it is has no way to recover from that so they exit 21:30 <+bridge_> Is this also the reason for #11563? 21:30 <+bridge_> https://github.com/ddnet/ddnet/issues/11563 21:51 <+bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1457476554669166653/image.png?ex=695c2451&is=695ad2d1&hm=b04db5e1b8d7ac41dcb8ce031757c681e4028ffe24ff66299f4107893f6ad8f8& 21:51 <+bridge_> Idk. @chillerdragon 21:52 <+bridge_> I should make it a project to reverse engineer this thing for community safety 21:53 <+bridge_> Uhhh, I don't think so, idk why full snaprate at join is bad, maybe try with an extremely slow computer (vm) or very high simulated ping or something like that 21:53 <+bridge_> ```bash 21:53 <+bridge_> …/Downloads/ddper-v8.4-linux_x86_64 ❯ sudo strace -o trace -ff ./DDPER 21:53 <+bridge_> [sudo] пароль для sqwinix: 21:53 <+bridge_> 2026-01-04 21:52:36 I engine: running on unix-linux-amd64 21:53 <+bridge_> 2026-01-04 21:52:36 I engine: arch is little endian 21:53 <+bridge_> 2026-01-04 21:52:36 I engine: operating system version: Linux 6.18.2-arch2-1 (x86_64, #1 SMP PREEMPT_DYNAMIC Thu, 18 Dec 2025 18:00:18 +0000); "Arch Linux" 21:53 <+bridge_> 2026-01-04 21:52:36 I storage: added path '$USERDIR' ('/home/sqwinix/.local/share/ddnet') 21:53 <+bridge_> 2026-01-04 21:52:36 I storage: added path '$DATADIR' ('data') 21:53 <+bridge_> 2026-01-04 21:52:36 I storage: added path '$CURRENTDIR' ('/home/sqwinix/Downloads/ddper-v8.4-linux_x86_64') 21:53 <+bridge_> 21:53 <+bridge_> …/Downloads/ddper-v8.4-linux_x86_64 ✗ strace -o trace -ff ./DDPER 21:53 <+bridge_> 2026-01-04 21:52:45 I engine: running on unix-linux-amd64 21:53 <+bridge_> 2026-01-04 21:52:45 I engine: arch is little endian 21:53 <+bridge_> 2026-01-04 21:52:45 I engine: operating system version: Linux 6.18.2-arch2-1 (x86_64, #1 SMP PREEMPT_DYNAMIC Thu, 18 Dec 2025 18:00:18 +0000); "Arch Linux" 21:53 <+bridge_> 2026-01-04 21:52:45 I storage: added path '$USERDIR' ('/home/sqwinix/.local/share/ddnet') 21:54 <+bridge_> 2026-01-04 21:52:45 I storage: added path '$DATADIR' ('data') 21:54 <+bridge_> 2026-01-04 21:52:45 I storage: added path '$CURRENTDIR' ('/home/sqwinix/Downloads/ddper-v8.4-linux_x86_64') 21:54 <+bridge_> Sudo permissions required. 21:54 <+bridge_> 21:54 <+bridge_> …/Downloads/ddper-v8.4-linux_x86_64 ❯ ``` 21:54 <+bridge_> I think I'm doing something wrong 21:54 <+bridge_> It should be creating multiple files with the traces 21:54 <+bridge_> of each child that is 21:54 <+bridge_> ddper itself as a community is very strange. 21:54 <+bridge_> they pretty much got their own masterserver so people can't join with different clients 21:56 <+bridge_> https://master2.ddper.ir/ 21:56 <+bridge_> https://info.ddper.ir/ 21:57 <+bridge_> I found this from my firend logs 21:57 <+bridge_> hey 21:57 <+bridge_> hi 21:57 <+bridge_> does chillerdragon have an xmpp? 21:57 <+bridge_> I'll send it in .zip now 21:57 <+bridge_> or well actually my question is 21:57 <+bridge_> is there any way to have a direct communication w him 21:57 <+bridge_> lmao 21:58 <+bridge_> he does check his irc messages 21:59 <+bridge_> oh 21:59 <+bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1457478688450019580/traces.zip?ex=695c264d&is=695ad4cd&hm=2bddd7d93444e9a7bf63c9b747179ae7e24452e0f399f29fb141d484a743000c& 22:00 <+bridge_> here 22:01 <+bridge_> chillerdragon@yax.im 22:02 <+bridge_> Yeah, these traces have abbreviated strings, but it definitely is just creating a hwid on a seperate subprocess, can't say it's harmless, but can say what the primary use is 22:03 <+bridge_> t hank you 22:03 <+bridge_> `execve("/bin/sh", ["sh", "-c", "--", "findmnt -T / -o SOURCE | grep / "...], 0x7ffc7c016a88 /* 17 vars */) = 0` 22:03 <+bridge_> Whatever this is in its full form is generates that faulty path 22:05 <+bridge_> and this one seems to be an extremely crude VM detection 22:05 <+bridge_> `execve("/bin/sh", ["sh", "-c", "--", "grep -q ^flags.*\\ hypervisor /pr"...], 0x7ffc7c016a88 /* 17 vars */) = 0` 22:06 <+bridge_> question why 22:06 <+bridge_> strange tbh 22:07 <+bridge_> Not particularly strange, ask the mods here they come up with the same idea every other month 22:08 <+bridge_> HWIDs are extremely common attempts at trying to ban people effectively, they existed for like 20 years now 22:09 <+bridge_> Yeah, I know. It could just be something else because the client itself won't launch for me. btw, why doesn't ddnet have a hwid system? 22:10 <+bridge_> We are not fans of data collection or privacy violating stuff 22:14 <+bridge_> Clear, I just heard somewhere that ddnet has some kind of hwid system, but that was a long time ago. 22:14 <+bridge_> or something like this 22:17 <+bridge_> also pretty easy to bypass if you don't have anything kernel level :P 22:17 <+bridge_> like literally took me 10 minutes rn with someone else doing the straces for me, there is just no way to make this properly secure 22:18 <+bridge_> even if you were loading a kernel module, there is no root of trust, it is just harder to break, but it will be broken 22:19 <+bridge_> on windows the shit tooling does make it quite a bit harder to reverse this stuff though 😄 22:19 <+bridge_> No nice strace to intercept the syscalls 22:21 <+bridge_> Isnt there a way to contain such data with encryption? This way it wouldnt break any morale someone might have 22:22 <+bridge_> Well who are we encrypting it against? We need the data to do anything with it, so we'd need to have the key, so that solves nothing 22:23 <+bridge_> Hashing can help, but not really, it'd only help hide the source of the data, but it is the fact that it stays the same that allows tracking and banning 22:23 <+bridge_> the whole point, tracking people to make they stay banned, is a privacy issue 22:23 <+bridge_> Sysinternals Process Monitor can do that 22:23 <+bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1457484584240545896/image.png?ex=695c2bcb&is=695ada4b&hm=5593258ededf1e017dacd510cbb01399f9c00e108a88c63696488bc658e75429& 22:23 <+bridge_> ie. proper moderation is not wanted on ddnet 22:23 <+bridge_> exactly, the end goal is just tracking people 22:23 <+bridge_> Im way out of my depth in the technicalities of it, but I'm pretty sure other companies/games do it, in order to not break european laws 22:24 <+bridge_> yes but ddnet is super cuck 22:24 <+bridge_> They just make you click "I agree" at the start of the game 22:24 <+bridge_> this topic is not worth your brain juices im just saying 22:24 <+bridge_> i tried and rq 3 times already xd 22:24 <+bridge_> or they sell you license keys, that they ban, so you lose money each time you get banned 22:24 <+bridge_> making an account the "i agree" part most of the time 22:25 <+bridge_> making an account the is "i agree" part most of the time 22:25 <+bridge_> making an account is the "i agree" part most of the time 22:25 <+bridge_> I personally havent heard of ToS that can bypass law 22:25 <+bridge_> I think the courts said there needs to be a checkbox and a clear listing of the terms iirc 22:26 <+bridge_> GDPR doesn't prevent consensual data collection, you can consent to your data being collected, think of it like accepting the cookies 22:26 <+bridge_> now im hungry 22:26 <+bridge_> thanks 22:27 <+bridge_> Oh wow, I didn't know process monitor had this 22:27 <+bridge_> where did i consent to the irc logs for this channel 22:27 <+bridge_> :justatest: 22:28 <+bridge_> or permanent storage on matrix server 22:28 <+bridge_> also all the mapping channels 22:28 <+bridge_> but guys 22:28 <+bridge_> The channel description states were logging 22:28 <+bridge_> :toptri: 22:28 <+bridge_> UUID is so different, its like, worse 22:29 <+bridge_> never mind storing in cleartext like 22:29 <+bridge_> AI finds my messages in the mapping channels 22:29 <+bridge_> EVERYTHING in every map channel 22:29 <+bridge_> kinda scary 22:29 <+bridge_> FOREVER 22:29 <+bridge_> that's fine 22:29 <+bridge_> Sweetbot tell this man he crazy 22:29 <+bridge_> sweetbot timeout this man 22:29 <+bridge_> We probably should add it in the onboarding thing that some channels are publicly logged practically forever 22:30 <+bridge_> but I actually don't know if it is needed, you are talking in a public place, you shouldn't have an expectation of privacy, no? Idk how the law treats this specific thing 22:31 <+bridge_> not really public, you need a discord account (if not for the bridges) 22:31 <+bridge_> You got me there, but what im wondering is, what is the motivation behind not wanting to store user data for moderation purposes? How I see it, the positives clearly outweigh the negatives 22:32 <+bridge_> Yeah I guess not exactly public 22:32 <+bridge_> what kind of data are you talking about? 22:32 <+bridge_> We do store some clearly useful stuff, like ips and chatlogs for 2 days 22:32 <+bridge_> teehistorian :P 22:32 <+bridge_> I was replying to a HWID discussion 22:33 <+bridge_> how does that help? this game is open source, you have no guarantee over what the client sends the server, at all. 22:33 <+bridge_> we already have checksums. but i am forbidden to talk 22:33 <+bridge_> Only has nicknames by design, storing that idk, probably also should put a disclaimer first time you join a ddnet server or sth 22:35 <+bridge_> I'm not really arguing about the practicality about it, I'm wondering why this would be violating privacy in this context 22:37 <+bridge_> even if not consented to, the ddnet admins could track your activity, regardless of name, ip or any identification, which would violate my privacy. 22:37 <+bridge_> It would be a practically invisable identifier that allows me to track you wherever provided you don't change it by lying to the server. So it allows tracking all honest parties 22:38 <+bridge_> I was mod long enough to experience that IPs arent all too useful, especially for people who really dont wanna play a game like its intended to be played 22:40 <+bridge_> this is intended. 22:40 <+bridge_> A hwid/uuid/id is not useful unless you have a powerful tracking system behind it tracking different attributes in hopes to re-associate people with ids as they change them. 22:40 <+bridge_> Or statistical tracking to make sure changes in uuid are statistical outliers, then you can mark the outliers for easier moderation 22:40 <+bridge_> 22:40 <+bridge_> Either way a substantial tracking infrastructure is needed, tracking stuff like names, skins, ips, ASs, perhaps even chat profiling 22:41 <+bridge_> Is there such a distrust between players and admins? And if so, why should we be arguing about this when alot of services, especially games do these practices, which are generally accepted by everyone because most know its benefiting the health of said game 22:41 <+bridge_> Without that tracking, you'll be building an id that only works against honest people, which are not the problem to begin with 22:42 <+bridge_> we **can't** do it. 22:42 <+bridge_> there is no arguing 22:44 <+bridge_> We could do it I guess? Load a closed source binary blob, obfuscate it heavily, but that's a losing game, at the end of the day they will hack the blob they will fool the blob etc. and then we'll only be able to track honest people, which weren't the issue to start with 22:44 <+bridge_> you were asking where the privacy violation was. This doesn't have anything to do with trust. 22:45 <+bridge_> Im well aware that HWIDs are useless to track players, I'm arguing the morale behind not wanting to violate user privacy, although a certain data collection will always be needed if you want to keep your game and your community healthy 22:45 <+bridge_> well we are waiting for accounts. 22:46 <+bridge_> not sure when heinrich decides to continue 22:46 <+bridge_> And how will the account system work in general? 22:47 <+bridge_> what heinrich is working on is no different than any other system on a moral level 22:47 <+bridge_> Anyway, let's not re-litigate this for the 80th time. Certain data collection is definitely needed, and thus we do collect it. We just didn't find HWID/UUID to be something worth adding, because to make it work you need to collect significantly more data for an indefinite period. 22:48 <+bridge_> we just pick fights about technical details asserting it's "morally different" somehow even tho that makes no sense xd 22:48 <+bridge_> accounts via QUIC are ALSO as useless if you dont track other data 22:48 <+bridge_> #developer is bikeshedding channel 22:48 <+bridge_> fr 22:48 <+bridge_> I'm about to have a stroke if I read "technical details" again, so I'll go do something else until this discussion dies down 22:49 <+bridge_> I'm going to have a stroke if I read "technical details" again, so I'll go do something else until this discussion dies down 22:49 <+bridge_> 🙄 22:49 <+bridge_> i just wish accounts could be reasoned with properly 22:49 <+bridge_> if the issue is moral then accounts at all are a problem 22:50 <+bridge_> and accounts have feature acceptance 22:50 <+bridge_> so clearly, it's technical 22:50 <+bridge_> Its a difficult topic, especially when no ones getting paid to make an account system lol, it's just that player’s arent getting any more patient as the days/weeks/months/years pass 22:50 <+bridge_> you can apply any "moral" things to any ID system, sure go get permission, slap "i agree" on it, slap terms of service on it 22:50 <+bridge_> difficult topic? mostly everything has been resolved this has been discussed hundreds of times. 22:50 <+bridge_> it can be as moral as any other system if encrypted 22:51 <+ChillerDragon> chillerbot-zx can join ddper btw xd @learath2 reversing that was exciting 22:51 <+bridge_> nicee 22:51 <+bridge_> you will be sent to persian jail for this 22:51 <+bridge_> Sysinternals Process Monitor can do that 22:51 <+bridge_> yet we constantly disagree on the grounds for fizzling the convo out every time it's brought up 22:52 <+bridge_> it's hand-wavy 22:52 <+bridge_> i hate it 22:52 <+bridge_> it's like ignoring TAS 22:52 <+bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1457491874666250382/image.png?ex=695c3295&is=695ae115&hm=9c6303e41e0b98a9b5041c34fe8b9ba434958533c1435447c143f07c1cdf7cd3& 22:52 <+bridge_> yeah yeah we will fix it 22:52 <+bridge_> If it was an easy topic, why was it discussed hundreds of times 22:52 <+bridge_> it actually is an easy topic 22:52 <+bridge_> what is it used for 22:52 <+bridge_> the bureaucracy is the difficult part 22:53 <+bridge_> because people like you who haven't witnessed the previous discussions bring up the topic again and it's discussed all over again. 22:53 <+bridge_> with 0 gain 22:54 <+bridge_> I merely ended my discussion with a homage to the account system topic, I wasnt discussing it 22:54 <+ChillerDragon> @sqwinix the teeworlds vanilla protocol uses numbers for message and snap item ids starting from 1 ranging to 20~ ish 22:54 <+ChillerDragon> @sqwinix and ddnet extension protocol uses uuid's instead of numbers to identify messages 22:55 <+ChillerDragon> this tool is just a helper 22:55 <+ChillerDragon> for example for this snap item 22:55 <+ChillerDragon> https://github.com/ddnet/ddnet/blob/4bb577c042c4e50318152229fcb5977cd6e8f744/datasrc/network.py#L371-L374 22:56 <+ChillerDragon> the greyed out tee that shows when u do /spec 22:56 <+ChillerDragon> its identifier is spec-char@netobj.ddnet.tw 22:56 <+ChillerDragon> `$ uuid spec-char@netobj.ddnet.tw` 22:56 <+ChillerDragon> `2026-01-04 22:56:13 I uuid: 4b801c74-e24c-3ce0-b92c-b754d02cfc8a` 22:56 <+ChillerDragon> so the raw uuid of 4b801c74-e24c-3ce0-b92c-b754d02cfc8a is what is sent over the network 22:56 <+ChillerDragon> as snap item type id 22:57 <+ChillerDragon> not directly because snap items register a type id mapping first 22:57 <+ChillerDragon> but for game and net messages every message contains the raw uuid 22:57 <+ChillerDragon> and the `uuid` tool helps to translate human readable message names including usually domains to the raw bytes that will be sent over the network 22:58 <+ChillerDragon> the uuid system is especially useful for multiple projects like custom ddnet mods 22:58 <+ChillerDragon> because they can add custom messages without clashing with ddnet 22:58 <+ChillerDragon> which is harder with low ascending numbers 22:59 <+bridge_> How come you are so smart @chillerdragon 22:59 <+ChillerDragon> i am actually not smart 23:00 <+ChillerDragon> i just like playing ctf the gamemode 23:00 <+bridge_> Since what year have you been playing? 23:00 <+ChillerDragon> and one day i noticed a split between 0.7 and 0.6 players so i made it my mission to learn enough protocol to unite players so i can do ctf3 gaming again 23:00 <+ChillerDragon> i think i play since like 2011 but not sure 23:00 <+bridge_> wanna play ctf 23:00 <+ChillerDragon> no i go to sleep now xd 23:01 <+bridge_> gn chiller 23:05 <+bridge_> League of Legends seems to have a massive bug with date handling, the loginserver has been having issues for the last entire hour 23:05 <+bridge_> Someone is getting turbofired 23:06 <+bridge_> Oh it's not a bug, their damn ssl certificate expired 😄 23:10 <+bridge_> didn't people already agree that to login into Discord ? 23:10 <+bridge_> Discord probably has the right to store the messages as they like, but idk if that right extends to us/other people in the channel 23:17 <+bridge_> <12944qwerty> is your sleep schedule a schedule? 23:37 <+bridge_> <12944qwerty> chiller, tee still has 500 ping and doesn't send any inputs, same code 23:37 <+bridge_> <12944qwerty> doesn't crash tho so that's nice