00:03 <+bridge> Uhh... any news on account system? 00:05 <+bridge> idk, why? 00:17 <+bridge> Just. So much ppl talked about it and asked for it, then it all suddenly stopped 00:18 <+bridge> Is there a channel to read what is going in in development? Like, not just news, but something that is in progress 00:19 <+bridge> Cuz that townhall thing?ppl just say random things and noone react. Like ppl just imagine what could be added, but it doesnt seem like they really have an option to do it 00:26 <+bridge> i dont think that will added to ddnet 00:26 <+bridge> if you are talking about logging in with password to nicknames 00:27 <+bridge> because its a open-source game and everyone can delete it from code then use whatever they want 04:01 <+bridge> I have no guarantees that it will be taken over by them, they want to create a server-side version, while volleybot is already implemented 04:02 <+bridge> please stop spreading misinformation 04:03 <+bridge> I've posted a few writeups about the status, anyone is free to implement QUIC, work is halfway done in heinrich's PR. I believe (and mostly just belief) that DDNet does not want accounts without QUIC, even though I've proved in the past that accounts are possible without it. So YMMV about how "close" we are, just need to convince admins that we don't need to write everything to use QUIC :D 04:05 <+bridge> ChillerDragon: works fine for me? 04:05 <+bridge> https://cdn.discordapp.com/attachments/293493549758939136/1517349569011257344/image.png?ex=6a35f568&is=6a34a3e8&hm=d8cd8e1b69351a6098fb5888e556b9d0d46bce300748241689074f7dde10b66c& 04:06 <+bridge> You need to install it as root 04:06 <+bridge> `lua-dotenv 1.1-1 is now installed in /home/chiller/.luarocks (license: MIT)` 04:06 <+bridge> That installed it locally, but by default lua only searches in system-available paths, given in your paste 04:07 <+bridge> You might be able to get LuaJIT to search your home folder for requires but I've never done it before 04:07 <+bridge> this is my output with sudo: `lua-dotenv 1.1-1 is now installed in /usr (license: MIT)` 04:07 <+bridge> @soulyvevo possibly you experienced the same issue 04:09 <+bridge> I've posted a few writeups about the status, anyone is free to implement QUIC, work is halfway done in heinrich's PR. I believe (and mostly just belief) that DDNet does not want accounts without QUIC, even though I've proved in the past that accounts are possible without it. So YMMV about how "close" we are, just need to convince admins that we don't need to write everything to use QUIC :D 04:09 <+bridge> 04:09 <+bridge> EDIT: and BTW, much worse is already implemented in an unsecure way in DDNet, it's just for some reason accounts that they want on a new protocol. They have no qualms with sending RCON over the wire unencrypted, which is arguably a more important attack vector to secure. 04:10 <+bridge> mrrow 04:10 <+bridge> ello always 04:11 <+bridge> if you actually know that broke has it in writing that chiller wants to implement a whole volleyball mod then, i can drop the subject but 04:11 <+bridge> i have never seen this :D 04:16 <+bridge> I also checked the output of `luarocks path` but it seems like my home folder can be read from by default, so that's strange 04:16 <+bridge> maybe that doesn't guarantee LuaJIT can read it? arg 04:18 <+bridge> yeah, check this out 04:18 <+bridge> ``` 04:18 <+bridge> miau:lynn ~ % luajit 04:18 <+bridge> LuaJIT 2.1.1780076327 -- Copyright (C) 2005-2026 Mike Pall. https://luajit.org/ 04:18 <+bridge> JIT: ON SSE3 SSE4.1 BMI2 fold cse dce fwd dse narrow loop abc sink fuse 04:18 <+bridge> > print(package.path) 04:18 <+bridge> ./?.lua;/usr/share/luajit-2.1/?.lua;/usr/local/share/lua/5.1/?.lua;/usr/local/share/lua/5.1/?/init.lua;/usr/share/lua/5.1/?.lua;/usr/share/lua/5.1/?/init.lua 04:18 <+bridge> > 04:18 <+bridge> ``` 04:18 <+bridge> so by default LuaJIT only reads from those places 09:00 <+bridge> 'sup guys 09:00 <+bridge> im getting a segfault after merging tclient on vanilla servers (ones which dont send extended data) beacuse `m_TuneZoneOverride` is not initialized causing OOB 09:00 <+bridge> ``` 09:00 <+bridge> #0 0x0000555555be9fff in CTuneParam::operator float (this=) at /TClient/src/game/gamecore.h:39 09:00 <+bridge> #1 CCharacter::Read (this=this@entry=0x5555592845e0, pChar=pChar@entry=0x7fffda6103b4, pExtended=pExtended@entry=0x0, IsLocal=IsLocal@entry=false) 09:00 <+bridge> at /TClient/src/game/client/prediction/entities/character.cpp:1433 09:00 <+bridge> #2 0x0000555555bea908 in CCharacter::CCharacter 09:00 <+bridge> (this=this@entry=0x5555592845e0, pGameWorld=pGameWorld@entry=0x7fffda7e5818, Id=Id@entry=5, pChar=pChar@entry=0x7fffda6103b4, pExtended=pExtended@entry=0x0) 09:00 <+bridge> at /TClient/src/game/client/prediction/entities/character.cpp:1319 09:00 <+bridge> #3 0x0000555555bef607 in CGameWorld::NetCharAdd 09:00 <+bridge> (this=this@entry=0x7fffda7e5818, ObjId=ObjId@entry=5, pCharObj=pCharObj@entry=0x7fffda6103b4, pExtended=0x0, GameTeam=0, IsLocal=) 09:00 <+bridge> at /TClient/src/game/client/prediction/entity.h:14 09:00 <+bridge> #4 0x0000555555bd214c in CGameClient::UpdatePrediction (this=this@entry=0x7fffda086010) at /TClient/src/game/client/gameclient.cpp:4058 09:00 <+bridge> #5 0x0000555555bd760d in CGameClient::OnNewSnapshot (this=0x7fffda086010, DummySwapped=false) at /TClient/src/game/client/gameclient.cpp:2557 09:00 <+bridge> #6 0x00005555558d8b06 in CClient::Update (this=this@entry=0x7fffdbe1a010) at /TClient/src/engine/client/client.h:286 09:00 <+bridge> #7 0x00005555558da239 in CClient::Run (this=this@entry=0x7fffdbe1a010) at /TClient/src/engine/client/client.cpp:3449 09:00 <+bridge> #8 0x00005555558deb51 in main (argc=, argv=) at /TClient/src/engine/client/client.cpp:5281 09:01 <+bridge> ``` 09:01 <+bridge> in `void CCharacter::Read(CNetObj_Character *pChar, CNetObj_DDNetCharacter *pExtended, bool IsLocal)` which is called right after char creation 09:01 <+bridge> Hellou :3 09:01 <+bridge> it takes the else path (no `pExtended`) , `GetTuning(GetOverriddenTuneZone())` gets called multiple times where `GetOverriddenTuneZone()` uses the uninitialized `m_TuneZoneOverride` which is only set at the end of the block to None 09:01 <+bridge> it takes the else path (no `pExtended`) , `GetTuning(GetOverriddenTuneZone())` gets called multiple times where `GetOverriddenTuneZone()` uses the uninitialized `m_TuneZoneOverride` which is only set at the end of the block to `TuneZone::OVERRIDE_NONE` 09:01 <+bridge> 'sup guys 09:01 <+bridge> im getting a segfault after merging tclient on vanilla servers (ones which dont send extended data) beacuse of seemingly uninitlized vars causing OOB 09:01 <+bridge> ``` 09:01 <+bridge> #0 0x0000555555be9fff in CTuneParam::operator float (this=) at /TClient/src/game/gamecore.h:39 09:01 <+bridge> #1 CCharacter::Read (this=this@entry=0x5555592845e0, pChar=pChar@entry=0x7fffda6103b4, pExtended=pExtended@entry=0x0, IsLocal=IsLocal@entry=false) 09:01 <+bridge> at /TClient/src/game/client/prediction/entities/character.cpp:1433 09:01 <+bridge> #2 0x0000555555bea908 in CCharacter::CCharacter 09:01 <+bridge> (this=this@entry=0x5555592845e0, pGameWorld=pGameWorld@entry=0x7fffda7e5818, Id=Id@entry=5, pChar=pChar@entry=0x7fffda6103b4, pExtended=pExtended@entry=0x0) 09:01 <+bridge> at /TClient/src/game/client/prediction/entities/character.cpp:1319 09:01 <+bridge> #3 0x0000555555bef607 in CGameWorld::NetCharAdd 09:02 <+bridge> (this=this@entry=0x7fffda7e5818, ObjId=ObjId@entry=5, pCharObj=pCharObj@entry=0x7fffda6103b4, pExtended=0x0, GameTeam=0, IsLocal=) 09:02 <+bridge> at /TClient/src/game/client/prediction/entity.h:14 09:02 <+bridge> #4 0x0000555555bd214c in CGameClient::UpdatePrediction (this=this@entry=0x7fffda086010) at /TClient/src/game/client/gameclient.cpp:4058 09:02 <+bridge> #5 0x0000555555bd760d in CGameClient::OnNewSnapshot (this=0x7fffda086010, DummySwapped=false) at /TClient/src/game/client/gameclient.cpp:2557 09:02 <+bridge> #6 0x00005555558d8b06 in CClient::Update (this=this@entry=0x7fffdbe1a010) at /TClient/src/engine/client/client.h:286 09:02 <+bridge> #7 0x00005555558da239 in CClient::Run (this=this@entry=0x7fffdbe1a010) at /TClient/src/engine/client/client.cpp:3449 09:02 <+bridge> #8 0x00005555558deb51 in main (argc=, argv=) at /TClient/src/engine/client/client.cpp:5281 09:02 <+bridge> ``` 09:04 <+bridge> in `game/client/prediction/entities/character.cpp` 09:04 <+bridge> `void CCharacter::Read(CNetObj_Character *pChar, CNetObj_DDNetCharacter *pExtended, bool IsLocal)` which is called right after char creation 09:04 <+bridge> takes the else path (no `pExtended`) , `GetTuning(GetOverriddenTuneZone())` gets called multiple times where `GetOverriddenTuneZone()` uses uninitialized `m_TuneZoneOverride`/`m_TuneZone` 09:04 <+bridge> `m_TuneZoneOverride` is only set to `TuneZone::OVERRIDE_NONE` at the end of the block and `m_TuneZone` is not set at all 09:04 <+bridge> ``` 09:04 <+bridge> print {m_TuneZone, m_TuneZoneOverride} 09:04 <+bridge> {21845, 1507524871} 09:04 <+bridge> print {m_TuneZone, m_TuneZoneOverride} 09:04 <+bridge> $8 = {-1594056603, 605847552} 09:04 <+bridge> ``` 09:04 <+bridge> in `game/client/prediction/entities/character.cpp` 09:04 <+bridge> `void CCharacter::Read(CNetObj_Character *pChar, CNetObj_DDNetCharacter *pExtended, bool IsLocal)` which is called right after char creation 09:04 <+bridge> takes the else path (no `pExtended`) , `GetTuning(GetOverriddenTuneZone())` gets called multiple times where `GetOverriddenTuneZone()` uses uninitialized `m_TuneZoneOverride`/`m_TuneZone` 09:04 <+bridge> `m_TuneZoneOverride` is only set to `TuneZone::OVERRIDE_NONE` at the end of the block and `m_TuneZone` is not set at all 09:04 <+bridge> ``` 09:04 <+bridge> print {m_TuneZone, m_TuneZoneOverride} 09:04 <+bridge> {21845, 1507524871} 09:04 <+bridge> print {m_TuneZone, m_TuneZoneOverride} 09:04 <+bridge> $8 = {-1594056603, 605847552} 09:04 <+bridge> ``` 09:04 <+bridge> there are no major diffs here to master, not does it happen with asan, and/or debug (caught only on Release/RelWithDebInfo) 09:05 <+bridge> in `game/client/prediction/entities/character.cpp` 09:05 <+bridge> `void CCharacter::Read(CNetObj_Character *pChar, CNetObj_DDNetCharacter *pExtended, bool IsLocal)` which is called right after char creation 09:05 <+bridge> takes the else path (no `pExtended`) , `GetTuning(GetOverriddenTuneZone())` gets called multiple times where `GetOverriddenTuneZone()` uses uninitialized `m_TuneZoneOverride`/`m_TuneZone` 09:05 <+bridge> `m_TuneZoneOverride` is only set to `TuneZone::OVERRIDE_NONE` at the end of the block and `m_TuneZone` is not set at all 09:05 <+bridge> ``` 09:05 <+bridge> print {m_TuneZone, m_TuneZoneOverride} 09:05 <+bridge> {21845, 1507524871} 09:05 <+bridge> print {m_TuneZone, m_TuneZoneOverride} 09:05 <+bridge> $8 = {-1594056603, 605847552} 09:05 <+bridge> ``` 09:05 <+bridge> there are no major diffs here to master but doesnt happen on nightly, nor does it happen with asan, and/or debug (caught only on Release/RelWithDebInfo) 09:05 <+bridge> in `game/client/prediction/entities/character.cpp` 09:05 <+bridge> `void CCharacter::Read(CNetObj_Character *pChar, CNetObj_DDNetCharacter *pExtended, bool IsLocal)` which is called right after char creation 09:05 <+bridge> takes the else path (no `pExtended`) , `GetTuning(GetOverriddenTuneZone())` gets called multiple times where `GetOverriddenTuneZone()` uses uninitialized `m_TuneZoneOverride`/`m_TuneZone` 09:05 <+bridge> `m_TuneZoneOverride` is only set to `TuneZone::OVERRIDE_NONE` at the end of the block and `m_TuneZone` is not set at all 09:05 <+bridge> ``` 09:05 <+bridge> print {m_TuneZone, m_TuneZoneOverride} 09:05 <+bridge> {21845, 1507524871} 09:05 <+bridge> print {m_TuneZone, m_TuneZoneOverride} 09:05 <+bridge> $8 = {-1594056603, 605847552} 09:05 <+bridge> ``` 09:05 <+bridge> there are no major diffs here to master but doesnt happen on nightly, nor does it happen with asan, and/or debug (caught only on Release/RelWithDebInfo) which is confusing 09:07 <+bridge> in `game/client/prediction/entities/character.cpp` 09:07 <+bridge> `void CCharacter::Read(CNetObj_Character *pChar, CNetObj_DDNetCharacter *pExtended, bool IsLocal)` which is called right after char creation 09:07 <+bridge> takes the else path (no `pExtended`) , `GetTuning(GetOverriddenTuneZone())` gets called multiple times where `GetOverriddenTuneZone()` uses uninitialized `m_TuneZoneOverride`/`m_TuneZone` 09:07 <+bridge> `m_TuneZoneOverride` is only set to `TuneZone::OVERRIDE_NONE` at the end of the block and `m_TuneZone` is not set at all 09:07 <+bridge> ```python 09:07 <+bridge> print {m_TuneZone, m_TuneZoneOverride} 09:07 <+bridge> {21845, 1507524871} 09:07 <+bridge> // different crash 09:07 <+bridge> print {m_TuneZone, m_TuneZoneOverride} 09:07 <+bridge> {-1594056603, 605847552} 09:07 <+bridge> ``` 09:07 <+bridge> there are no major diffs here to master but doesnt happen on nightly, nor does it happen with asan, and/or debug (caught only on Release/RelWithDebInfo) which is confusing 09:07 <+bridge> ah sorry chiller for the edit spam ._. 09:09 <+bridge> in `game/client/prediction/entities/character.cpp` 09:09 <+bridge> `void CCharacter::Read(CNetObj_Character *pChar, CNetObj_DDNetCharacter *pExtended, bool IsLocal)` which is called right after char creation 09:09 <+bridge> takes the else path (no `pExtended`) , `GetTuning(GetOverriddenTuneZone())` gets called multiple times where `GetOverriddenTuneZone()` uses uninitialized `m_TuneZoneOverride`/`m_TuneZone` 09:09 <+bridge> at the end of the block (after usage) `m_TuneZoneOverride` is to `TuneZone::OVERRIDE_NONE` and `m_TuneZone` is set with `SetTuneZone()` 09:09 <+bridge> ```python 09:09 <+bridge> print {m_TuneZone, m_TuneZoneOverride} 09:09 <+bridge> {21845, 1507524871} 09:09 <+bridge> // different crash 09:09 <+bridge> print {m_TuneZone, m_TuneZoneOverride} 09:09 <+bridge> {-1594056603, 605847552} 09:09 <+bridge> ``` 09:09 <+bridge> there are no major diffs here to master but doesnt happen on nightly, nor does it happen with asan, and/or debug (caught only on Release/RelWithDebInfo) which is confusing 09:10 <+bridge> i dont see where `m_TuneZone` is meant to get set as the only setters I see are the one mentioned and in `HandleTuneLayer()` 09:10 <+bridge> https://cdn.discordapp.com/attachments/293493549758939136/1517426294810345562/image.png?ex=6a363cdd&is=6a34eb5d&hm=983849f63e312d93ea5cb7826311a88e853fb12b73c51e93d548ae57711552de& 09:10 <+bridge> @totar btw 09:10 <+bridge> ? 09:10 <+bridge> trying to merge ddnet 09:11 <+bridge> uh 09:11 <+bridge> trying to merge ddnet (see master_new) 09:14 <+bridge> did you test when you build upstream locally? 09:15 <+bridge> i pressumed nightly would crash if it would if i were to build it 09:15 <+bridge> but i can test that 09:15 <+bridge> I mean probably but idk 09:15 <+bridge> seems weird it doesn't crash debug 09:15 <+bridge> oh 09:15 <+bridge> it works in RelWithDebInfo 09:16 <+bridge> yeah... the crash is caused by uninitializtion so debug can effect that, but asan should catch it 09:16 <+bridge> (ive tried asan+relwdbg) 09:16 <+bridge> did you get a callstack? 09:16 <+bridge> for relwithdeb only 09:17 <+bridge> (santiy gonna check again) 09:19 <+bridge> yeah doesnt get caught 09:19 <+bridge> wait i need to give envs when running dont i 09:20 <+bridge> huh? 09:20 <+bridge> https://cdn.discordapp.com/attachments/293493549758939136/1517428819567317103/image.png?ex=6a363f37&is=6a34edb7&hm=870ea800c9b49a940a332f6aa1579e1278e16982ecf9fece7a66027387aa2747& 09:21 <+bridge> ah couldnt find lsan.supp etc 09:24 <+bridge> doesnt activate ): 09:25 <+bridge> what if otuside sets it becauae spaghetti and tclietn modifies that 09:41 <+bridge> kind find anything, but i can just initialize the values myshelf 09:41 <+bridge> cant find anything, but i can just initialize the values myshelf 09:44 <+bridge> does anyone know, if the item.m_id is allowed to be negative? 09:44 <+bridge> ``` 09:44 <+bridge> class CSnapItem 09:44 <+bridge> { 09:44 <+bridge> public: 09:44 <+bridge> int m_Type; 09:44 <+bridge> int m_Id; 09:44 <+bridge> const void *m_pData; 09:44 <+bridge> int m_DataSize; 09:44 <+bridge> }; 09:44 <+bridge> ``` 09:44 <+bridge> 09:44 <+bridge> I want to have an edge case, where I don't want to change 1 object, but all with `-1` 09:45 <+bridge> I am not sure and not a binary pro but I feel like it could cause issues 09:45 <+bridge> With the item key 09:45 <+bridge> Which combines type and Id 09:46 <+bridge> huh 09:46 <+bridge> You know snap item keys? 09:46 <+bridge> no I am clueless 09:48 <+bridge> https://github.com/teeworlds/teeworlds/blob/master/src/engine/shared/snapshot.h 09:48 <+bridge> int Type() const { return m\_TypeAndID>>16; } 09:48 <+bridge> int ID() const { return m\_TypeAndID&0xffff; } 09:49 <+bridge> I also see void Invalidate() { m_TypeAndID = -1; } 09:49 <+bridge> Idk how well this works with negative 09:54 <+bridge> I am now wondering, if I should do bit magic on a netmessage or add a new field for this 09:56 <+bridge> I guess I should add m_Flags 10:39 <+bridge> The prediction has no clue about respawning or death :/ 10:47 <+bridge> you need tee positions for those things 10:48 <+bridge> actually you could add death 11:06 <+bridge> I need the moment of respawn - I currently hope that I can get it from the CCharacter constructor basically 11:21 <+bridge> nope this doesn't work, if I do SK I don't get a new character in the prediction apparently 11:21 <+bridge> i said "i dont think" 11:25 <+bridge> I think I can make use of `ResetPrediction` 11:28 <+bridge> I think I can make use of `ResetPrediction` ✅ 11:44 <+bridge> @gorp_tw ok i installed deps as root -.- which i am not particularly hyped about tbh but eh it worked 11:44 <+bridge> what is the API*DISCORD*KEY? 11:45 <+bridge> `API_DISCORD_KEY` 11:46 <+bridge> if you give me the value I'll show you 11:46 <+bridge> `API_DISCORD_KEY=blahhhhhhhhhhhhh` 11:47 <+bridge> https://codeberg.org/lynnya/volleybot-api/src/commit/9dea6e48703cb8786274e4278d07e9c5ed1e6cc0/.env.example 11:47 <+bridge> probably for a discord bot that posts results 11:58 <+bridge> yes i figured that much 11:58 <+bridge> but i dont have discord so what value do i put there 11:59 <+bridge> @gorp_tw so something is running here now ^^ https://volleyball-api.ger8.zillyhuhn.com/ 12:05 <+bridge> why ```cpp 12:05 <+bridge> add_subdirectory(src/game/client/components/lsd) 12:05 <+bridge> ``` isnt works? 12:06 <+bridge> should i try to connect it other cmakelists 14:18 <+bridge> thank you great ddnet lords for adding this masterpiece of a feature 14:18 <+bridge> https://cdn.discordapp.com/attachments/293493549758939136/1517503887819542608/image.png?ex=6a368520&is=6a3533a0&hm=d1c4a838b7220fffefb6721db79086723a8ce674ef49039dd5bcbc7cf7cb78b3& 14:20 <+bridge> why does the prediction reset when I spec 14:23 <+bridge> when you spec or when you spec someone 14:23 <+bridge> assa assa assa 14:24 <+bridge> rei rei rei 14:30 <+bridge> @marmare_314 14:33 <+bridge> @davide55 any idea why kog has connection problems for a few seconds every X minutes since yesterday? Is that ddos or some other bug? 14:33 <+ChillerDragon> its not a me issue this time 14:35 <+bridge> DDNet's ger10 also has connectivity issues from time to time 14:43 <+bridge> My IP got banned for vpn. I actually dont use vpn but still have restrictment 14:46 <+bridge> reset your ip 14:49 <+bridge> https://discord.com/channels/252358080522747904/1124657351442579486 14:49 <+bridge> VPN Ban appeal 14:59 <+bridge> assa assa assa 14:59 <+bridge> @chillerdragon routing issues, I'm already checking it, been debugging the issue since yesterday 15:04 <+ChillerDragon> ah nice! 16:23 <+bridge> maybe due to the acer router hack 21:49 <+bridge> oh nice, you dont need the Discord token 21:50 <+bridge> now you can try to build the bot, there's a compilation step in the readme 22:01 <+bridge> https://cdn.discordapp.com/attachments/293493549758939136/1517620477928013924/Screencast_From_2026-06-19_23-00-18.mp4?ex=6a36f1b5&is=6a35a035&hm=b1db71570f929f89754a0c71d549467ed1b5b5884ae298f23dc81d870457dd6a& 22:43 <+bridge> GUYS 22:44 <+bridge> YOO 22:44 <+bridge> can u go general 22:44 <+bridge> rate latest version 22:44 <+bridge> https://cdn.discordapp.com/attachments/293493549758939136/1517631289350426855/Screencast_From_2026-06-19_23-44-05.mp4?ex=6a36fbc7&is=6a35aa47&hm=7299594f457a004029dbe54c3c9aa324021b2a052aac2b205e7407988c67aac0& 22:45 <+bridge> I SWEAR I LIKE IT XD 22:45 <+bridge> but i don't see it 🙁 22:45 <+bridge> is it now? 22:45 <+bridge> why cant u see 22:46 <+bridge> is it now 22:46 <+bridge> like i can watch it on my pc? 22:46 <+bridge> yeah 22:47 <+bridge> wait 22:47 <+bridge> you can play it too 22:48 <+bridge> Nothing 22:48 <+bridge> which map> 22:48 <+bridge> ? 22:48 <+bridge> multeasymap 22:48 <+bridge> multeasymap 22:48 <+bridge> and there is no disco 22:48 <+bridge> i moded it 22:48 <+bridge> <блин enjoyer> Chat did I cook? 22:48 <+bridge> <блин enjoyer> https://cdn.discordapp.com/attachments/293493549758939136/1517632044165763183/image.png?ex=6a36fc7b&is=6a35aafb&hm=d44df043efcfdd8582967ce92181f9e96624a442303fad5a620ba8b9b451f711& 22:48 <+bridge> what is this 22:48 <+bridge> what is this 22:48 <+bridge> <блин enjoyer> It's the page you see when you click join on this: 22:48 <+bridge> <блин enjoyer> 45.141.57.22:8360 22:49 <+bridge> what is ur name on ddnet rei 22:49 <+bridge> is it a client or server side? 22:49 <+bridge> i can't see like what u have 22:49 <+bridge> <блин enjoyer> it's web-side 22:49 <+bridge> <блин enjoyer> site? 22:49 <+bridge> <блин enjoyer> yeah, web-side 22:49 <+bridge> <блин enjoyer> sounds funnier 22:50 <+bridge> i like it 22:50 <+bridge> wdym 22:50 <+bridge> disco 22:50 <+bridge> just normal 22:50 <+bridge> what is ur name on ddnet 22:50 <+bridge> ingam 22:50 <+bridge> im not playing ddnet for a long time 22:50 <+bridge> sateFy 22:51 <+bridge> and 22:51 <+bridge> rei