02:27 < bridge> is it possible to turn off the `demo_recorder` and `ghost_recorder` log messages? they are super annoying when filtering logs 02:27 < bridge> is it possible to turn off the `demo_recorder` and `ghost_recorder` log messages? they are super annoying when looking at logs ingame 07:51 < bridge> Because they restart on race failure? Sounds like a skill issue 08:01 < bridge> they restart on finish as well, super annoying if you hunt a 10 sec race map 08:06 < bridge> well I'm playing race xd 08:06 < bridge> 59/60 tries are respawns because I'm not perfect 08:07 < bridge> Well actually every try is a respawn 08:21 < bridge> morning x86_64 kernel devs and vulkan devs and others 08:56 < bridge> good morning ^.^ 08:56 < bridge> at what point am I a vulkan dev? 08:57 < bridge> does making a single shader and expanding one buffer command count? I guess yes 09:42 < ws-client> **** @Jupstar ✪ any chance you could quickly check if https://github.com/ddnet/ddnet/pull/10706 is broken? otherwise i would merge it in pretty soon 10:09 < bridge> > You marked this as resolved? Looks unchanged 🤔 10:10 < bridge> 10:10 < bridge> Look at me overwriting my own changes because I worked from 2 different PCs and force overwrite my change :pepeW: 10:12 < bridge> what should be broken about it? it doesn't introduce new code, just splits one class into two and adds the header 10:13 < bridge> tested ingame, and renders maps 10:25 < bridge> That's more than 20 loc 10:26 < bridge> This week I don't have a small LOC PR for you 🙁 I know I still have my weekly token, but chiller is too fast merging all my small PRs 10:37 < bridge> u have done so much for ddnet-rs xd 10:39 < bridge> I have a question, should particles be rendered over the foreground or over the physics layer? 10:40 < bridge> because currently particles go over everything and I am not sure if they should do that or all should do that 10:42 < bridge> hmm explosions should go over, freeze I believe not, ninja should go over, bremsspuren schould go under (or even stopped by solids) 10:44 < bridge> I believe we already have that, death animation also doesn't go through walls, but is rendered over it huh 10:46 < bridge> guess it's fine as is 10:52 < bridge> May I introduce to you —force-with-leash idk if it even helps if your the author on both xd I never used it 10:53 < bridge> E `—force-with-lease` 10:53 < bridge> L ios uses gpt minus instead of double minus bru 10:54 < bridge> it's an em dash and it would be correct if not for chat gpt's overuse 10:54 < bridge> fixed it btw 10:54 < bridge> I noticed even before you wrote me 10:54 < bridge> Hi — Ewan how are you today — sir 11:06 < bridge> that's not correct 11:06 < bridge> it can pretty much be used in place of a semicolon 11:07 < bridge> Hi, Ewan how are you today, sir 11:07 < bridge> @mpft: can I use it to terminate C++ statements? 11:07 < bridge> `int a = 2–` 11:08 < bridge> im pretty good 11:08 < bridge> about to go to bed 11:09 < bridge> that won't compile D: 11:15 < bridge> someone PLEASE help me 11:15 < bridge> A few minutes ago i got banned because of blocking BUT i wasnt blocking i was looking for my friend and someone attacked me for no reason and i tried to defend myself and i got banned directly i was looking for my friend i banned until (August 20 9:34) when i got banned i got this message but right now its August 20 and time is 11:41 i wasnt blocking i was looking for my friend from now on i cant join multeasymap i swear i was looking for 11:15 < bridge> i was just trying to defend myself :(( 11:16 < bridge> might be 9:34 UTC, so you still have 15 min 🙂 11:18 < bridge> after 15min can i play back? 11:18 < bridge> yes, if not open a ticket 11:19 < bridge> UTC time is world-time. As a server owner you sometimes don't want to be bothered with time zones, f time zones 11:19 < bridge> hmm 11:20 < bridge> im still banneeeeeed :( 11:20 < bridge> then open a tiiiiicccceeeetttt 🙁 11:20 < bridge> how to open 11:20 < bridge> then open a tiiiiiccckeeeetttt 🙁 11:20 < bridge> ohwait 11:20 < bridge> https://discord.com/channels/252358080522747904/1124657351442579486 11:21 < bridge> he gave me a code 11:21 < bridge> what im gonna do with that code 11:22 < bridge> it should have opened a discord channel for you 11:23 < bridge> it should have opened a discord channel for you afaik 11:24 < bridge> i will send a message to admin 11:24 < bridge> but 11:25 < bridge> how to look at ip 11:25 < bridge> he wants my İp 11:25 < bridge> you should have pressed ban appeal I believe? 11:25 < bridge> yes 11:25 < bridge> https://whatismyipaddress.com/ 11:26 < bridge> so confusing :(( 11:27 < bridge> why i have to do this 11:27 < bridge> @fokkonaut: I think the friend class feature is smoother than the \#define private public hack xd basically has the same result and git conflict surface 11:27 < bridge> cant i just talk to admin 11:27 < bridge> where a deen 11:28 < bridge> you mean moderator, admin mail is for more important things which need admin permission 11:29 < bridge> yes moderator 11:29 < bridge> cant he unban me 11:29 < bridge> He needs the ip so he knows who to unban 11:30 < bridge> but i dont know my İP :( 11:30 < bridge> wait 11:30 < bridge> can i send a screenshot 11:30 < bridge> go on this website and copy your ip 11:30 < bridge> like I didn't just randomly post this 11:30 < bridge> ok chill :( 11:31 < bridge> proxy? 11:31 < bridge> pyproxy sorry 11:31 < bridge> is it 11:31 < bridge> @whitest_duck: https://lmddgtfy.net/?q=what%20is%20my%20ip 11:32 < bridge> how many days im banned 11:32 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1407658554986467438/IMG_20250820_123013_044.jpg?ex=68a6e7b0&is=68a59630&hm=45099d861f7c0055f886d2568dbc3633ad9de660edf510087cd9bade82b77360& 11:32 < bridge> 2 minutes 11:32 < bridge> look it even fucking says UTC 11:32 < bridge> now you make me angry 11:32 < bridge> but i cant join 11:33 < bridge> because time is not over 11:33 < bridge> pro tip: wait a minute 11:33 < bridge> 9:33 UTC is before 9:34 UTC 11:33 < bridge> smort 11:33 < bridge> it been 30 min 11:33 < bridge> no it has not been 11:33 < bridge> … 11:33 < bridge> please ask chat gpt what UTC means and let it answer any questions you still have 11:33 < bridge> bro im not from U.K my english so bad try to understand pls i cant understand english times 11:34 < bridge> @essigautomat: shouldn’t have told him how to open an ticket xd 11:34 < bridge> There is no way the ticket will be responded to before expire 11:34 < bridge> gg u should have got unbanned now 11:34 < bridge> Mod time waste 11:34 < bridge> UTC was just a guess on my side 11:34 < bridge> im still banned 11:34 < bridge> He don’t speak London 11:34 < bridge> xd go make a tea 11:34 < bridge> try in a minute 11:34 < bridge> And I’ll unban you in the mean time 11:34 < bridge> ok 11:35 < bridge> i hope 11:35 < bridge> ez calmed 11:35 < bridge> but please learn what UTC means in the meantime 11:35 < bridge> oh look a UTC clock 11:35 < bridge> https://time.is/de/UTC 11:35 < bridge> oooooh 11:35 < bridge> i understand utc now 11:35 < bridge> Pro 11:35 < bridge> aaaaaa 11:36 < bridge> im unbanned 11:36 < bridge> The educational \#developer channel where geniuses are molded 11:36 < bridge> congratulations 11:36 < bridge> thank you guys so muchhh 11:36 < bridge> wow 🥳 11:36 < bridge> @whitest_duck: you are welcome 11:36 < bridge> especially Assa 11:36 < bridge> If you block again I won’t unban you this fast! 11:36 < bridge> next time you get banned dont forget to spam ping a developer 11:36 < bridge> :justatest: you're welcome 11:36 < bridge> Thank you for putting up with my stupidity so long Assa 11:37 < bridge> i wasnt blocking but OK 11:37 < bridge> they all say that 11:37 < bridge> i was looking for my friend 11:37 < bridge> then a guy attacked me 11:37 < bridge> I wasn't hacking, I was just using this undocumented unsecured api endpoint 11:37 < bridge> WHO was the moderator? 11:37 < bridge> he frozed himself and i was trying to defend my self 11:37 < bridge> Let’s get him fired 11:37 < bridge> Sounds like abuse 11:37 < bridge> thank you guys again bye 😇 11:38 < bridge> Happy blocking my friend 11:39 < bridge> can a moderator check on him in the servers? 11:39 < bridge> can a moderator check on him in the servers? :kek: 11:41 < bridge> guys Is using bad names a reason for a ban 11:43 < bridge> absolutely 11:45 < bridge> lmao you can grant read access to public repos? 11:45 < bridge> i have a guy in my server 11:45 < bridge> his name starts with P 11:45 < bridge> i cant say that 11:45 < bridge> @sollybunny: go accept invite so you appear in the GitHub dropdowns 11:46 < bridge> It’s so annoying that GitHub limits the users you can assign to issues or search their prs and all that kinda stuff. All the drop downs only have like 3 names you can chose and they are the owner of the repo 11:46 < bridge> do you guys want to ban him 11:46 < bridge> I will talk to him @whitest_duck 11:46 < bridge> A team of moderators is investigating your matter! 11:49 < bridge> Oh maybe that’s the role I had in ddnet. The one that was pretty op! With like labling open close issues and prs. @sollybunny pls no trolling I trust you souly 11:49 < bridge> guys 11:49 < bridge> how did you become moderator 11:49 < bridge> chillerdragon: dont worry i wont troll 11:51 < bridge> guys how to be admin 11:51 < bridge> i mean moderator 11:53 < bridge> first you need to be trusted by the community. Since you have been recently banned, you won't be a mod. 11:58 < bridge> oh 11:58 < bridge> dang :( 12:00 < bridge> not even a small chance? 12:01 < bridge> assa can you ban someone i have a blocker in this server 12:01 < bridge> he is not in playground im trying to run from him 12:02 < bridge> is it multeasymap ._. 12:02 < bridge> but he is not in playground 12:02 < bridge> mods dont really care about blockers there 12:02 < bridge> u can go into solo and avoid blockers 12:02 < bridge> wow 12:07 < bridge> Yes just solo 12:12 < bridge> chiller 12:13 < bridge> igot my home server back 12:13 < bridge> online 12:13 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1407668927135486022/image.png?ex=68a6f159&is=68a59fd9&hm=e7fa95ce734c8cd686648d89e47a832eea93249dbb9f10a002118134f473d466& 12:13 < bridge> ill see what i can put 12:14 < bridge> since im behind cgnat i think ill use wireguard with my hetzner vps to get public incoming connections or smth 12:16 < bridge> you should try tailscale 12:16 < bridge> oh public 12:16 < bridge> still could work 12:28 < bridge> @chillerdragon (replying to ping) 12:28 < bridge> why did u ping me!??! 12:36 < bridge> @sollybunny: I gave you read access to public repo 12:36 < bridge> Go accept 12:37 < bridge> @chillerdragon im aware u already gave me access to community network stuff 12:37 < bridge> there anoather!? 12:37 < bridge> INSTA??? 12:37 < bridge> too much trust lmao 12:38 < bridge> i cant assign but i can write 12:39 < bridge> I use ssh tunnel 12:46 < bridge> give me access to ddnet-ircbot so i dont bring back ddos command 12:49 < bridge> I wonder where is the DDNet discord bot src code 12:56 < bridge> probably in one of patigas repos 12:56 < bridge> or ddnet repos 12:56 < bridge> i think i found it once 12:56 < bridge> https://github.com/ddnet/ddnet-discordbot 12:56 < bridge> this is the old one 12:57 < bridge> maybe this https://github.com/murpii/ddnet-discordbot-dev 13:06 < ws-client> **** @kollpotato <:justatest:572499997178986510> 13:06 < bridge> wat 13:06 < ws-client> **** ddos command 13:06 < bridge> dont worry 13:06 < bridge> i will rename it to 13:06 < bridge> !sendlinearplayers 13:07 < ws-client> **** ez assigned I trapped you into getting assigned with that invite @Solly (bun bun) https://github.com/ddnet-insta/ddnet-insta/issues/398 13:07 < ws-client> **** now i can kick u again hrhrhrhr 13:08 < bridge> @chillerdragon i will merge bomb, once i am not member all compoopers with the git cloned will explode 13:08 < bridge> \/j i am not a terrorist 13:08 < ws-client> **** <:justatest:572499997178986510> 13:08 < bridge> or am i 13:08 < bridge> https://tenor.com/view/vsauce-evil-mastermind-vsauce-evil-mastermind-gif-27579269 13:09 < bridge> chiller can u see the gif 13:09 < bridge> are there auto previews 13:09 < ws-client> **** i see a tenor link 13:09 < ws-client> **** the tenor preview plugin is in development 13:09 < bridge> woah u are remaking discord 13:10 < bridge> i will invest 0$ every week 13:10 < ws-client> **** https://github.com/discord-irc/discord-irc/blob/master/src/plugins/core/tenor.ts 13:10 < ws-client> **** contributions welcome 13:26 < bridge> chiller pls merge https://github.com/ddnet/ddnet-web/pull/337 13:26 < bridge> its a text file 13:26 < bridge> u can review grammar if u want 13:28 < ws-client> **** holy shit 13:28 < ws-client> **** i actually have merge rights in web repo 13:29 < bridge> yeah we dont need a deen 13:29 < bridge> ez we can break the whole website 13:29 < ws-client> **** pog 13:29 < bridge> how to squash commits 13:30 < ws-client> **** git gud 13:30 < bridge> ok i go google 13:30 < ws-client> **** ``git reset --soft HEAD^^ && git commit --amend && git push -f`` 13:30 < ws-client> **** dis two ^ squash the last 2 commits 13:30 < ws-client> **** you can also do HEAD^^^^ 13:31 < ws-client> **** or HEAD^ multiple times xd 13:31 < bridge> wtf pure magic 13:31 < ws-client> **** you can also get oldest commit hash and do ``git rebase -i 25ee083cc562d0eca4054e35d96f7365beac7ff9^`` 13:31 < ws-client> **** then keep first pick and replace all other picks with squash 13:32 < ws-client> **** so many options 13:32 < bridge> um 13:32 < bridge> i messed up something 13:32 < ws-client> **** potat 13:32 < bridge> ._. 13:32 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1407688732513140798/image.png?ex=68a703cb&is=68a5b24b&hm=c15bacf0e8e61d97ae6cc78a6e58d221ece4c5e194f9523ccc4cd88868191a10& 13:32 < ws-client> **** you went too far xd 13:32 < ws-client> **** gotta check with git log first 13:32 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1407688783385858048/image.png?ex=68a703d7&is=68a5b257&hm=5a7dd6ff052449daa37a1f8bf5ccc3b69f364530452b1c41b2c87ea789f56517& 13:32 < ws-client> **** i saw xd 13:32 < bridge> well i made 4 commits so i did ^ 4 times 13:32 < ws-client> **** we can fix dis dw 13:33 < ws-client> **** it deletes the commit 13:33 < ws-client> **** so you deleted 4 commits 13:33 < ws-client> **** then updated deens commit to include your changes xd 13:33 < ws-client> **** can u do ``git checkout 25ee083cc562d0eca4054e35d96f7365beac7ff9`` and show me output of ``git log`` 13:34 < bridge> I assume should do reflog now 13:34 < ws-client> **** yes 13:35 < bridge> ``` 13:35 < bridge> commit 25ee083cc562d0eca4054e35d96f7365beac7ff9 13:35 < bridge> Author: Koll Potato <89776480+KollPotato@users.noreply.github.com> 13:35 < bridge> Date: Sun Aug 17 16:22:59 2025 +0300 13:35 < bridge> 13:35 < bridge> Update README.md 13:35 < bridge> 13:35 < bridge> Co-authored-by: melon <101197249+BlaiZephyr@users.noreply.github.com> 13:35 < bridge> 13:35 < bridge> commit da74a05ac34c42aad84d4472237e613775122440 13:35 < bridge> Author: Koll Potato <89776480+KollPotato@users.noreply.github.com> 13:35 < bridge> Date: Sun Aug 17 16:22:36 2025 +0300 13:35 < bridge> 13:35 < bridge> Update README.md 13:35 < bridge> 13:35 < bridge> Co-authored-by: melon <101197249+BlaiZephyr@users.noreply.github.com> 13:35 < bridge> 13:35 < bridge> commit c52276941aae634a53ec0911343b64ad252c8fc6 13:35 < bridge> Author: Koll Potato <89776480+KollPotato@users.noreply.github.com> 13:35 < bridge> Date: Sun Aug 17 16:22:18 2025 +0300 13:35 < bridge> 13:35 < bridge> Update README.md 13:35 < bridge> 13:35 < bridge> Co-authored-by: melon <101197249+BlaiZephyr@users.noreply.github.com> 13:36 < bridge> 13:36 < bridge> commit 758c2eef83fe49703d3a2ba7d7cad022b688bbb9 13:36 < bridge> Author: Koll Potato 13:36 < bridge> Date: Sun Aug 17 15:49:14 2025 +0300 13:36 < bridge> 13:36 < bridge> add a basic readme 13:36 < bridge> 13:36 < bridge> wall of text 13:36 < bridge> i did last 3 commits from github maybe i should have done git fetch or something 13:36 < bridge> idk git 13:36 < ws-client> **** i am 60% sure you want dis. ``git checkout master && git reset --hard 25ee083cc562d0eca4054e35d96f7365beac7ff9`` but go try if log looks good 13:36 < ws-client> **** your push -f deleted it on github xd 13:36 < ws-client> **** oh yes u need to pull before that too 13:37 < ws-client> **** once you have the 4 commits again go delete 3 and then ammend 13:37 < ws-client> **** did it work? 13:38 < bridge> yes i now have all the changes in my directory 13:38 < bridge> now i need to squash 13:38 < bridge> @chillerdragon YOUR CMAKE IS BROKEN 13:38 < ws-client> **** ono 13:38 < ws-client> **** wat the cmake do 13:39 < bridge> cant find libs 13:39 < ws-client> **** did u clone? 13:39 < ws-client> **** submodules? 13:39 < bridge> tclient: 13:39 < bridge> ``` 13:39 < bridge> -- Dependencies: 13:39 < bridge> -- * Curl not found (using bundled version) 13:39 < bridge> -- * FFmpeg not found (using bundled version) 13:39 < bridge> -- * Freetype found 13:39 < bridge> -- * Glew not found (using bundled version) 13:39 < bridge> -- * GTest not found 13:39 < bridge> -- * Ogg found 13:39 < bridge> -- * OpenSSL Crypto not found 13:39 < bridge> -- * Opus found 13:39 < bridge> -- * Opusfile not found (using bundled version) 13:39 < bridge> -- * PNG not found (using bundled version) 13:39 < bridge> -- * Python3 found 13:39 < bridge> -- * SDL2 found 13:39 < bridge> -- * SQLite3 not found (using bundled version) 13:39 < bridge> -- * Wavpack not found (using bundled version) 13:40 < bridge> -- * Zlib not found (usin 13:40 < bridge> ``` 13:40 < bridge> insta: 13:40 < bridge> ``` 13:40 < bridge> -- Dependencies: 13:40 < bridge> -- * Curl not found (using bundled version) 13:40 < bridge> -- * FFmpeg not found (using bundled version) 13:40 < bridge> -- * Freetype not found 13:40 < bridge> -- * Glew not found (using bundled version) 13:40 < bridge> -- * GTest not found 13:40 < bridge> -- * Ogg found 13:40 < bridge> -- * OpenSSL Crypto not found 13:40 < bridge> -- * Opus found 13:40 < bridge> -- * Opusfile not found (using bundled version) 13:40 < bridge> same build dir 13:40 < bridge> ok its better now 13:40 < bridge> i have 2 commits 13:40 < bridge> not 4 13:40 < ws-client> **** guys can u stop dos my irc pls 13:40 < bridge> shit i messed something up again 13:40 < bridge> now the author of the commit is deen 13:40 < bridge> xddd 13:40 < bridge> git-blame-someone-else 13:41 < ws-client> **** looks the same to me @soulyvevo 13:41 < bridge> so does it to me 13:41 < bridge> but it no build 13:41 < bridge> im just gonna rm -rf and start over 13:41 < ws-client> **** wat it say 13:41 < ws-client> **** @kollpotato use branch btw 13:41 < ws-client> **** master bad 13:41 < bridge> u must install freetype to compile the ddnet client 13:41 < ws-client> **** freetype xd 13:41 < bridge> (replying to my big block of text) 13:43 < ws-client> **** that i figured but the text did not fully arrive on irc 13:43 < ws-client> **** it was too many lines you got the bridge banned 13:43 < bridge> lmao 13:43 < ws-client> **** very lmao 13:43 < bridge> after undoing the reset for checking the diff between u and master 13:43 < bridge> it works 13:43 < bridge> https://tenor.com/view/cat-gif-16258174987336597266 13:43 < ws-client> **** so its a u issue 13:43 < bridge> i didnt... 13:43 < ws-client> **** souly the cmake breaker 13:43 < bridge> how 13:44 < bridge> chiller i figured it out 13:45 < bridge> stackoverflow did 13:45 < ws-client> **** @kollpotato i noticed 13:45 < ws-client> **** looks good 13:45 < ws-client> **** but idk the web repo 13:45 < ws-client> **** so i cant merge 13:45 < bridge> git reset --soft HEAD~2 works too 13:45 < ws-client> **** oh yes 13:45 < bridge> wym u dont know 13:45 < ws-client> **** also git reset --soft sha 13:45 < bridge> something can break 13:45 < bridge> if i add a readme 13:45 < ws-client> **** yes 13:45 < ws-client> **** you can misguide ppl 13:45 < ws-client> **** because its actually pyson django not jykelly ruby 13:45 < ws-client> **** i wouldnt know 13:46 < bridge> 2 people a year look into that repo 13:46 < ws-client> **** xd 13:46 < ws-client> **** lemme try ur commands 13:46 < ws-client> **** hopefully not a backdoor into my pc 13:46 < bridge> my readme aint hurt nobody 13:46 < bridge> git commands? 13:46 < ws-client> **** readme commands 13:47 < bridge> oka 13:47 < bridge> it will barely work 13:47 < bridge> like 10% of the website will be available 13:48 < bridge> switching theme also doesnt work xd 13:49 < ws-client> **** so far so good 13:49 < ws-client> **** this jekyll looks good 13:49 < bridge> yes see 13:49 < bridge> im a genius 13:49 < ws-client> **** maybe i should use it for teeworlds protocol 13:49 < bridge> or mdbook 13:49 < bridge> written in rust 13:49 < ws-client> **** how did u figure this out? 13:50 < bridge> ryozuki commented that the website uses jekyll 13:50 < bridge> i tried jekyll serve in root directory it didnt work 13:50 < bridge> cd www 13:50 < bridge> and it worked 13:50 < bridge> ez 13:50 < bridge> https://github.com/ddnet/ddnet-web/issues/166 13:51 < bridge> one issue less i guess 13:51 < bridge> trying to serve the entire website would be pure pain 13:51 < bridge> only deen knows how 13:53 < bridge> chiller im gonna continue doing prs without ever touching c++ 13:54 < bridge> text maintainer 13:55 < ws-client> **** @kollpotato i have the feeling deen has to do these commits by hand. They involve ddnet.org rank lookups and complicated math https://github.com/ddnet/ddnet-web/commit/3145b8b23824b1793e4ff3976eceab6bcbf2299a 13:55 < ws-client> **** go write a script for him to create this commit 13:56 < ws-client> **** takes name and euro amount as input 13:56 < ws-client> **** its basically a security vuln 13:56 < ws-client> **** the deen can be ddosed with 1 euro donations 13:56 < bridge> xddd 13:57 < bridge> i wonder how ddnet is still alive with all these scripts 13:57 < bridge> written in python 2 13:57 < bridge> We are missing the Facebook employee with python 3 merch 13:58 < bridge> wait did u mention that ddnet website uses django 13:58 < bridge> wait nvm its not possible 13:58 < bridge> https://youtu.be/LJByWKOcW24 13:58 < bridge> Ruby, python and php? 13:58 < bridge> Real website 13:59 < bridge> yeah pages are generated with python 13:59 < bridge> php is used for whatever reason 13:59 < bridge> who is gonna lead python 2 -> 3 migration for ddnet 14:00 < bridge> xd 14:00 < bridge> I can identify with that lady 14:00 < bridge> Will drop 0.7 merch soon 14:00 < bridge> oh btw not all python scripts are used 14:01 < bridge> ddnet website also relies from libtw2 rust scripts 14:01 < bridge> Hacker 14:01 < bridge> Add some C\# component @kollpotato website needs it 14:02 < bridge> ok will do 14:02 < bridge> one language/framework per component 14:04 < bridge> I need a deen 14:06 < bridge> I want a tshirt that says „where a deen“ xd 14:07 < bridge> ez design 14:07 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1407697657194872842/image.png?ex=68a70c1b&is=68a5ba9b&hm=f9bb7756367be8c77636331ae2fbf74f8847e9f3263df19b8512c3ce6c9d1634& 14:09 < bridge> use mdbook for protocol documentation https://github.com/rust-lang/mdBook/ 14:09 < bridge> i will contribute more 14:11 < bridge> put "where a deen" at the back 14:11 < bridge> i actually did that xd 14:11 < bridge> didnt want to clutter this channel 14:12 < bridge> yeah about that 14:12 < bridge> !remind 10 @chillerdragon don't clutter this channel so much 14:12 < chillerbot> Helo Assa I will remind you at Wed Aug 20 2025 14:22:29 GMT+0200 (Central European Summer Time) about your matter again. 14:12 < bridge> what did chiller do 14:13 < bridge> he is a proud and independent maintainer 14:13 < bridge> true 14:22 < chillerbot> yo @Assa keep in mind to: @chillerdragon don't clutter this channel so much 14:29 < chillerbot> Elo @chillerdragon I just wanted to remind you that: missing arg 14:42 < bridge> hello 14:48 < bridge> hi anti ddnet dev 14:55 < bridge> !ping 14:55 < chillerbot> pong 14:55 < kolpotat> !ping 14:55 < chillerbot> pong 14:57 < bridge> chiller i wonder if i change my name to bridge how will the bot react 14:57 < bridge> i dont have perms to do that 14:57 < bridge> :( 15:00 < bridge> when you write code and it compiles without error but it contains a bug. And you see where the bug is, and wonder "what in the C++ syntax how does this even compile?" 15:01 < bridge> show example 15:01 < bridge> ``` 15:01 < bridge> for(int Channel = 0; Channel < 2; ++Channel) 15:01 < bridge> { 15:01 < bridge> const CEnvelopeHandler::CEnvelopeExtrema &Extrema = m_pEnvelopeHandler->GetExtrema(m_QuadRenderGroup.m_PosEnv); 15:01 < bridge> aQuadOffsetMin[Channel] += Extrema.m_Minima[Channel]; 15:01 < bridge> aQuadOffsetMin[Channel] += Extrema.m_Maxima[Channel]; 15:01 < bridge> } 15:01 < bridge> ``` 15:02 < bridge> ``` 15:02 < bridge> for(int Channel = 0; Channel < 2; ++Channel) 15:02 < bridge> { 15:02 < bridge> const CEnvelopeHandler::CEnvelopeExtrema &Extrema = m_pEnvelopeHandler->GetExtrema(m_QuadRenderGroup.m_PosEnv); 15:02 < bridge> aQuadOffsetMin += Extrema.m_Minima[Channel]; 15:02 < bridge> aQuadOffsetMin += Extrema.m_Maxima[Channel]; 15:02 < bridge> } 15:02 < bridge> ``` 15:02 < bridge> aQuadOffsetMin and Max (lol yet another bug) are arrays and I am adding to the pointer instead of the channel 15:03 < bridge> Heh, that does happen from time to time 😄 15:03 < bridge> Why isn't it named `pQuadOffsetMin`? 15:03 < bridge> or `paQuadOffsetMin` if it's a pointer to an array 15:03 < bridge> it's an array reference 15:04 < bridge> `bool CRenderLayerQuads::CalculateQuadClipping(int aQuadOffsetMin[2], int aQuadOffsetMax[2], bool Grouped)` 15:04 < bridge> not even, it's just an int pointer internally 15:04 < bridge> I am going to update rendering one last time big time 15:09 < bridge> Now I don't understand, an array reference you wouldn't be able to += 15:09 < bridge> this is just an int pointer so pointer arithmetic 15:09 < bridge> Ah, like this, hm I probably would do `int (*pQuadOffsetMin)[2]` if you want the checking 15:10 < bridge> Ah, like this, hm I probably would do `int (*pQuadOffsetMin)[2]` if you want the size checking 15:10 < bridge> Ah, like this, hm I probably would do `int (*paQuadOffsetMin)[2]` if you want the size checking 15:12 < bridge> (Yours doesn't enforce the size really) 15:15 < bridge> I don't think we do it in ddnet code but `std::array &aQuadOffsetMin` is the modern way 15:18 < bridge> yeah I now know as well, we could touch that here 15:21 < bridge> Or `int (&aQuadOffsetMin)[2]` now that I think about it, might even be prettier 😄 15:21 < bridge> I think the std::array is prettiest ^^ we use it in the same file as well 15:22 < bridge> Do we use `std::array` in ddnet code though? I don't think so 15:22 < bridge> bet? 15:22 < bridge> like I bet it is in for 10€ donation 15:22 < bridge> Too late to bet, I checked 15:22 < bridge> Jupman used a lot of them in the gfx stuff it seems 15:23 < bridge> I would have won anyway, because I put it in as well xD 15:23 < bridge> like this is how I build the lookup table for tex coordinates: https://github.com/ddnet/ddnet/blob/d4b7d08b8818c5ead3c1a2b112af1a3ef92e4732/src/game/map/render_layer.cpp#L55 15:24 < bridge> (I find `std::array`s to be pretty ugly in general, especially the way they just don't mesh with normal arrays at all) 15:25 < bridge> Like passing a normal array to a function expecting a `std::array` has to be the ugliest thing ever 15:25 < bridge> in this case I needed an array which is fully filled and known on compile time 15:32 < bridge> @chillerdragon if we get this one through, I am going to implement quad clustering and then it's gg for rendering, the graphics card can only handle 256 ungrouped quads at a time anyways, removing unclipped clusters will speed up ⚡ 15:33 < bridge> blazingly fast linear gameplay 15:33 < bridge> the more vram you save, the more skins you can load 🧠 15:38 < bridge> I should do some benchmarks again between 18.0, 19.0, 19.1, 19.3 and this, will do when 19.4 comes out, so people actually upgrade 15:43 < bridge> not to be the guy, but rust arrays/slices are better 15:44 * bridge caughs in python 15:44 < bridge> do u know if python uses gmp for its unbounded big numbers? 15:44 < bridge> the only good thing python has is arbitrarly size nums 15:44 < bridge> but i think they arent performant xd 15:45 < bridge> java also has BigIntegers but performance is also in the mud 15:45 < bridge> imagine just a vector of bytes and you make it bigger on demand and do bit operations on it's normal integer operations on the full vector 15:46 < bridge> I bet Boost has something like that 15:46 < bridge> gmp is the bigint library 15:46 < bridge> most perfomant 15:46 < bridge> they use asm too 15:46 < bridge> flint maybe 15:46 < bridge> https://flintlib.org/ 15:50 < ws-client> **** https://zillyhuhn.com/cs/.0dc632e9-5de4-4334-8191-5db4b63c765b.png 15:50 < ws-client> **** @ryozuki u very much are "that guy" 15:50 < bridge> i know i was making a joke 15:50 < bridge> there is a rule, that you can ignore everything before a "but" 15:50 < ws-client> **** fonni 15:50 < bridge> u dummo 15:50 < ws-client> **** xd 15:51 < ws-client> **** @Assa ye its so true 15:52 < ws-client> **** if you have aura you can predict the "but" while someone is being suspiciously nice 15:52 < ws-client> **** and then you say that nothing before a but means anything. Then they continue talking and will stutter when the but comes and you instantly devalued their entire statement 15:52 < ws-client> **** ez conversation pvp skills 15:53 < bridge> not with me my friend 15:53 < bridge> there is no "but", only facts 15:53 < ws-client> **** only works in vocal conversation i guess tho 15:55 < bridge> chicken but 15:55 < ws-client> **** @Assa i think u need another maintainer for https://github.com/ddnet/ddnet/pull/10728 15:55 < ws-client> **** idk wat any of that stuff is 15:56 < bridge> @chillerdragon you know what a group clip is? 15:56 < ws-client> **** yes 15:57 < ws-client> **** i think xd 15:57 < bridge> we already do the same thing for quads, fully automatic 15:57 < ws-client> **** u mean the basic editor clipping feature? 15:57 < bridge> yes 15:57 < bridge> you have a clip region, X, Y, W, H, and if you're outside of it with your screen it doesn't get rendered 15:57 < ws-client> **** do you use kaffeine skin btw? 15:58 < ws-client> **** yes that much i get about how the editor currently works @Assa but nothing about ur pr xd 15:58 < ws-client> **** what even are grouped or ungrouped envelopes? 15:59 < bridge> I use this one https://discord.com/channels/252358080522747904/295908390956433410/1396765951218946108 15:59 < ws-client> **** discord link 15:59 < ws-client> **** gg 15:59 < ws-client> **** i saw ur skin the pr clip 15:59 < ws-client> **** reminded me of kaffeine 16:00 < bridge> head protection is important, especially when things are under construction 16:00 < ws-client> **** isnt ``std::shared_ptr`` reference counting or something like that? So basically garbage collector? are you rewriting the client in blazingly slow C++ java ah bloat lang? road to 0fps? 16:01 < bridge> A grouped quad layer is, when all the quads have the same envelops and same offsets, this can be used for a huge optimization, see #10340 16:01 < bridge> https://github.com/ddnet/ddnet/pull/10340 16:01 < ws-client> **** i guess i should learn some C++ to step up my maintainer game 16:02 < bridge> road to 0fps? Are you insulting me? everything I did so far improved fps, you improve fps by reducing gpu calls 16:02 < ws-client> **** @Assa is grouped quad and grouped envelope the same or what? 16:02 < ws-client> **** so its not user facing but only technically internally for optimization? 16:03 < ws-client> **** @Assa everytime I see C++ I panic. All the ``std::`` stuff is not the holy C I know and love xd 16:03 < bridge> A grouped quad layer, all the quads have the same envelopes, so you can save the envelope in the group instead of checking an individual quad 16:03 < bridge> yes 16:03 < ws-client> **** i need the peepo with a cross emoji 16:03 < ws-client> **** is there one? 16:04 < bridge> then I am the wrong contributer for you, I round 1000 / 3 to 666 🤘 16:04 < bridge> then I am the wrong contributer for you, I round 2000 / 3 to 666 🤘 16:05 < ws-client> **** dw i am also satanist 16:05 < ws-client> **** but i like the words unholy and ungodly smh 16:05 < ws-client> **** maybe because i am a satanist 16:05 < bridge> ah yes, where a single global namespace can ruin your entire project 16:06 < bridge> holy C :Pepega: 16:07 < ws-client> **** pff who needs namespace when u have prefixes 16:07 < bridge> chiller im doing an ircbot in rust so there is no monopoly 16:07 < bridge> are u cool with that 16:07 < ws-client> **** of course 16:07 < ws-client> **** all hail the distributed anarchy 16:07 < bridge> xd 16:08 < bridge> yes garbage collector, but this prevents me needing to save the instance in the renderer class 16:08 < ws-client> **** omg java client 16:08 < ws-client> **** @Assa you might enjoy contributing here https://github.com/coffeeworlds/coffeeworlds 16:09 < bridge> xD 16:09 < bridge> java is now one of my worst languages, I learned 1.8 and never needed it again since ever 16:10 * bridge my worst is rust 16:10 < ws-client> **** this is blazingyl modern java dw 16:10 < bridge> still waiting for a workshop at work eventually :justatest: 16:10 < ws-client> **** its epic 16:13 < ChillerDragon> sometimes i wonder if fstd is okay 16:14 < ChillerDragon> his paste service is still up and he is still on irc 16:14 < ChillerDragon> but he ignores my pings ;-; 16:14 < bridge> compiling the irc bot 16:14 < bridge> only 177 dependencies 16:14 < ChillerDragon> common rust L 16:14 < ChillerDragon> potatbot: o/ 16:15 < bridge> i need another prefix 16:15 < bridge> @chillerdragon I can explain you my PR all day if it helps you 16:15 < ChillerDragon> !help 16:15 < chillerbot> https://github.com/ChillerDragon/ddnet-bot-irc eth0=192.168.178.22 commands:!remind [message], !mods, !merge [pr id], !whoami, !ping, !p (hex traffixc), !sh (bash), !roll ?[from|to] ?[to] 16:15 < ChillerDragon> @Assa u helped already thanks 16:15 < bridge> potat pls ping 16:15 < potatbot> pong 16:15 < ChillerDragon> but i give other slowbob maintainers some time first 16:15 < bridge> lol gg first try 16:15 < bridge> im pro dev 16:15 < ChillerDragon> potat pls ping 16:15 < ChillerDragon> L 16:15 < bridge> wtf 16:15 < bridge> potat pls ping 16:15 < potatbot> pong 16:15 < bridge> other maintainers prob have work 😛 16:16 < ws-client> **** L workers 16:16 < ws-client> **** crazy 16:16 < ws-client> **** potat pls ping 16:16 < bridge> i guess i have protection from chillerdragon 16:16 < bridge> hmmm 16:16 < ws-client> **** <:feelsbadman:391614770303991808> 16:16 < bridge> its weird i even wrote tests for parsing messages 16:16 < bridge> can we normalize not using #developer as a do all channel xd 16:16 < bridge> it should have worked 16:16 < ws-client> **** @melon yes pls bridge #off-topic to irc 16:16 < bridge> uh 16:16 < bridge> yes 16:16 < bridge> its bridged in matrix, use that 16:17 < ws-client> **** ewww 16:17 < bridge> where a melon? 16:17 < bridge> matrix hard 16:17 < ws-client> **** matrix ass 16:17 < bridge> :pepeW: 16:17 < ws-client> **** @melon go host matrix to irc bridge 16:17 < bridge> I wish we had an dev important channel, where only contribs and maintainers and the github bot would be able to post, so you can ping fore review or ask important things 16:17 < bridge> currently this feels more like dev-topic 😄 16:17 < ws-client> **** as long as contrib can post u have a spamming chilor 16:17 < ws-client> **** so u fked either way 16:17 < bridge> maintainer btw 16:17 < ws-client> **** <:justatest:572499997178986510> 16:18 < bridge> potat pls stats 16:18 < potatbot> issues: 779, pull requests: 74 16:18 < ws-client> **** epic 16:18 < bridge> where a potat 16:18 < ws-client> **** ono 74 16:18 < ws-client> **** what happend to 69 16:18 < bridge> there was no 69 16:18 < ws-client> **** .-. 16:19 < ws-client> **** @kollpotato i need to requests stats too! i need it to be motivated to reach 69 goal 16:19 < bridge> where a chillerdragon 16:19 < ws-client> **** i need a deen 16:19 < bridge> where a deen 16:19 < bridge> chiller stop hunting 69 PR's 16:19 < bridge> hunt 420 issues 16:19 < bridge> there was, for 10 minutes 16:19 < bridge> oh xd 16:20 < ws-client> **** @melon i guess everything important just belongs on github 16:20 < ws-client> **** this is funzone channel 16:20 < bridge> chillerdragon: this is for issues https://api.github.com/search/issues?q=repo:ddnet/ddnet+type:issue+state:open and this for prs https://api.github.com/search/issues?q=repo:ddnet/ddnet+type:pr+state:open 16:20 < ws-client> **** ofc the fun stops as soon as you start to question branch naming 16:20 < bridge> fun stops when heinrich comes back to discord 16:20 < ws-client> **** @melon nonono we do 666 issues 16:20 < ws-client> **** 420 is impossible 16:21 < bridge> do not question it, especially from me :justatest: 16:21 < ws-client> **** @kollpotato what do i want with api endpoint do u want me to code it? 16:21 < ws-client> **** no way 16:21 < ws-client> **** fix ur bot to support me 16:21 < ws-client> **** or riot 16:21 < bridge> well I try to do them systematically, but I continue to typo and topics sometimes change in branches 16:22 < bridge> i thought u wanted to have it in ur bot too 16:22 < ws-client> **** no 16:22 < ws-client> **** i want to just use your bot 16:22 < bridge> i dont have hosting 16:23 < bridge> it will be on when im on 16:23 < ws-client> **** good enuff 16:23 < bridge> or until i get banned my admins 16:23 < ws-client> **** rip 16:23 < bridge> i finished linear 100 times i hope i can bribe louis 16:23 < kolpotat> potat pls ping 16:24 < bridge> yeah it is just ded 16:24 < ws-client> **** with heinrich being afk your bot should be safe 16:24 < bridge> does he check irclogs 16:24 < bridge> does anyone even check irclogs xd 16:24 < bridge> !roll 16:24 < chillerbot> 45 16:24 < ws-client> **** i dont think so 16:24 < ws-client> **** @kollpotato i do 16:24 < bridge> oh no admin 16:24 < ws-client> **** i grep them sometimes 16:24 < bridge> yeah for the sacred knowledge 16:24 < ws-client> **** louis be like: they see me rollin 16:25 < bridge> xdddd 16:27 < bridge> wtf tests dont fail 16:27 < bridge> how is it possible 16:27 < kolpotat> potat pls stats 16:28 < kolpotat> potat pls ping 16:30 < kolpotat> potat pls ping 16:31 < bridge> oh im retarded 16:32 < bridge> im trying to parse a nickname as part of the message 16:36 < bridge> test 16:37 < bridge> true 16:43 < bridge> afaik, cpython has its own implementation 17:04 < ws-client> **** potat pls ping 17:05 < bridge> its offline rn 17:05 < bridge> i was scared of admins 17:06 < kolpotat> potat pls ping 17:06 < potatbot> pong 17:06 < bridge> omgggg 17:06 < bridge> potat pls stats 17:06 < potatbot> issues: 779, pull requests: 74 17:06 < bridge> chiller can u try again 17:06 < ws-client> **** potat pls ping 17:07 < ws-client> **** potat pls send your source code 17:07 < bridge> oh no 17:07 < ws-client> **** potat pls ping 17:07 < chillerbot> pong 17:07 < ws-client> **** ez 17:08 < bridge> why when i start my bot admins go online 17:08 < bridge> xd 17:08 < ws-client> **** ono 17:08 < bridge> i just have to figure out how to parse ur ws-client message 17:08 < ws-client> **** fast we have to say something developer 17:08 < ws-client> **** entities 17:08 < ws-client> **** nullpointer 17:08 < bridge> quic 17:08 < ws-client> **** quads rendering 17:08 < ws-client> **** accounts 17:08 < bridge> ddnet web beb bob 17:09 < bridge> Can you people stop deploying random bots pls, thanks 17:09 < ws-client> **** https://zillyhuhn.com/cs/.151f9aa9-f1e0-4c54-96b9-d0e7ccf9b909.png 17:09 < ws-client> **** u know the format right? 17:09 < ws-client> **** ono lerato mad 17:09 < ws-client> **** run 17:10 < bridge> we need off topic for irc 17:10 < ws-client> **** fr 17:10 < ws-client> **** @kollpotato come to https://chat.zillyhuhn.com/ 17:10 < ws-client> **** u have off-topic there 17:10 < bridge> where does it go 17:11 < ws-client> **** irc 17:11 < bridge> Just create a channel? Quakenet has much space 17:11 < ws-client> **** xd 17:11 < ws-client> **** @learath2 but being alone is scary 17:11 < ws-client> **** all my homies are on discord 17:12 < bridge> It seems the channel on libera is not linked up to the discord, nor the quakenet channel 17:12 < bridge> Curious why we didn't just completely move over to libera or just not have a channel on libera 17:12 < ws-client> **** hm? 17:12 < ws-client> **** quakenet is linked to discord 17:12 < ws-client> **** i am sending this from quakenet 17:13 < ws-client> **** ah u mean libera is disconnected 17:13 < bridge> quakenet is, libera isn't 17:13 < ws-client> **** ye idk 17:13 < ws-client> **** libera cring 17:13 < ws-client> **** same as freenudes was 17:13 < ws-client> **** quakenet is the goated gaming irc 17:13 < bridge> no u 17:13 < ws-client> **** we probably miss the occasional gigachad dev chatting into libera xd 17:14 < ws-client> **** https://zillyhuhn.com/cs/.0be87797-61b4-42b9-ba69-eba1e86c6530.png 17:14 < ws-client> **** F this libera chatter 17:15 < bridge> i can try to figure out how to make a bot in matrix 17:15 < ws-client> **** did swee ever reach us? 17:15 < bridge> whats swee 17:15 < ws-client> **** the guy who chatted into libera 17:15 < ws-client> **** where nobody listened 17:16 < bridge> he looks like he'd be a good dev, if only we noticed he existed 17:16 < ws-client> **** faak 17:16 < ws-client> **** WE NEED LIBERA FIXED ASAP 17:16 < bridge> can i do bot then 17:17 < bridge> He seems to have highly distributed personal portfolio page 17:17 < ws-client> **** i like this guy 17:17 < ws-client> **** we did really miss him didnt we 17:17 < bridge> and seems to draw furry art, truly never misses 17:17 < ws-client> **** he joined a dead irc thinking the game is dead like many other projects 17:17 < ws-client> **** fak 17:17 < bridge> https://swee.codes/ 17:18 < bridge> is this the guy? 17:18 < bridge> Yeah, hope he comes back around and finds us in discord or quakenet 17:18 < ws-client> **** @kolpotat i signed up xd https://git.swee.codes/ChillerDragon 17:18 < ws-client> **** @learath2 nope we broke the bridge its on us to find him! 17:18 < bridge> xddd 17:18 < bridge> he is also based 17:18 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1407745730315161791/nojs.png?ex=68a738e0&is=68a5e760&hm=5506cd20c70f331faa60642aebdd494779776c40f818cbbe16ba763ed7113d2b& 17:19 < ws-client> **** https://zillyhuhn.com/cs/.2a1efd80-8163-47c9-b2be-cb01af086b84.png 17:19 < ws-client> **** fr 17:19 < ws-client> **** wanted to send same 17:19 < ws-client> **** i love this guy 17:19 < bridge> huh he is 14 17:20 < bridge> Ah, he did find us here 17:20 < ChillerDragon> he did? 17:20 < bridge> yea 17:20 < ChillerDragon> o 17:20 < bridge> i searched messages 17:20 < ChillerDragon> i tried to grep irclogs 17:20 < ChillerDragon> didnt find 17:20 < bridge> Now he just needs to work on accounts 17:20 < ChillerDragon> xd 17:21 < bridge> he is registered on every social media app 17:21 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1407746436283629618/image.png?ex=68a73989&is=68a5e809&hm=fb25aa3c97b06bf0bdd167a86859d41d169ae0dd4a43008db12835be947d656d& 17:21 < bridge> go find him 17:22 < bridge> Seems he only ever sent a message in #bugs , I don't think you guys have that available on matrix 17:22 < ws-client> **** https://p.swee.codes/sweezeroquotes/cd977035352e49beb6611f051b450cf6 17:22 < ws-client> **** lmao 17:23 < ws-client> **** @learath2 we have plenty of bugs on matrix 17:24 < bridge> he is still on this server ._. 17:26 < bridge> chiller why did u even remember him 17:26 < bridge> what did he do 17:41 < bridge> @chillerdragon for teesmash teams do i make a ttsmash gamemode? 17:43 < bridge> ohh 17:43 < bridge> https://git.swee.codes/ 17:43 < bridge> it uses forgejo nice 17:43 < bridge> ill use it 17:43 < bridge> ill setup forgejo on my home server 17:46 < bridge> and why does compiling a gamemode take so long 17:46 < bridge> its 30sloc 18:05 < bridge> здравствуйте всем подскажите что делать если забанили за ник уже на очень долго 18:06 < bridge> first of all, write english so we can help you 18:07 < bridge> second, open a ticket at https://discord.com/channels/252358080522747904/1124657351442579486 18:07 < bridge> Hello everyone, tell me what to do if you've been banned for a nickname for a very long time 18:09 < bridge> write a ticket, press ban appeal and explain your situation 18:12 < bridge> if the nickname is banned get another nickname 18:17 < bridge> for some reason i feel like there was at one point such a thing as half a hp 18:17 < bridge> So I implemented quad clustering on a testbranch, it in some cases it works exceptionally well, in others I see barely a difference 18:18 < bridge> Now prove it's performance gain 18:18 < bridge> Now prove its performance gain 18:18 < bridge> that's always so much hassle, need to have a demo, collect data beofre and after, compare data 🙁 18:19 < bridge> conceptually it should be faster, because I am culling more quads 18:19 < bridge> overhead comes if the culling is not working because I still need to render all 18:20 < bridge> Theoretical proof* 18:23 < bridge> Is the IP address required? 18:24 < bridge> ?? 18:25 < bridge> If you're asking about how bans work you should go to #questions 18:26 < bridge> If you're trying to use a banned nickname it's very unlikely that it'll get unbanned 18:28 < bridge> omg a deen 18:28 < bridge> DEEN A HERE 18:29 < bridge> :deen_star: 18:30 < bridge> why does hammer damage multiple times? 18:30 < bridge> does it have an "explosion" 18:46 < bridge> this is extremely localized, like on Abyss at the start - 100 FPS, anywhere else + 500 fps 18:46 < bridge> I can't even do a proper benchmark, I'd need to benchmark multiple demos of proper gameplay 18:49 < bridge> what I find interesting, it stabelizes fps a lot 18:51 < bridge> left is clustering, right is 19.3, and the clustering graph is much smoother 18:51 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1407769141309341716/screenshot_2025-08-20_18-50-08.png?ex=68a74eae&is=68a5fd2e&hm=023f01703c3dd91ffdd53787f1df1d1a30cd8a695bbb390c674bce8ba1018c6e& 18:52 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1407769141875838996/screenshot_2025-08-20_18-50-58.png?ex=68a74eae&is=68a5fd2e&hm=fb2dee8d3585ff405ac13ca4a324718207fdf930e93577f45f31cba3c263c196& 18:52 < bridge> oh maybe this is because robyt changed how the graphs render 18:52 < bridge> can't even compare that <.< 18:59 < bridge> So you decreased fps by 100 in some cases :ganyu_scared: 19:01 < bridge> this is the crux of culling and optimizing 19:02 < bridge> like you implement more culling, but the culling doesn't prevent anything from rendering in some cases, so it's just overhead then 19:04 < bridge> I could now play with some render distances, like split a quad cluster if the start and end quad are very far away from each other 19:31 < bridge> @chillerdragon wake up how do i set skin colors 19:31 < bridge> im just egtting gray D: 19:32 < bridge> is it supposed to be lsh? 19:34 < bridge> lhs? Where did you ever see lhs used for anything? 19:34 < bridge> idk!?!?! 19:34 < bridge> whatever i try doesnt work and my brain is so squishy i cant figure out the relation 19:35 < bridge> What are you trying to work out? Teeworlds colors? 19:35 < bridge> sever ovveriding skin colors 19:35 < bridge> its just "int" 19:35 < bridge> It's packed HSL, but you are not directly supposed to manipulate it anyway 19:35 < bridge> We have functions for it in `color.h` 19:36 < bridge> pPlayer->m_TeeInfos.m_ColorBody = Color.P``ack() 19:36 < bridge> `pPlayer->m_TeeInfos.m_ColorBody = Color.Pack()` 19:37 < bridge> where Color is a ColorHSLA 19:37 < bridge> left hand side 19:37 < bridge> thats lhs not lsh 19:37 < bridge> !!! 19:37 < bridge> `Color = ColorHSLA((float)(10 - pCharacter->Health()) / 10.0f , 1.0f, 0.5f);` 19:38 < bridge> IM A MORON 19:38 < bridge> hi A MORON i'm melon 19:38 < bridge> oh wait no website is moron 19:38 < bridge> :peepoSpreadsheet: 19:38 < bridge> i specifically googled hsl color picker i got hwb 19:38 < bridge> x-x 19:38 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1407780958039576678/image.png?ex=68a759af&is=68a6082f&hm=58f037eaccb42c94ab98c2f51fdf59e4bad85c1032c1f24a541c19b533d18375& 19:39 < bridge> hue, light = 1.0f, sat = 0.5f 19:39 < bridge> thats what its meant to be 19:39 < bridge> thats what i got 19:39 < bridge> so why is it GRAAAY 19:40 < bridge> ermm 19:40 < bridge> it works 19:40 < bridge> im so pro 19:49 < bridge> I now have 2 magic numbers which magically enhance the fps sometimes 20:10 < bridge> I 3D printed something at work this week 20:10 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1407789001682980904/PXL_20250820_131121367.jpg?ex=68a7612d&is=68a60fad&hm=585b07d218935fd999dbb6ee884cc62aef0f615ab16e92f4d2b9cc0185d1ffff& 20:11 < bridge> Can you 3d print me a bed? 20:11 < bridge> A total of 40 hour printing time and 5 parts clipped together to charge iPads 20:11 < bridge> Ok gimme 400€ and 3 months 20:11 < bridge> Ok 20:11 < bridge> Gimme your paypal 20:13 < bridge> i can give u 2 burgers and we have a deal 20:18 < bridge> A total of 15x7 hour printing time and 5 parts clipped together to charge iPads 20:35 < bridge> it works tho... 20:35 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1407795187324948601/6487f5cea6904ae8.png?ex=68a766f0&is=68a61570&hm=68dfeb3735220ed415f1bed92566b24f519a776297929fd1043f008f372836c0& 20:35 < bridge> a bit ugly 20:37 < bridge> so lovely 20:39 < bridge> just a bit ugly 20:44 < bridge> idk if this looks good 20:44 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1407797507882356767/730e5bd35bc991fe.png?ex=68a76919&is=68a61799&hm=1a215fc819c2e29cd08ae0fd5de2eed7308918e8c1789826a05575eb17b47586& 20:45 < bridge> what if i already have a server running 20:45 < bridge> and i need another one 20:45 < bridge> will the button be there 20:46 < bridge> only shows if none is found 20:47 < bridge> at least satisfies my usecase 20:47 < bridge> imo it should be available at all times 20:57 < bridge> you still have the start server option on the mainpage, it also doesn't magically spawn 2 local servers, like for what? 20:57 < bridge> I think it looks good, at least good enough 👍 20:59 < bridge> i thought there was a talk about removing run server button from the main menu 20:59 < bridge> @pioooooo maybe I'd change the text to "start server" like on the mainpage and not connect a player to it immediately 20:59 < bridge> why? I like it, it's simple, I use it a lot (really!) 21:00 < bridge> no idea maybe i hallucinated 21:00 < bridge> on the other side, maybe the mainpage button should be start and connect to a local server 21:00 < bridge> on the other side, maybe the mainpage button should be start and connect to a local server and immediately connect you 🤔 21:00 < bridge> because why click this button if you don't want to connect to it anyway 21:01 < bridge> I wonder if there should be a "server configuration menu" like in other games 21:01 < bridge> like a map or gamemode selector 21:01 < bridge> thinking of warcraft 3 21:03 < bridge> Hi guys, in short, I was playing ddnet, I went away for literally 10 minutes, I come and they gave me a ban, although I don’t have any cheats, I’m completely clean, is there any way to unban me, because I was standing there AFK, I come and this is the picture 21:03 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1407802213132144670/image.png?ex=68a76d7b&is=68a61bfb&hm=af0787648632e018898176db95d9fbe0177a0aefb04f8c07d81fd08437b46b41& 21:03 < bridge> Hellou :3 21:03 < bridge> do ban appeal in #✉-create-a-ticket 21:04 < bridge> oh if you lied I'll personally make your ban longer 21:04 < bridge> but u are not a mod 21:04 < bridge> doesn't stop me 21:07 < bridge> can you clay the ticket? 21:08 < bridge> wat 21:09 < bridge> wat 21:10 < bridge> I say look at the unban ticket, I was banned for nothing 21:17 < bridge> oh didn't see chat 21:17 < bridge> put it as is for now 21:18 < bridge> I went through the list and this are the results: 21:18 < bridge> - Mud: 19.3: ~800 fps, Nightly-w-quadclusters: 4500 fps 21:18 < bridge> - Gummy: 19.3: 4300++ fps, Nightly-w-quadclusters: 4500++ fps (hard to tell very unstable) 21:18 < bridge> - Atomic: 19.3: 4200 fps, Nightly-w-quadclusters: 5K+++ (the game is unsure but a lot) 21:18 < bridge> - Victory 2: 19.3 1300 fps, Nightly-w-quadclusters: 3400 fps (what the heck is this map doing?) 21:18 < bridge> - run_world_war_zero: 19.3: <700 fps , Nightly-w-quadclusters: 4600 fps (hard to tell, bit unstable) 21:18 < bridge> 21:18 < bridge> it appears only Abyss seems not to benefit a lot :thonk: the rest looks extremly good 21:20 < bridge> run_world_war_zero on nightly-w-quadclusters but ogl1: 300 fps, deep mud 21:20 < bridge> run_world_war_zero on nightly-w-quadclusters but OpenGl1: 300 fps, deep mud 21:29 < bridge> That's actually quite interesting that Abyss seems to be the only regression. But those numbers look very good 21:29 < bridge> GL1 regressing is a little concerning. People who have to use GL1 already use toasters 21:29 < bridge> I am currently doing a draft PR if you want to take a look 21:30 < bridge> Could you check whether the gl1 regression is across the board independent of map? 21:30 < bridge> this is not a regression 21:31 < bridge> ogl1 did never go much up 21:31 < bridge> it doesn't benefit from all of this optimiztions 21:31 < bridge> this optimizations work so well, because I minimize gpu calls, which I can't do for ogl1 21:34 < bridge> Ah I may have misunderstood you there, I thought you meant gl1 lost 300fps there 21:34 < bridge> no it **has** 300 fps :justatest: 21:35 < bridge> this sounds so weird i know, 4.6K on vulkan vs 300 fps 21:46 < bridge> how do i set who the killer was, just using Die() with a custom id doesnt show the kill msg 21:46 < bridge> NVM I AM MORON 21:50 < bridge> hoiwdo i make the kill weapon a hook 21:50 < bridge> or is that a client feature 21:51 < bridge> this is a client feature 21:51 < bridge> you kill sb else with "weapon_world" 21:51 < bridge> but ddnet client should just show nothing as weapon 21:52 < bridge> i see, i think there should be a specific "hook" weapon 21:53 < bridge> to distungish between magic and hooking them into spikes 21:54 < bridge> idk how infclass client does it 21:54 < bridge> i hope it isnt just using the next items downwards 21:54 < bridge> and has picked some random numbers to avoid collision with future 21:54 < bridge> or even better different netmsg 21:54 < bridge> i couldnt be bothered to check tho lmao 21:58 < bridge> Instead of reading the FPS graphs (which influence FPS), you can start the client with `connect localhost; benchmark_quit 30 benchmark_mapname.txt` while a local server has that map to test on it. Then let the client run for 30 seconds without touching it and the frametimes will be written to the file. 22:01 < bridge> I know, I made a benchmark guide in one of my other PRs 22:02 < bridge> but my time is limited, it's currently only a draft PR and real benchmarks with graphs are hard and take time 22:02 < bridge> especially since it depends on another one which is not merged 22:05 < bridge> @kebscs if you're interested, I made a small benchmark method thing [here]() 22:05 < bridge> Maybe we should write a small script to generate benchmarks on a list of maps 22:06 < bridge> it's best to benchmark on demos btw, because you always render the same things 22:06 < bridge> Something like `./quick_bench.py "Multeasymap" "Back in Time 2"` 22:06 < bridge> It could support demos too, hm I might give it a quick go 22:07 < bridge> and then? You also need older clients to compare 22:07 < bridge> hmm actually, with an automatic download script 🤔 22:08 < bridge> just rebuild them no? 22:10 < bridge> maybe 22:25 < bridge> He chatted on dead irc 22:26 < bridge> Yea sounds reasonable 22:27 < bridge> i dont get pinged in embeds 22:27 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1407823376948662322/image.png?ex=68a78131&is=68a62fb1&hm=671a79fffcbef31e1dbe73e8a8ad4a243cc318eea2eb817ba7b3fd608e6d646c& 22:27 < bridge> weird 22:29 < bridge> @chillerdragon for spike kill sound do i steal the fng config? 22:29 < bridge> ```cpp 22:29 < bridge> // do sacrifice flag sound 22:29 < bridge> if(g_Config.m_SvFngSpikeSound == 1) 22:29 < bridge> { 22:29 < bridge> CClientMask Mask = CClientMask().set(pKiller->GetCid()); 22:29 < bridge> for(int i = 0; i < MAX_CLIENTS; i++) 22:29 < bridge> { 22:29 < bridge> if(!GameServer()->m_apPlayers[i]) 22:29 < bridge> continue; 22:29 < bridge> 22:29 < bridge> if(GameServer()->m_apPlayers[i]->GetTeam() == TEAM_SPECTATORS && GameServer()->m_apPlayers[i]->SpectatorId() == pKiller->GetCid()) 22:29 < bridge> Mask.set(i); 22:29 < bridge> } 22:29 < bridge> GameServer()->CreateSound(pKiller->m_ViewPos, SOUND_CTF_CAPTURE, Mask); 22:29 < bridge> } 22:29 < bridge> else if(g_Config.m_SvFngSpikeSound == 2) 22:29 < bridge> { 22:29 < bridge> CClientMask Mask = pChr->TeamMask(); 22:29 < bridge> Mask.reset(pKiller->GetCid()); 22:29 < bridge> GameServer()->CreateSound(pChr->GetPos(), SOUND_CTF_GRAB_PL, Mask); 22:29 < bridge> GameServer()->CreateSoundGlobal(SOUND_CTF_CAPTURE, pKiller->GetCid()); 22:30 < bridge> } 22:30 < bridge> ``` 22:35 < bridge> Yea that should be renamed and shared 22:37 < bridge> @chillerdragon breaking config change!? 23:25 < bridge> chillerdragon: 23:25 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1407838091661672579/Mixi4Karolina_2025-08-20_21-38-41.demo?ex=68a78ee5&is=68a63d65&hm=de7274c2189a9978a8738150e78e048839859701c7f183dc5e605d395efb02b8& 23:32 < bridge> @chillerdragon 23:32 < bridge> ``` 23:32 < bridge> Solly's Server 23:32 < bridge> Address: ddnet://87.106.71.207:1623 23:32 < bridge> My IGN: bun bun 23:32 < bridge> ``` 23:50 < ws-client> **** yes its fine @Solly (bun bun) 23:50 < bridge> @chillerdragon u need to play w me 23:50 < ws-client> **** i break stuff all the time so far 0 users complained 23:50 < ws-client> **** i am playing gores rn 23:50 < bridge> darn 23:51 < bridge> wow u can do hard gores 23:51 < ws-client> **** im top1000 player 23:51 < bridge> how do i do hard gores 23:51 < ws-client> **** chillerbot-zx 23:51 < bridge> erm thats not allowed 23:51 < ws-client> **** no proof 23:52 < bridge> can u kick someone the server is full 23:52 < ws-client> **** ur welcome 23:52 < bridge> ah nvm