00:05 < bridge> ah right, thanks for the reminder 06:52 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1351433000180645888/2bd1033ede3646c1bbef915c5fdd7d73.jpg?ex=67da5b8f&is=67d90a0f&hm=90d92b102eaf51e2183a2815d39626bb9acaac4e130a8ed8470f44d629214ff1& 08:46 < bridge> https://github.com/dockur/windows this is so cool 09:16 < bridge> wtf 09:17 < bridge> web browser OS? 09:17 < bridge> can it run doom 09:20 < bridge> it can run dum 09:20 < bridge> and teawrld 09:22 < bridge> can you use it to install docker and create an infinitely deep hole of windows 10:33 < bridge> only deep hole of win11 10:35 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1351489206886727710/image-59.png?ex=67da8fe8&is=67d93e68&hm=6c014a1851a2dcdea7c4f7604203d33afdcc320de8f9326ee0e8ee24252c4881& 11:22 < bridge> https://clang.llvm.org/c_status.html#c2y 11:22 < bridge> wtf is this xD 11:22 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1351501019082653726/image.png?ex=67da9ae8&is=67d94968&hm=645131670432f955fe433cb9b78f6dbe2e02db05748f5af17f28c730a6686517& 11:23 < bridge> nice naming 12:11 < bridge> With line number and error message please! That would be so great! I am searching for a linter that does that for my sites .\_. Struggling to find one. 14:07 < bridge> is the ai bubble finally popping? 14:15 < bridge> Hope so 15:16 < bridge> <_qey> Is the player connection message block (3 messages) always sequential? Meaning, the first two ALWAYS ClientID + IP then chat message ALWAYS related to the previous message? 15:17 < bridge> <_qey> Can it ever somehow be two ClientID + IP messages in a row, and then two player join (with names) messages? 15:19 < bridge> <_qey> This: 15:19 < bridge> <_qey> 15:19 < bridge> <_qey> 2025-03-18 14:23:21 I server: player has entered the game. ClientId=2 addr=<{2.2.2.2:222}> sixup=0 15:19 < bridge> <_qey> 2025-03-18 14:23:21 I chat: *** '22222' entered and joined the game 15:19 < bridge> <_qey> 2025-03-18 14:23:21 I ddnet: cid=2 version=16050 15:19 < bridge> 2.2.2.2:222 is not a DDraceNetwork or Community server. 15:19 < bridge> <_qey> This: 15:19 < bridge> <_qey> 2025-03-18 14:23:21 I server: player has entered the game. ClientId=2 addr=<{2.2.2.2:222}> sixup=0 15:19 < bridge> <_qey> 2025-03-18 14:23:21 I chat: *** '22222' entered and joined the game 15:19 < bridge> <_qey> 2025-03-18 14:23:21 I ddnet: cid=2 version=16050 15:19 < bridge> 2.2.2.2:222 is not a DDraceNetwork or Community server. 15:20 < bridge> bad bot 15:20 < bridge> :( 15:20 < bridge> <_qey> I’m relying on storing the latest ClientID connected and assuming the next player name belongs to this ClientID. 15:27 < bridge> The clientId is not unique 15:27 < bridge> The clientId is not unique, to get the latest ID, there is a nextID value 15:28 < bridge> <_qey> I know it’s reusable. I created an external monitoring tool based on log entries. 15:28 < bridge> Oh oke 15:28 < bridge> based on econ? 15:29 < bridge> or based on log parsing? 15:29 < bridge> <_qey> Parsing the log file. 15:29 < bridge> Maybe you can take a look into econ 15:30 < bridge> <_qey> I did. Don’t like it. 15:31 < bridge> <_qey> Log parsing + FIFO input. 15:33 < bridge> <_qey> That wasn’t the question to begin with. The question is whether there could possibly be two logs laying on one another due to some kind of race condition, or is it synchronous? 15:45 < bridge> synchronous 15:49 < bridge> which pr did fix flicker of tees when spectating? 15:49 < bridge> i remember it beting a thing and randomly stopped happening 16:00 < bridge> the spec_cam flag 16:00 < bridge> i think 16:11 < bridge> Nice 16:12 < bridge> :nouis: i thought it broke something again and you are asking why 16:13 < bridge> Just curious how it worked because i miseed it being added 16:13 < bridge> it was just viewpos being updated to the top left corner because server dosen't know input type. now that server knows, it can just.. not do that. 16:13 < bridge> But it's a nice qol 17:07 < bridge> is there anything being done about these? they are more and more frequent 17:07 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1351587856120025179/image.png?ex=67daebc8&is=67d99a48&hm=be7dfa1bd00cec56296fdd82d2a513282caec53263758ecd00453bde69dd3e08& 17:08 < bridge> <.c.f.m.> i dont see those bots on ddnet servers 17:08 < bridge> <.c.f.m.> only vanilla ddnet servers and teeware servers 17:09 < bridge> <.c.f.m.> only vanilla ddnet servers and teeware ddnet servers 17:09 < bridge> this is ddnet server 17:09 < bridge> <.c.f.m.> show what it looks like 17:09 < bridge> 176.114.86.62:8334 17:09 < bridge> 176.114.86.62:8334[🇷🇺] is an official **DDraceNetwork** (Type: DDrace) server. 17:09 < bridge> Quick join: 17:09 < bridge> <.c.f.m.> damnation 17:10 < bridge> <.c.f.m.> well other bots like that arent on ddnet servers so i assume something is gonna be done about them 17:11 < bridge> guys since i deleted DDnet will you send me to a basement? 17:24 < bridge> `/dev/mapper/var 9.8G 9.3G 0 100% /var` oups 18:29 < bridge> https://tenor.com/view/huh-cat-huh-m4rtin-huh-huh-meme-what-cat-gif-5834484041415217257 19:23 < bridge> sigm 20:10 < bridge> sv_chat_initial_delay 5 20:10 < bridge> sv_chat_initial_delay 1 20:11 < bridge> gotta tell the ddnet staff 20:25 < ws-client3> @_qey there is an open issue for that https://github.com/ddnet/ddnet/issues/7876 20:27 < ws-client3> and no it is not ALWAYS that exact sequence @_qey but the order should be the same. It just can happen that there is another line between 20:29 < bridge> <_qey> Unless there’s another line in between that says player name, I’m okay with it. 20:29 < ws-client3> as far as i know there can be any line between 20:29 < ws-client3> but not 100% sure 20:30 < bridge> <_qey> If it goes in the same order, then it’s okay. I mean, as far as I observed logs, I haven’t seen it once. 20:30 < ws-client3> its rare 20:30 < bridge> <_qey> Well, rare things happen, even bits are flipping, nothing you can do about it. 20:31 < bridge> <_qey> If one person is banned instead of another because of this rare error, it’s still okay. 20:32 < bridge> <_qey> My monitoring tool is now proven to be effective against spammers and those like to insult family members. 20:33 < ws-client3> cring who bans insulting family members of staff 20:33 < bridge> <_qey> I don’t ban. I mute. Now staff, everyone. 20:33 < bridge> <_qey> I don’t ban. I mute. Not staff, everyone. 20:33 < ws-client3> Ok thats better! 20:34 < bridge> <_qey> However, regular people are still getting banned for sharing their username. Again, there’s no way to differentiate. Maybe implement some kind of threshold, like if the person spams as soon as they join, then ban. If the person is playing for 5 minutes, then no ban. 20:34 < bridge> <_qey> But I’m too lazy. 20:35 < ws-client3> I quickly grepped some of my logs and found 54522 occurences of ``2025-03-18 14:23:21 I server: player has entered the game. ClientId=2 addr=<{2.2.2.2:222}> sixup=0`` 20:35 < ws-client3> not being followed by ``2025-03-18 14:23:21 I chat: *** '22222' entered and joined the game`` 20:36 < ws-client3> many of those were from another thread the sql worker thread 20:36 < bridge> <_qey> Was it eventually followed by that line? 20:36 < ws-client3> yes that should be guranteed 20:36 < bridge> If anyone needs this ever 20:36 < bridge> https://github.com/Teero888/ddnet_ghostloader_c99 20:36 < ws-client3> eh wait 20:36 < ws-client3> no not guranteed xd 20:36 < ws-client3> it might never be printed in some edge case when a player drops during connection iirc 20:36 < bridge> <_qey> I’m reading line by line, I don’t care about other lines that do not say another player’s name. 20:36 < ws-client3> but its not printed in a different order 20:37 < ws-client3> ok then you should be good! 20:37 < ws-client3> thats how i have been parsing it as well for years! 20:37 < bridge> <_qey> Drop = leave? In case of a leave ID is released. 20:37 < ws-client3> yes 20:37 < bridge> <_qey> In my tool. 20:37 < bridge> <_qey> So there should be no confusion. 20:38 < bridge> <_qey> Is there a way to become less lazy? 20:38 < ws-client3> cool stuff @teero777 even if only sus use cases come to my mind 20:39 < bridge> <_qey> I have so many great ideas, yet I’m too lazy to implement them. And as somebody told me here, nobody is going to implement it for me. 20:39 < bridge> im making a ghost to demo thing xd 20:39 < bridge> so you can all your ghosts in one demo 20:39 < bridge> to render ghosts 20:39 < bridge> its gonna be hard tho xd 20:40 < bridge> i might have to use some illegal techniques to get this to work xd 20:41 < bridge> <_qey> As the saying goes, if it ain’t broke, don’t fix it. So illegal techniques are okay. Half of my code consists of workarounds. 20:41 < bridge> That doesn't sound very maintainable... 20:41 < bridge> <_qey> That’s why my code is closed-source. 20:42 < bridge> :kek: 20:43 < bridge> <_qey> I have like… 2 or 3 public repositories. Those are maintainable, but they’re boring because they don’t contain any workarounds. 20:43 < bridge> <_qey> I have like… 2 or 3 public repositories. Those are maintainable, but boring because they don’t contain any workarounds. 20:44 < bridge> hackerman 20:44 < bridge> <_qey> Heckermen 20:44 < bridge> <_qey> I have a 3-letter username on GitHub. Something to brag about. 20:45 < bridge> no i mean like code that is close to ddnet cheat client code xdd 20:45 < bridge> like for example the ghost file only consists of 25tps snaps aka the position of the tee and some params. i would need to simulate the game to figure out positions of other entities such as grenades, laser, shotgun etc. to make a proper demo. a demo also includes inputs that means i have to bruteforce the inputs to match the snaps in the physics to then put 25tps inputs back into the demo afterwards. this code would literally allow people to clone 20:47 < bridge> <_qey> Someone will take it and make a bot out of it somehow. 20:47 < bridge> haha it's C99 i'll just make it unreadable as hell 20:50 < bridge> i wonder if we can have a new demo format which contains enough information to make it play like a demo, but not enough to trivially copy it 20:50 < bridge> just all entities positions and properties to make them show correctly 20:50 < bridge> you could even round everything a bit to make it harder to brute force 20:50 < bridge> this is better than a ghost for sharing and better than a demo as well its sharable with less risk 20:50 < bridge> this format could be derived from demos (or even just be stripped down demos, same format, idk how much data you can get rid of before playback gets funky) and used for sharing top rank replays 20:51 < bridge> what? this is already the case 20:51 < bridge> you can't trivially replay a demo 20:51 < bridge> you can't trivially replay a demo ingame 20:51 < bridge> you can't trivially replay inputs from a demo ingame 20:51 < bridge> i thought you had velocity and everything you get from the server (at 50tps) 20:51 < bridge> no 20:51 < bridge> and no rounding 20:51 < bridge> 25tps 20:51 < bridge> you're missing half the states 20:51 < bridge> is the 50tps just prediction and server side? 20:52 < bridge> yes 20:52 < bridge> oke 20:52 < bridge> if you increase tps to 100 is it then 50 thru the net 20:52 < bridge> or always 25 20:52 < bridge> ? xd 20:52 < bridge> by changing the constant on both server and client 20:52 < bridge> should me SERVER_TICK_SPEED/2 20:52 < bridge> it should be sent every 2 ticks 20:53 < bridge> should be SERVER_TICK_SPEED/2 20:53 < bridge> *every second tick 20:53 < bridge> yes 20:53 < bridge> mb i cant read 20:53 < bridge> do demos contain velocity 20:54 < bridge> yes 20:55 < bridge> is velocity used, could it be removed 20:55 < bridge> and then positions rounded making it extra doobly hard to reverse them 20:56 < bridge> yes it is used 20:56 < bridge> and its important bruh 20:58 < bridge> cant you figure out velocity from position 20:59 < bridge> no xd you only have 25tps bro 20:59 < bridge> demo format isn't bad 20:59 < bridge> do something to the velocity idk x-x 21:03 < bridge> NO 21:03 < bridge> bro 21:03 < bridge> racers need the velocity in the demo 21:04 < bridge> imagine you want to check and compare different runs of you on a map and the velocity is just randomized by a little bit 21:04 < bridge> that would be so bad 21:04 < bridge> @sollybunny DO NOT touch the demo format 21:05 < bridge> 👀 21:05 < bridge> @sollybunny **DO NOT** touch the demo format 21:05 < bridge> do you wana add # 21:06 < bridge> Demos are not how they are sharing the ranks 21:06 < bridge> @sollybunny #**DO NOT** touch the demo format 21:07 < bridge> @sollybunny # **DO NOT** touch the demo format 21:07 < bridge> (at the start) 21:07 < bridge> #@sollybunny **DO NOT** touch the demo format 21:07 < bridge> # @sollybunny **DO NOT** touch the demo format 21:07 < bridge> (at the start with a space) 21:07 < bridge> (at the start with a space, there we go) 21:07 < bridge> for public demos, isnt a concern that they are play backable to some degree, making that as hard as possible for automatically public demos, means other than people wanting to keep their secrets, theres not any reason to not do so 21:08 < bridge> but they have to rework the demo nameplates! 21:09 < bridge> [Pepe_TradeOffer](https://cdn.discordapp.com/emojis/854897570949103617.gif?size=48&animated=true&name=Pepe_TradeOffer) 21:10 < bridge> if it alters the reality of the demo that is a pretty good reason not to do so. and if it doesn't then it's still not trivial to compute the missing inputs 21:10 < bridge> and duplicate ranks are very obvious 21:10 < bridge> if the positions or velocites are wrong, then you have to do alot more work 21:11 < bridge> but theyre a pain to deal with 21:11 < bridge> solly you should fix #6138 21:11 < bridge> https://github.com/ddnet/ddnet/issues/6138 21:11 < bridge> yea @sollybunny get to work 21:11 < bridge> x-x 21:11 < bridge> stop thinking about ridiculing the demo format 21:11 < bridge> idk why youre so # **against** it 21:12 < bridge> im against it because it makes my demos innacurate 21:12 < bridge> vro tried to make a header in the middle of a sentince 21:12 < bridge> well i dont want any of it to be big /: 21:12 < bridge> #against now trending on twitter 21:12 < bridge> sigh 21:12 < bridge> sigh 21:12 < bridge> a space 21:12 < bridge> sigh 21:13 < bridge> you can always share your demos or more accurate videos, its just for public ones 21:13 < bridge> if there are public ones therell probably be a way to opt out 21:13 < bridge> 👆 _touch_ 21:14 < bridge> yea you're making any demo inaccurate. that means that you cannot prove than any demo is real 21:14 < bridge> i could be making a demo with fake physics and no one could ever confirm its real or fake 21:14 < bridge> but you could also make a tas which is exactly the same as a demo collected from a server 21:15 < bridge> we are in desperate need of a validation feature and the demo needs to track inputs 21:15 < bridge> haha and why would you do that if you have the power to do 500x better ranks than any r1? 21:15 < bridge> the authenticity is garunteed by ddnet, i dont want the demo fucker-ifier to be public or be used other than for public automatic demos from servers 21:15 < bridge> the authenticity is garunteed by the server, i dont want the demo fucker-ifier to be public or be used other than for public automatic demos from servers 21:15 < bridge> it does track inputs :x just at 25tps 21:16 < bridge> the server can show fake records all it likes, but ddnet probably wont nor will it provide fake fuckified demos 21:16 < bridge> can't I reverse engineer the inputs from a legit demo anyway? 21:16 < bridge> guaranteed by my own server/software? 21:16 < bridge> xd 21:16 < bridge> you could 21:16 < bridge> what? 21:16 < bridge> by them being on a server not controlled by you 21:17 < bridge> and that server being part of a trusted community 21:17 < bridge> and then someone reports that their finish didn't get recognized by the server and posts a demo 21:17 < bridge> aks nether for demo of run -> reverse engineer -> playback inputs -> profit (& ban) 21:17 < bridge> what do you do then lmao 21:17 < bridge> i dont understand 21:17 < bridge> if a finish didnt get recognised and they have a demo because their client recorded it (in full quality) thats fine 21:18 < bridge> thats a glitch unrelated to demo fuckifying 21:18 < bridge> i finally deleted DDnet 21:18 < bridge> congratulations 21:18 < bridge> thx 21:18 < bridge> nice 21:18 < bridge> would you like your refund? 21:18 < bridge> the question is 21:18 < bridge> very #developer of you to let us know that you deleted ddnet 21:18 < bridge> people could always post full demos 21:18 < bridge> no ones stopping them 21:19 < bridge> will you put me into dd basement? 21:19 < bridge> @sollybunny you could make a demo fuckifying tool to fuck demos with an external tool so you can post them 21:19 < bridge> that would be fine 21:19 < bridge> no ones stopping them, and i dont want to stop that, i dont want the client to record fuckified demos, nor the server to record only fuckified demos 21:19 < bridge> I will put you on the ddcross 21:19 < bridge> but dont alter the normal demos 21:19 < bridge> nobody has time for that 21:20 < bridge> deen recently locked it due to some incidents. it will probably open in a few months. come again then 21:20 < bridge> for the purpose of releasing demos without allowing ye olde shitbag to try to recreate it (without the compute and/or effort to just tas it), i do not see the problem with fuckifying them, since the demos being released in whatever quality is more than we get now 21:20 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1351651557242044458/file-GWSskvxCFEhb5isuzo4qty.png?ex=67db271b&is=67d9d59b&hm=0739f916b327331ea23ba09724e778359a97ced596e55607c3ea4fd54f8694ff& 21:20 < bridge> for the purpose of releasing demos without allowing ye olde shitbag to try to recreate it (without the compute and effort to just tas it), i do not see the problem with fuckifying them, since the demos being released in whatever quality is more than we get now 21:20 < bridge> [barfpukevomit](https://cdn.discordapp.com/emojis/296845273970376704.webp?size=48&name=barfpukevomit) 21:21 < bridge> omg 21:21 < bridge> wAT 21:21 < bridge> yes you can fuckify them as an optional post processing effect for players to protect their runs from possible hackermans 21:21 < bridge> for the purpose of releasing demos without allowing ye olde shitbag to try to recreate it (without the compute and effort to just tas it), i do not see the problem with fuckifying them, since the demos being released in whatever quality is more than we get now (nothing), and people can still post videos and full demos as they are doing now 21:21 < bridge> AI mixels 21:21 < bridge> yis 21:21 < bridge> bro has never done pixel art 21:21 < bridge> yis 21:21 < bridge> releasing demos from servers automaticlly 21:21 < bridge> for releasing demos from servers automaticlly 21:22 < bridge> u dont want to be on the cross 21:22 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1351651880694185995/image.png?ex=67db2768&is=67d9d5e8&hm=59507409de0ecb10f63b4d11cab1edc64ee0bf430fa40e02b5cb04a4a3ae5597& 21:22 < bridge> for releasing demos from servers automaticlly whilst protecting against possible hackermans 21:22 < bridge> yes that would be fine. 21:22 < bridge> why not 21:22 < bridge> thats all ive been suggesting 21:22 < bridge> with a demo validation we could also do an input hash and catch replays 21:22 < bridge> ):< 21:22 < bridge> okay, good solly. i can solve them anyways :bleh: 21:22 < bridge> :pepeW: 21:22 < bridge> it kinda hurts 21:23 < bridge> it always does the first time 21:23 < bridge> some people arent strong 🦾 21:26 < bridge> 😀 21:29 < bridge> a demo format that would be annoying to reverse: represent the movement of tees as a series of curves, fitting as long of a stretch of time as you can on each curve 21:29 < bridge> also very good for compression! 21:31 < bridge> any way of describing files as a series of things with lesser and lesser magnitude is a good fit for lossy compression 21:31 < bridge> any way of describing data as a series of things with lesser and lesser magnitude is a good fit for lossy compression 21:32 < bridge> obvious first thought was cubic beziers (because everyone uses those for everything) but with knowledge of the game we could probably try to find a type of curve that fits Teeworlds movement better 21:34 < bridge> of course nobody is going to implement this because it's way too much effort for way too little value 21:36 < bridge> just making everything fixed point 16bits for 50% space saving 21:36 < bridge> having full mouse direction is a waste you only need like 1024 directions 21:36 < bridge> having full mouse position is a waste you only need like 1024 directions 21:37 < bridge> the demo format I would've gone for if I was originally designing the game: literally just store all the inputs and nothing else 21:37 < bridge> exceedingly easy to replay bot lol 21:38 < bridge> well, initial state too if the demo doesn't start from map load 21:38 < bridge> thats actually harder because teeworlds doesnt work without a server 21:38 < bridge> or relies on the server 21:38 < bridge> yes 21:38 < bridge> the demo player would just be a server lol 21:38 < bridge> the demo player is just a server 21:38 < bridge> it just subs in the demo data for the server 21:38 < bridge> it just subs in the server with demo data 21:39 < bridge> for my format you'd run a full server that reads in the demo file instead of doing networking for player inputs 21:40 < bridge> the client doesnt know what the server is doing 21:40 < bridge> if network conditions arent perfect then storing just inputs breaks instantly 21:41 < bridge> which actually isnt that hard... i just used to have shitty internet so im huffing copium 21:41 < bridge> teeworlds do be a bit funny in a number of ways... 21:41 < bridge> perfect networking conditions being not a single lost packet and consistent ping 21:51 < bridge> :wq 22:11 < bridge> is there a way to exclude terms from the server browser search? the game's ping estimates always put Brazil at the top of my browser despite me having as much ping to there as I do GER servers lol 22:11 < bridge> i could just connect to the servers & have the browser cache the ping but i found that doesn't persist 22:11 < bridge> i could just connect to the servers & have the game cache the ping but i found that doesn't persist 22:13 < furo> There is an exclude filter under the search input. If that's what you are asking for?