02:40 <+bridge> i've never seen a Qt bug like this before 02:40 <+bridge> https://cdn.discordapp.com/attachments/293493549758939136/1250973063630032976/image.png?ex=666ce2f4&is=666b9174&hm=a1b5019a585072d387f54b216f3a38c8456d63f012f608366673e6e34a14cbf3& 02:40 <+bridge> i clicked ok to close the dialog and then somehow the contents of the dialog were blitted onto the center of the parent window 02:40 <+bridge> and the whole thing is unresponsive now 03:31 <+bridge> amazing 03:31 <+bridge> https://cdn.discordapp.com/attachments/293493549758939136/1250985858228813946/awesome.mp4?ex=666ceede&is=666b9d5e&hm=76c4b22494ec5ae6c6bf7ef4deb290db07e8f4d62e14f2f6bef976c86df720fe& 06:34 <+bridge> gm 07:02 <+bridge> can we have practice back now 🥺 07:04 <+bridge> <0xdeen> Yes 07:04 <+bridge> <0xdeen> I'll reenable it on all empty servers in a few minutes 07:47 <+bridge> morning 09:29 <+bridge> Somebody add switch tile for envelopes pls 🙏 10:22 <+bridge> may be a dumb question but has anyone bothered to write a python wrapper for the client? 10:24 <+bridge> is it possible to find the card I played on? 10:26 <+bridge> it's just that yesterday we played today I wanted more, but I went through a team member and he doesn't often go online and probably doesn't remember the name 10:32 <+bridge> it is green-orange in color, somehow for professionals 10:52 <+bridge> what's your ingame name? 11:25 <+bridge> satorow? 11:43 <+bridge> <♂S1mple♂> This one? 11:43 <+bridge> <♂S1mple♂> https://cdn.discordapp.com/attachments/293493549758939136/1251109855167647796/Screenshot_2024-06-14-12-42-17-913_com.android.chrome.jpg?ex=666d6259&is=666c10d9&hm=c3ce33b6cef1faa701ab10f7b911270b56ba7f0c7a6fac9fe2f8cdf31791998d& 11:44 <+bridge> <♂S1mple♂> Or any of these you played yesterday 11:44 <+bridge> <♂S1mple♂> https://cdn.discordapp.com/attachments/293493549758939136/1251110047828938782/IMG_20240614_124405.jpg?ex=666d6287&is=666c1107&hm=9600f49fc7c1460c9383bdb9ec1832df182e09a3a37bce7f77fa0e3ff67e620d& 12:05 <+bridge> yes 12:09 <+bridge> thanks 13:32 <+bridge> What does a python wrapper do? 13:33 <+bridge> I have written a simple client in python but it’s not a wrapper 13:33 <+bridge> Then there is the china python project that patches a normal client but it’s also not a wrapper 15:00 <+bridge> why do you need it 15:33 <+bridge> @gerdoe I wanna do some reinforcement learning 15:34 <+bridge> doing it server side sounds more likely to be good xd 15:55 <+bridge> ChillerDragon: does your python client handle physics same way as actual client 15:55 <+bridge> in that case then it could probably be used for reinforcement learning 16:56 <+bridge> what a client for chatting using webhook u use 17:08 <+bridge> Follow up to my question yesterday: How to make more than 255 teles? Is it only server code? (And map editor). And is it expensive regarding server performance? 17:12 <+bridge> If it‘s not too hard I want to try making a gamemode with a lot of teles. Hoping it‘s possible without client adaptions. 17:13 <+bridge> For [Fun] maps with logic. Lile braintee, tee calculator, teec tac toe etc. 17:16 <+bridge> First you’ll need to figure out where to store info about the extra teles. We only have that one byte, one idea I had was to use rotations, that should give you 4*255 more, and perhaps mirrors too, that would give you another 2x. It is server only and editor only, but in the future we want to have prediction, so it might not always interact well with the client 17:19 <+bridge> Or well since it will never work with normal ddnet, perhaps just add a new tele tile with an int instead of just one byte 17:20 <+bridge> Ah int wont fit we use tele type too. Maybe an uint with the highest bit as type 18:10 <+bridge> can u add a setting that allows to choose the target folder for screenshots? 18:10 <+bridge> so i dont have to go to the appdata for it 18:11 <+bridge> maybe make a screenshot folder in the ddnet folder for default target folder 18:21 <+bridge> You can create a custom "appdata" folder. 18:21 <+bridge> I created a folder called `config_directory` directly inside of the DDNet folder and modified `storage.cfg`. 18:21 <+bridge> Change the first line (`$APPDATA`) to `C:\YourPath\to\this\folder` 18:36 <+bridge> Have you tried to symlink the folder? 18:38 <+bridge> You mean a tele wirh number 1 is a different tile than a tele with number one rotated by 90 degrees? 18:52 <+bridge> it's not a different tile, it's just a flag that's set which identifies it that way 18:53 <+bridge> So it could be handled seperately 18:58 <+bridge> Nice 19:02 <+bridge> Заходи, тебя ждут discord.gg/gametrash 19:20 <+bridge> Think of it as 6 extra bits you can use, 4 rotations + 2 mirrors. Though idk, since it won’t work for ddnet servers maybe just using 2 more bytes for the teleno is also fine 19:21 <+bridge> Actually just 4 extra bits sorry but still gives you 16 times the teleporters to work with with no modification of the editor needed 21:11 <+bridge> https://cdn.discordapp.com/attachments/293493549758939136/1251252692840484995/bildo.png?ex=666de761&is=666c95e1&hm=bb506859f2d6a90e4742ea58881c3344bf92ce755dcf8f7d3f62376f29dac361& 21:11 <+bridge> Huh, "Update failed", in English 21:12 <+bridge> I wonder if it is because I modified `ukrainian.txt` inside the `data` folder 21:16 <+bridge> In English, because it is still `...` instead of the `…`, but why failed? 21:25 <+bridge> If that's the old release version then it doesn't use the string with `…`, it is introduced in version 18.3 so if updating to 18.4 fails you should see the correct string 21:26 <+bridge> Check log for errors related to updating 21:28 <+bridge> I accidentally deleted them :frozen: 21:29 <+bridge> downloading data recovery rn 21:29 <+bridge> Seems like it a general issue, we got a log in #bugs 21:29 <+bridge> Seems like it's a general issue, we got a log in #bugs 21:29 <+bridge> downloading data recovery thingy rn 21:30 <+bridge> Probably not necessary since we have a log already 21:32 <+bridge> Oh well 21:33 <+bridge> My laptop froze, I hope I haven't bricked it 21:38 <+bridge> :gigachad: 21:41 <+bridge> Well, not as funny as it seems, because even though I have another one, almost all the data is on this one, and the other one is much inferior by its hardware (2.4GHz, 8 threads, 8GBs, vs. 1.6GHz, 2 threads, 2GBs) 22:26 <+bridge> Whoever can come up for a solution should take care of this asap 22:52 <+bridge> Just kick them or report them for harassment? xd 22:53 <+bridge> How would they know who you friended? 22:53 <+bridge> If this is the solution, then this function has no meaning. 22:53 <+bridge> It needs a proper solution, or just abandon it 22:53 <+bridge> It is to filter out unnecessary spam. Not against people who you don't like 22:54 <+bridge> by trial and error, eventually famous players have 10-20 friends minimum 22:54 <+bridge> you can pick one without a clan tag and it's easy 22:54 <+bridge> If you know their friends (which in this community's case its easy to guess), then you can use this exploit 22:54 <+bridge> not good 22:55 <+bridge> And what would be the use? 22:55 <+bridge> To annoy the other player? 22:55 <+bridge> to make people abandon their name, or the game entirely 22:55 <+bridge> we have malicious players who are doing it just for fun 22:55 <+bridge> Okay then vote kick or report them? 22:56 <+bridge> There is NO debate about it teero. 22:56 <+bridge> The issue in itself is not fixable without accounts so don't expect anything 22:56 <+bridge> Now hear me out. Yes, you can votekick them. Yes you can call a mod to deal with it. But the fact that we have a function which should help moderating your own chat without the need for the community or moderator... I don't know how to tell you 22:57 <+bridge> Do you want to dodge implementing a solution for a problem you guys caused? 22:57 <+bridge> Then block them temporarily.... 22:57 <+bridge> temporarily is again, a flawed solution 22:57 <+bridge> And how would that implementation look like?? 22:57 <+bridge> It is not possible with the current system 22:58 <+bridge> I recommended to limit the use of this function by disabling the friends' whispers, but I figured normal chat will do as well. 22:58 <+bridge> Since we don't have active chat filtering, they can just post it in global chat without issue. 22:59 <+bridge> We could also just abandon this feature, till we have some sort of proper identification system implemented into the client. 22:59 <+bridge> Problem is, that is never gonna happen with the morality of the situation regarding accounts. 23:00 <+bridge> Why would we abandon a feature that works well 99% of the time? 23:00 <+bridge> We could rework the friend system, so that they can have a private key, which identifies the player (generated by the server which detects which ip address it belongs to) 23:00 <+bridge> Problem is, that system would take more time to implement and would cause drastic effects if this one gets a backdoor into. 23:01 <+bridge> Problem is, that system would take more time to implement and would cause drastic effects if this one gets a backdoor into. (Since whoever gets the private keys will get to impersonate any account imaginable, and by the looks of malice, people can go as far as that, since ddosing aint enough for them.) 23:01 <+bridge> I see how it works 99% of the time 23:01 <+bridge> as you could see on the github repo, I found it out by accident 23:02 <+bridge> show only chat messages from team members filters out everything that is not from people in your team so that cannot be circumvented by changing the name 23:02 <+bridge> I didn't know this feature existed until Stepfunn pointed out, so this was THE VERY FIRST THOUGHT I had! 23:03 <+bridge> So it's only exploitable from the friend list 23:03 <+bridge> At least that's comfy 23:05 <+bridge> https://discord.com/channels/252358080522747904/293493549758939136/1251271193890263081 23:05 <+bridge> changed the text to only include "Show only chat messages from friends" only 23:05 <+bridge> deen doesnt want an option that disables all whispers. but if you use a selfbuilt client you can block all whispers 23:06 <+bridge> I'm a user, I only provide the problems to developers who might've implemented this function 23:07 <+bridge> heinrich doesnt want an option that disables all whispers. but if you use a selfbuilt client you can block all whispers 23:07 <+bridge> Currently no real solutions I have, other than reworking the friend / hoe system 23:08 <+bridge> Implementing some sort of identification token would be nice imo... 23:08 <+bridge> well the team members only settings works as long as you are fine with not playing in team 0 23:08 <+bridge> Yeah we are only dodging half the bullet 23:09 <+bridge> yeah i would like some servers that can only be used with an account but apparently most big devs are against that 23:09 <+bridge> Its not like the Engine allows you for this kind of feature without a certain exploit or closed source shenanigan. 23:10 <+bridge> It needs a dedicated team who spends their full time effort to implement something like that. 23:10 <+bridge> it could use the steam account for unique identification but that would make these servers steam-client exclusive 23:11 <+bridge> which would be fine imo 23:11 <+bridge> It needs Steam API which the native client won't support tho 23:11 <+bridge> But I mean, it is a good solution regardless since Steam's API heavy lifts this 23:12 <+bridge> But that would mean people with older versions, modified clients and native launchers won't work with DDNet anymore 23:12 <+bridge> But that would mean people with older versions, modified clients and native launchers won't be able to play DDNet like that anymore 23:13 <+bridge> no it wouldn't :troll: 23:13 <+bridge> Unless we have a good way of moving away from Teeworlds and make a better version of it in a different engine, I wouldn't dream on having this implemented :justatest: 23:13 <+bridge> yeah but it could just be 2 steam servers with the rest staying open to everyone 23:14 <+bridge> https://tenor.com/view/horse-lick-head-bald-gif-12017932 23:14 <+bridge> same problem comes that kog has 23:14 <+bridge> kog account system sucks ass 23:14 <+bridge> I can see benefits, some disapproval and some danger regarding using Steam's API 23:14 <+bridge> bold bald 23:15 <+bridge> And don't you think it's a better alternative than.... having no accounts at all? 23:15 <+bridge> i dont like logging in everytime i join its very annoying 23:15 <+bridge> Its a headstart for Avo, since he may be able to implement it if he invests in it 23:16 <+bridge> quick fix is to add id mute 23:16 <+bridge> so until player is ingame on this server youll not have anything from them 23:16 <+bridge> if there was just one server with steam account identification it would be very smooth to just play on and it wouldnt stop people without accounts from playing 23:16 <+bridge> They have to do it like that, because of the way DDNet Client is 23:16 <+bridge> true 23:16 <+bridge> do the players have some sort of /mute command? 23:18 <+bridge> not currently 23:18 <+bridge> no need to do it server side ig 23:19 <+bridge> Are IDs unique? 23:19 <+bridge> non in a persistent way 23:19 <+bridge> only id that is kinda unique is the timeout code 23:19 <+bridge> So it aint good of a quick fix? 23:20 <+bridge> should i say it? 23:20 <+bridge> SHOULD I SAY IT? 23:20 <+bridge> using timeout code as an identification token? 😄 23:20 <+bridge> just wait for accounts 23:20 <+bridge> be after 99 yrs: 💀 23:20 <+bridge> tru 😬 23:20 <+bridge> Aint this idea bs? xd 23:21 <+bridge> it's okish, but some ppl _might_ share timeout codes 23:21 <+bridge> like, having a static one 23:21 <+bridge> i assume most ppl wouldnt know how to change the timeout code xD 23:21 <+bridge> so it would work sometimes 23:22 <+bridge> Wouldnt it be nice to have the forum's account system be used in that way to identify yourself? 23:22 <+bridge> no 23:22 <+bridge> let the forum die pls 23:22 <+bridge> not to login and logout 23:23 <+bridge> but to have an identification code from your forum account? 23:23 <+bridge> You could just insert it to your client and have the server identify you as a verified user 23:24 <+bridge> Stream mode would immediately filter it with stars, so that it's not leaked 23:24 <+bridge> (Or just having an Eye icon which reveals the code xd) 23:24 <+bridge> before we use the forum accounts i buy a huge house and invite all ddnet players to LAN party 23:25 <+bridge> Beers on me! [whooo](https://cdn.discordapp.com/emojis/631548554267328514.gif?size=48&quality=lossless&name=whooo) 🍻 23:26 <+bridge> But in all seriousness, some sort of rework for the friend / foe system may need to be implemented 23:33 <+bridge> ??? 23:33 <+bridge> https://cdn.discordapp.com/attachments/293493549758939136/1251288387386605568/image.png?ex=666e089f&is=666cb71f&hm=0b92e50ffaa506a7c8ddbdc64ee186a2b8c598a75b595cee8b64df26921c98e4& 23:33 <+bridge> hahaha 23:34 <+bridge> https://media.discordapp.net/attachments/942572059815465000/959860227824574524/SPOILER_SPOILER_smol.gif 23:36 <+bridge> sweet 23:36 <+bridge> watch ur tone boy 23:37 <+bridge> I guess it would be hard to do have steam accounts on non ddnet affiliated servers 23:38 <+bridge> whazzat 23:38 <+bridge> https://partner.steamgames.com/doc/features/auth 23:38 <+bridge> https://partner.steamgames.com/doc/features/auth#client_to_backend_webapi 23:38 <+bridge> I guess it would be hard to have steam accounts on non ddnet affiliated servers 23:39 <+bridge> maybe session tickets can be verified by untrusted servers actually? 23:40 <+bridge> i don't think it would be too hard 23:40 <+bridge> I'm not sure if you need a api key to access ``partner.steam-api.com`` 23:40 <+bridge> https://cdn.discordapp.com/attachments/293493549758939136/1251290170792087622/image.png?ex=666e0a48&is=666cb8c8&hm=6acb71ed15cc04ab0a446e0f425ac40c0eb1182fda39dd85948c4e04e1e84767& 23:40 <+bridge> no 23:40 <+bridge> that is actually the plan 23:40 <+bridge> steam & email accounts 23:41 <+bridge> yeah but steam is in theory easier if all you need to do is have the client send a session ticket and the server checks it on partner.steam-api.com 23:41 <+bridge> it could be done super quick 23:41 <+bridge> btw is there any progress on the accounts issue 23:41 <+bridge> yes but the account system will be even simpler 23:41 <+bridge> i haven't gotten an email about it in a minute :justatest: 23:41 <+bridge> the game server dont require to do any http calls at all 23:41 <+bridge> wdym 23:41 <+bridge> don't you need a central database if you use email accounts? 23:42 <+bridge> no, the plan is that the account server generates certificates that are valid for a certain amount of time 23:42 <+bridge> 23:42 <+bridge> and the validity of the cert is done with the public key of the account server 23:43 <+bridge> it's the client's responsibility to refresh the certs it sends to the game server 23:44 <+bridge> so the game server never needs to know about the email or any steam session key 23:44 <+bridge> only the client 23:44 <+bridge> that should also motivate game servers to use ddnet's account system, bcs it wont require to do manual registering ever 23:44 <+bridge> 23:44 <+bridge> which often is disliked by users anyway 23:45 <+bridge> 1 account for all servers 23:45 <+bridge> what if people want multiple accounts 23:45 <+bridge> for whatever reason xd 23:45 <+bridge> make a new steam? 23:45 <+bridge> :justatest: 23:45 <+bridge> that seems like it's against the whole sentiment of the accounts system 23:46 <+bridge> steam 23:46 <+bridge> nvm what part of that is blocked lol 23:46 <+bridge> does this mean the server is stored on the clients PC? couldn't it be lost if they lose their PC? 23:46 <+bridge> Is steam API provided for Chinese players to work perfectly? 23:47 <+bridge> or do we need to use a different method for authentication? 23:47 <+bridge> which server is stored on pc? 23:47 <+bridge> why does the client need to send certs to anyone 23:47 <+bridge> oh 23:47 <+bridge> I meant to say secret 23:47 <+bridge> not server 23:48 <+bridge> basically it's like this: 23:48 <+bridge> 23:48 <+bridge> the account server generates a certificate 23:48 <+bridge> 23:48 <+bridge> that cert contains a account id 23:48 <+bridge> 23:48 <+bridge> since it's signed by the account server all game servers can trust this cert, thus also trust the account id 23:48 <+bridge> 23:48 <+bridge> and the client simply re-requests new certs when theirs is getting invalid (time based) 23:49 <+bridge> the session to the account server is thus only between client and ddnet account server. 23:49 <+bridge> 23:49 <+bridge> the game servers simply trust the certificate and its info 23:49 <+bridge> do those game servers need to implement their own ways of signing it's certificates or do they need to reach out to ddnet servers to verify sources? 23:50 <+bridge> so if at all the game servers would need to get the current public key from the account server.. but it _could_ also be valid forever.. if its not valid forever it would probably still be valid for many months 23:50 <+bridge> how does the client authenticate itself to the account server? 23:50 <+bridge> steam or email 23:50 <+bridge> for email a token to the email 23:50 <+bridge> 23:50 <+bridge> for steam the thing u posted 23:50 <+bridge> So first you have to verify it 23:50 <+bridge> but it's verified by the account server 23:50 <+bridge> not game servers 23:50 <+bridge> the game servers will just trust anything signed by the account server? 23:51 <+bridge> so only ddnet needs steampartner ship 23:51 <+bridge> yes 23:51 <+bridge> I guess that works 23:51 <+bridge> provided by Steam, sure 23:51 <+bridge> seems good 23:51 <+bridge> idk about email tho 23:51 <+bridge> we defs need email 23:51 <+bridge> even if most ppl use steam 23:51 <+bridge> obv xd 23:51 <+bridge> some dont 23:51 <+bridge> yeah 23:51 <+bridge> and yeah i also want multiple accounts xD 23:51 <+bridge> ngl xD 23:52 <+bridge> email is kind of really annoying in modern times tho 23:52 <+bridge> Well sounds like a long plan, better write it down somewhere before it disappears 23:52 <+bridge> well i think that depends on whether users will be able to look up accounts by player, or only mods 23:52 <+bridge> it's basically impossible to send emails 23:52 <+bridge> you can probably still fake with accounts 23:52 <+bridge> should be able to rather 23:52 <+bridge> well it's already mostly implemented 23:52 <+bridge> the hardest part is updating all SQLs for website etc. 23:52 <+bridge> :pepeW: ❔ 23:52 <+bridge> and we wait for QUIC 23:52 <+bridge> dont give me hope 23:52 <+bridge> even if you do 100% of the proper setup gmail will still block you so everyone uses an email sending service for password resets 23:53 <+bridge> you need to get white listed 23:53 <+bridge> and even then they randomly remove you from the white list 23:53 <+bridge> just send a message to Google assistance to allow it 23:53 <+bridge> well ddnet can also use multiple email addresses 23:53 <+bridge> for sending 23:53 <+bridge> idk how that helps 23:53 <+bridge> they wouldnt reject "free data" 23:53 <+bridge> well does gmail block other gmail users? 23:54 <+bridge> no but I don't think you can just use a gmail account for automated messages they ban you really fast 23:54 <+bridge> 2000 emails per day 23:54 <+bridge> apparently 23:54 <+bridge> Password reset messages do count as spam 23:54 <+bridge> i don t think so 23:54 <+bridge> there are no passwords 23:54 <+bridge> some are not, since those are requested to be "important" 23:54 <+bridge> thus also no password resets 23:54 <+bridge> I mean here no passwords ye 23:55 <+bridge> but on other websites, maybe this is how it works 23:55 <+bridge> magic link or token emails would be a lot more traffic than resets tho 23:55 <+bridge> well anyway, we'll see 23:55 <+bridge> In case of handling traffic, it needs a lot more hardware heavylifting imo 23:55 <+bridge> we could also think about openid for auth 23:55 <+bridge> that would allow many hosters 23:56 <+bridge> what traffic? 23:56 <+bridge> we have like 10k users 23:56 <+bridge> we have many more than 10k users?? 23:56 <+bridge> do u think they always log into accounts the whole day or what 23:56 <+bridge> easily 200k users? 23:56 <+bridge> if u talk about DoS 23:56 <+bridge> that's smth else 23:56 <+bridge> per what? 23:56 <+bridge> day? 23:56 <+bridge> month? 23:57 <+bridge> I got suspicious about idiots who ddos ddnet servers to actually abuse sending millions of password reset requests xd 23:57 <+bridge> users who would want an account in theory 23:57 <+bridge> yep we'll have to rate limit it, which could result in adding proof of work concepts or similar 23:57 <+bridge> sure but i doubt it's 200k users per day or smth 23:57 <+bridge> no 23:58 <+bridge> but no one measures users per day 23:58 <+bridge> i assume most ppl will use steam anyway 😄 23:58 <+bridge> either you measure concurrent users or total active users 23:58 <+bridge> but isn#t it only about sending emails rn 23:58 <+bridge> yeah 23:58 <+bridge> i doubt there is more than 2000 legit emails per day 23:59 <+bridge> idk preventing spam sounds really hard 23:59 <+bridge> it is 23:59 <+bridge> but that is a different problem 23:59 <+bridge> not really 23:59 <+bridge> if you don't use email it becomes someone elses problem