00:05 <+bridge_> <._.spook._.> Will this reset all the points? Because people have already made progresss 00:42 <+bridge_> ahh probably will 01:47 <+bridge_> <._.spook._.> What if i only removed maps that were completed before adding the system? I also kinda dont understand why that would be the case 01:52 <+bridge_> im just saying thats what helped me personally when i had problem with random_map 01:53 <+bridge_> i dont know if removing only those maps will work but you can try 01:53 <+bridge_> would be best to backup the database first tho 09:28 <+bridge_> @0xdeen https://github.com/ddnet/ddnet/pull/12022 09:28 <+bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1498586664623407184/image.png?ex=69f1b317&is=69f06197&hm=ca9f43bfb4bcc4a1da2acfc538dd4eed619a95889e3b24d4ad3823c7a22570e7& 09:28 <+bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1498586664967077929/image.png?ex=69f1b317&is=69f06197&hm=8886cf5ada616a4f702ae6a4d6073db9d89c14198f9e8ee847218220f2b54daf& 10:02 <+bridge_> I must say I see multiple reaons why we wouldn't want this PR, from people creating custom mod menus with it, to overall performance in a 128 player setup 10:07 <+bridge_> i was making my own client mod converting most stuff to shaders 10:07 <+bridge_> laser, explosion smoke tails etc 10:07 <+bridge_> vulkan only 10:07 <+bridge_> we dont do gl here 10:11 <+bridge_> ryo gud 10:12 <+bridge_> > creating custom mod menus with it 10:12 <+bridge_> 10:12 <+bridge_> nice reason πŸ˜„ 10:12 <+bridge_> 10:12 <+bridge_> > overall performance in a 128 player setup 10:12 <+bridge_> 10:12 <+bridge_> mod makers will solve this problem by deciding what and when to display, imagine you can snap it not for 128 players 10:18 <+bridge_> too complex tbh. 10:23 <+bridge_> flags or what? 10:26 <+bridge_> too many params and flags, objects. 10:28 <+bridge_> I think you can just merge Circle, Line, Quad into one NetObj. 10:28 <+bridge_> The current behaviour seems to be that the brush always shows the images of the layers it was grabbed from and if multiple are selected it will draw the first layer of the brush onto the first selected layer etc. So the brush does not show what will be drawn, but where it was grabbed from. I think it should be relatively easy to maintain this behaviour: We just have one global brush which always references the map it was grabbed on. 10:28 <+bridge_> Alternatively the map reference could be updated on map switch as well as the image index when selecting different layers. Then the brush could always show what will be drawn which i think might be more intuitive. But then the question is how to handle missing tiles in different layers etc 10:49 <+bridge_> Custom mods are not a good reason. This is DDNet. 10:49 <+bridge_> Open an issue first to discuss the idea. 10:50 <+bridge_> You can't really reference the old map from the brush. The user can create a brush and then close the map, so it would have a stale reference. Saved brushes using Ctrl+1 etc. are also affected. 11:03 <+bridge_> yes, this is ddnet, NET which unites many servers and mods 11:03 <+bridge_> PR not for ddrace, but for ddnet 11:04 <+bridge_> this idea is as old as the world 11:04 <+bridge_> u made that up xD 11:06 <+bridge_> 🀨 it will all be in a heap and it will be even more complicated 11:18 <+bridge_> πŸ€” 11:20 <+bridge_> Map pointers could be stored as shared pointers instead. But then you would keep the whole map in memory while you only need a few images. 11:20 <+bridge_> It seems you want to keep the current behaviour, right? 11:23 <+bridge_> never try to clang-format miniaudio.h 11:23 <+bridge_> my poor pc tried and died 11:44 <+bridge_> what??? 11:45 <+bridge_> since when does clang-format break code 11:45 <+bridge_> the project compiles, but once i format any of the source files it doesnt anymore 11:45 <+bridge_> what 11:45 <+bridge_> are you on the right version i.e. 20.x? 11:45 <+bridge_> not ddnet related but im on latest 11:46 <+bridge_> the latest version was a bit more agressive, I already noticed 11:46 <+bridge_> AHH 11:46 <+bridge_> it reordered all the includes 11:46 <+bridge_> and this 2000 ahh project doesnt have any include guards 11:46 <+bridge_> xD 11:53 <+bridge_> I think this feature is quite interesting, but strong restrictions need to be made on the client side so as not to overload clients with unnecessary things. :) 11:53 <+bridge_> ok if i set `SortIncludes: false` it compiles 11:53 <+bridge_> cool 11:55 <+bridge_> :brownbear: 11:55 <+bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1498623593951793372/image.png?ex=69f1d57b&is=69f083fb&hm=169683a2688fca1fcb807a9e99d7993a958d278b700841530ab387407fa9069c& 11:55 <+bridge_> It would rather open up ideas that would be difficult/impossible to implement without it. 11:55 <+bridge_> [This is a great idea, for me it's on par with custom tiles.](https://github.com/ddnet/ddnet/issues/7296) 11:55 <+bridge_> It would rather open up ideas that would be difficult/impossible to implement without it. 11:55 <+bridge_> This is a great idea, for me it's on par with [custom tiles.](https://github.com/ddnet/ddnet/issues/7296) 11:55 <+bridge_> It would rather open up ideas that would be difficult/impossible to implement without it. 11:55 <+bridge_> This is a great idea, for me it's on par with [custom tiles.](https://github.com/ddnet/ddnet/issues/7296) 11:55 <+bridge_> It would rather open up ideas that would be difficult/impossible to implement without it. 11:55 <+bridge_> This is a great idea, for me it's on par with [custom tile by server side.](https://github.com/ddnet/ddnet/issues/7296) 12:34 <+bridge_> I don't understand why heinrich5991 hates LLM so much, he always closes people for using it. 12:34 <+bridge_> 12:34 <+bridge_> Let's take #12022 as an example. 12:34 <+bridge_> 12:34 <+bridge_> > [] I didn't use generative AI to generate anything other than one-line autocompletes. 12:34 <+bridge_> 12:34 <+bridge_> There's no flag indicating he didn't use LLM, but he simply didn't explain how or why. So why add that line if heinrich5991 is closing issue/pr for using LLM? :\ 12:34 <+bridge_> His dislike for LLM can also be seen in #12075, but he opened his own issue with a link to this one. This seems very controversial to me. LLM is a great tool, but it needs to be monitored just like the developer himself. 12:34 <+bridge_> https://github.com/ddnet/ddnet/pull/12022 12:34 <+bridge_> https://github.com/ddnet/ddnet/issues/12075 12:39 <+bridge_> [CONTRIBUTING.md](https://github.com/ddnet/ddnet/blob/master/docs/CONTRIBUTING.md) doesn't contain a rule completely prohibiting the use of LLM, which raises serious doubts.... 12:40 <+bridge_> ddnet is hosting zCatch and other mods already πŸ‘€, just saying. 12:41 <+bridge_> contributing to ddnet is more and more hostile as time goes, @byfox its a sad reality 12:42 <+bridge_> *slaps Ryo* 12:43 <+bridge_> *with a fish* 12:44 <+bridge_> I think more about fatigue and technology bias... 12:44 <+bridge_> leadership bias 12:46 <+bridge_> Opening an issue or pull request is effectively asking the maintainers to do work for the author. 12:46 <+bridge_> Usually there are many more issues and pull requests than maintainers, so maintainers have fairly little time to work on them. 12:46 <+bridge_> Because of this it's good form to respect the time of the people you are asking to do work for you by including as much information as they need, but as concisely as possible. 12:46 <+bridge_> 12:46 <+bridge_> LLMs are very good at generating a lot of text of varying quality. It is possible to generate *correct* text with LLMs, but it is also possible to generate complete hallucinations. 12:47 <+bridge_> As a person reading text that looks LLM-generated, there is no easy way for me to tell how much human effort went into the text. I'd have to read the entire, usually very verbose, LLM-generated text and check it myself. This requires time that I, as a maintainer, do not have. This is why many people opt to refuse to read LLM output at all. I genuinely cannot see a case where, in a scenario where somebody wants to explain something to me (say, an i 12:47 <+bridge_> 12:47 <+bridge_> So I do think that it's a very justifiable choice to refuse to read LLM-generated issues or descriptions. 12:48 <+bridge_> > Opening an issue or pull request is effectively asking the maintainers to do work for the author. 12:48 <+bridge_> this couldnt be more false 12:48 <+bridge_> no maintaineri s obligated to answer to an issue at all 12:48 <+bridge_> an issue is more info than none, already valuable 12:48 <+bridge_> if you believe that then we have fundamentally different models of the dynamics of open source 12:48 <+bridge_> and u probs dislike it but the llm helps non english ppl atleast get some info across 12:49 <+bridge_> ig we do, yes 12:49 <+bridge_> Might want to fix your typos in here 12:49 <+bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1498637294721171617/image.png?ex=69f1e23e&is=69f090be&hm=5a0f1f63346315bb6d8e12913ec1fea345d69d89686fa7647e782799d3fdd044& 12:49 <+bridge_> I agree that "no maintainer is obligated to answer an issue at all" 12:49 <+bridge_> I still think that the intent behind opening a pull request is usually to *ask* maintainers to review and eventually merge the code 12:50 <+bridge_> It's called a "pull request" for a reason, since it's requesting people to pull your branch 12:50 <+bridge_> ur conflacting a pr vs issue 12:50 <+bridge_> I'm not a native speaker... So I could be wrong, thanks for pointing that out. 12:50 <+bridge_> the quote i mentioned mentions issue 12:50 <+bridge_> but even then, yes maintainers can ignore prs too 12:50 <+bridge_> It's just LLVM -> LLM 12:50 <+bridge_> let other willing maintainers review it or none at all 12:50 <+bridge_> I was quite confused for a second when I read the email notification 12:50 <+bridge_> no one is obligated to do anything at all 12:51 <+bridge_> im just pragmatic and have a more practical view, as long as the means arent ilegal i dont rly care if its useful 12:51 <+bridge_> I later noticed that I was writing it incorrectly and corrected it in the text on Discord πŸ˜„ 12:51 <+bridge_> Thanks for noticing this on GitHub. 12:52 <+bridge_> (legality of using an LLM to generate code is quite suspicious at best, it's just that courts and governments are extremely scared to legislate because they are scared of getting left behind the "revolution") 12:52 <+bridge_> = not ilegal 12:52 <+bridge_> but i didnt mean about llms 12:52 <+bridge_> It likely is illegal, they just are too worried to do anything about it 12:53 <+bridge_> this is a whole debate but rn its not ilegal 12:53 <+bridge_> ok then, let's grant this point and assume that the issue author opened the issue *purely* to inform people (including users, not just the maintainers) about the bug. 12:53 <+bridge_> Surely, even then, the author opened the issue with the expectation that *someone* will read it, right? And, no matter whether that someone is a maintainer or not, that someone will not be able to easily tell how much human effort went into a text if that text looks LLM-generated. 12:53 <+bridge_> but I don't care, just wanted to give you a small sidebar 12:53 <+bridge_> > So I do think that it's a very justifiable choice to refuse to read LLM-generated issues or descriptions. 12:53 <+bridge_> 12:53 <+bridge_> If he refuses to read LLM text, then let him delegate the work on the issue/pr to others 12:54 <+bridge_> i just odnt get why u obsess so much over human effort, if the issue is good its good 12:54 <+bridge_> I agree with this to some point, but more info is good, LLM inserting slop to pad out the issue is not good. It generally does not add any new information, and if I want its slop, I can feed your issue into chatgpt myself 12:54 <+bridge_> if i were to find a critical security issue with a llm 12:54 <+bridge_> would u close it cuz llm? 12:54 <+bridge_> oh the irony 12:54 <+bridge_> tell the LLM to summarize the problem in a short form and then open the issue with not that much text. πŸ‘€ 12:55 <+bridge_> i wont say why its irony tho 12:55 <+bridge_> but lea knows 12:55 <+bridge_> the problem is that telling whether the issue is good or not is harder if the text looks LLM-generated than if it doesn't. 12:55 <+bridge_> 🍿 12:55 <+bridge_> i wonder what the goal of that discussion is. 12:55 <+bridge_> nah it isnt, its a simple exercise of reading, actually huma nwritten issues may also be hard to know if real or not, and u usually have low effort issues instead 12:55 <+bridge_> Just write 5 damn sentences omg, this generation is so cooked I can't even start to begin imagining how we'll be like in 30 years 12:56 <+bridge_> but what if AI wrote those 5 sentences? 12:56 <+bridge_> Fine, here are your five sentences: Technology has made everyone expect instant results, but patience is a skill that’s fading fast. Critical thinking often takes a backseat to viral trends and reactionary hot takes. We’re constantly connected, yet genuine conversation feels more difficult than ever. In thirty years, either we’ll have learned to balance convenience with wisdom, or we’ll be completely overwhelmed by our own digital systems. 12:56 <+bridge_> but what if you just took 20 minutes of your time and just wrote them yourself, I'll even say pretty please 12:57 <+bridge_> We are so heading to the future where we water crops with energy drinks, it's so joever. It's like one of those "Great Filters" 12:58 <+bridge_> i wish i were a crop 12:58 <+bridge_> A civilization just dies off if it ever implements an LLM, this is why there are no aliens 12:58 <+bridge_> it's a simple exercise of reading and then having to manually check every statement because it might be an llm hallucination 12:58 <+bridge_> Hey, developer! I have an idea. Make custom color in type (browser) like server config 12:58 <+bridge_> 12:58 <+bridge_> If yes - :f3: if no - :f4: (rating my idea) if f4 so i'm sadly 12:59 <+bridge_> I think there was already an issue for something like this with some discussion in there, maybe browse the issues in github 12:59 <+bridge_> where i can see? but i have own mod i can't that doing colors xd 13:00 <+bridge_> anyway its ok heinrich does what he wants as the BDFL and we just wing with it 13:00 <+bridge_> i dont contribute anymore anyway 13:00 <+bridge_> have fun 13:00 <+bridge_> backseat developing 13:00 <+bridge_> Bund deutscher fußball Lehrer? 13:00 <+bridge_> its goo practice 13:00 <+bridge_> im making my own ddnet client 13:00 <+bridge_> Overall, I genuinely do not care if you generated the code or had your AI finding bugs or whatever. Just write the issue/pr text yourself, that's like the minimum of the minimum to ask 13:00 <+bridge_> its good practice 13:00 <+bridge_> R-Client when? 13:00 <+bridge_> just testing shaders/post fx stuff 13:00 <+bridge_> i already did :P 13:00 <+bridge_> @learath2 please dont mention cheatclients 13:00 <+bridge_> ill add rtx 13:00 <+bridge_> and reflections 13:00 <+bridge_> πŸ˜† 13:01 <+bridge_> and cool laser effects 13:01 <+bridge_> mirror tile 13:01 <+bridge_> Add DLSS 5.0 so you can have AI filters on the tees 13:01 <+bridge_> fluid simulation for grenade smoke pls!!!!!!!! 13:01 <+bridge_> yes 13:01 <+bridge_> i already migrated smoke trails to shaders 13:01 <+bridge_> and the gun trail 13:01 <+bridge_> Teeworlds highly need framegen 13:01 <+bridge_> Important 13:01 <+bridge_> Initially, I was outraged that issue/pr was being closed because of LLM, considering that it is not prohibited and even if the pr does not have a flag about "not using LLM", it is still closed 13:01 <+bridge_> And then a discussion started here that I can’t keep up with... 13:02 <+bridge_> I actually made a veeery simple "volumetric" smoke loong ago, though never found any use for it 13:02 <+bridge_> @ryozuki i will also need collision based on SDFs and make continuos gores maps using fractals 13:02 <+bridge_> Maybe I can dig it up from one of my harddisks πŸ˜› 13:02 <+bridge_> tee blood 13:02 <+bridge_> already exists 13:02 <+bridge_> ik 13:02 <+bridge_> but better 13:02 <+bridge_> How many pints of blood does a tee contain? 13:03 <+bridge_> imo the gore client did it pretty well 13:03 <+bridge_> 2 liters 13:03 <+bridge_> its in the wiki 13:03 <+bridge_> official 13:04 <+bridge_> also tees have 1 bone 13:04 <+bridge_> u can see it in grass 13:04 <+bridge_> yes 13:04 <+bridge_> Depends 13:04 <+bridge_> 13:04 <+bridge_> If someone (manually) writes a detailed and useful report with an easily verifiable sample that they happened to find with an LLM but then verified themselves? No, I'd fix it and thank them 13:04 <+bridge_> 13:04 <+bridge_> If someone finds a security issue and then sends me ten paragraphs of LLM output? 13:04 <+bridge_> Then the problem is that I cannot distinguish these ten paragraphs of LLM output from ten paragraphs of hallucinations with the same amount of effort that I'd need to verify a hand-crafted report. 13:04 <+bridge_> At which point there are multiple valid courses of action that just depend on my priorities. 13:04 <+bridge_> 13:04 <+bridge_> If I care a lot about my project's security over my own free time, I might verify it anyway, even if it takes more time. 13:04 <+bridge_> If I see my project as a hobby and prioritize my own free time, I might take longer to verify it than I usually do, because it needs more time. 13:04 <+bridge_> If I care about the open source community and want to steer it more into a direction where LLM usage is discouraged, I may close the issue as a political statement against LLMs 13:04 <+bridge_> 13:04 <+bridge_> All three of these are valid courses of action 13:04 <+bridge_> or you just close the issue 13:05 <+bridge_> i cant find the blood video anymore @ryozuki do you still have it? 13:05 <+bridge_> i know its somewhere on youtube 13:05 <+bridge_> yes on my yt 13:05 <+bridge_> channel 13:06 <+bridge_> XD 13:06 <+bridge_> Like if you are so incapable of writing a 5 sentence description of the bug you found I have serious doubts about the fix anyway. Just give me the bare minimum of the bug and reproduction steps instead 13:06 <+bridge_> goresworld ryozuki 13:06 <+bridge_> https://www.youtube.com/watch?v=0dq1BpvjWEE 13:06 <+bridge_> holy intro 13:06 <+bridge_> yess XD 13:06 <+bridge_> i was a expert youtuber 13:06 <+bridge_> thanks 13:06 <+bridge_> indeed 13:07 <+bridge_> Oh, in other news, I made some progress refactoring and rewriting the snapshot part in C++ with proper bounds tracking 13:07 <+bridge_> why the sad music tho xD 13:07 <+bridge_> i was a sad boi 13:07 <+bridge_> like lea 13:07 <+bridge_> tees are bleeding 13:07 <+bridge_> iwas 15 or 16 13:07 <+bridge_> 15y old 13:07 <+bridge_> Age leak 13:07 <+bridge_> im 25 now lol 13:08 <+bridge_> 26 in 29 may, remember it 13:08 <+bridge_> Damn cool goresworld 13:08 <+bridge_> You know what would make this even cooler? If the blood got onto the tiles, like killing floor 13:08 <+bridge_> Damn cool goreworlds 13:08 <+bridge_> ye 13:08 <+bridge_> and also make blood blend 13:08 <+bridge_> with tee color or smth 13:08 <+bridge_> https://www.youtube.com/watch?v=kpnW68Q8ltc 13:08 <+bridge_> Game will look like super meat boy at the end 13:08 <+bridge_> :deen_star: 13:09 <+bridge_> btw i already have a shader that changes hook color based on hook distance 13:09 <+bridge_> probs not useful 13:09 <+bridge_> but cool 13:09 <+bridge_> hm 13:09 <+bridge_> To what color 13:09 <+bridge_> What's the logic 13:09 <+bridge_> Goreworld client is for Killing Floor mod, that was I remembered 13:09 <+bridge_> idk im just toying 13:10 <+bridge_> ill make a vid soon 13:10 <+bridge_> subscribe and like 13:10 <+bridge_> Am too bad in maths to learn shaders. I once wanted to learn opengl with the book but was stuck because I was just writing formulas I couldn't understand. 13:10 <+bridge_> Didn't try with shaders 13:10 <+bridge_> already am 13:10 <+bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1498642581498888314/image.png?ex=69f1e72a&is=69f095aa&hm=130ad58a0e082407100895d3b75a657e20bfb4c7e894291b1fd00e2abe143f98& 13:10 <+bridge_> Experimenting with a typed interface for SnapNewObject too at the same time. Though that might not make it into my final PR 13:10 <+bridge_> i could make real metallic skins 13:11 <+bridge_> where other tees reflect 13:11 <+bridge_> a crystal ball tee 13:11 <+bridge_> Reflective water when? 13:11 <+bridge_> how would u model water in tw 13:11 <+bridge_> thats not too out of game 13:11 <+bridge_> jupstar had some refraction shader in ddnet-rs 13:11 <+bridge_> glass tee 13:12 <+bridge_> I never really figured out a good way to have a "dive down" input. Up with spacebar feels ok 13:13 <+bridge_> i always wanted to make a teeworlds tower defense game 13:13 <+bridge_> oh ye i also thought about it 13:13 <+bridge_> dummy tees with weapons 13:13 <+bridge_> frozen in place 13:13 <+bridge_> Ninslash has great shaders. 13:13 <+bridge_> @ryozuki i mean a seperate game, you cant make a ddnet gamemode that is fun to play since its not top-down 13:13 <+bridge_> and you cant have custom rendering 13:14 <+bridge_> Hm, top down? I think it's quite awkward otherwise, towers would block the way of waves 13:14 <+bridge_> I guess you can 13:14 <+bridge_> :D 13:14 <+bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1498643560302379118/image.png?ex=69f1e814&is=69f09694&hm=debe7e6b1009e2aa3e3e98eb84b79b39e0da52adc8f432b8e16b04c861b31031& 13:14 <+bridge_> Ah, just tee-ish assets, I see 13:14 <+bridge_> yea twinbop vs. Z.O.M.G. 13:14 <+bridge_> just let the character fly in the sky. 13:15 <+bridge_> but what if I took 20 minutes prompting so that you only get 5 concise bullet points perfectly explaining the issue :kek: ? 13:15 <+bridge_> 13:17 <+bridge_> https://tenor.com/view/kitten-cat-shaking-shake-scared-gif-13302527660994311263 13:18 <+bridge_> what would you even upgrade on a tee 13:19 <+bridge_> Multi-rocket launcher, projectile velocity, projectile aoe range 13:19 <+bridge_> what are we fighting against? 13:20 <+bridge_> Rocket that leaves a pool of fire/acid some other dot 13:20 <+bridge_> Zombie tees 13:20 <+bridge_> :thonk: 13:21 <+bridge_> Sounds like InfClass things. 13:21 <+bridge_> but tower defense instead πŸ˜› 13:21 <+bridge_> tees vs. zombies 13:22 <+bridge_> I think the biggest problem is that tees look like nothing from the top, the entire art style is designed around the game being from the side view 13:22 <+bridge_> noby, SP Someone, www, to name a few 13:22 <+bridge_> ok 13:22 <+bridge_> then TeeDefense 13:22 <+bridge_> Teefense 13:23 <+bridge_> https://github.com/TeeAlchemy/Teeworlds-Alchemist/tree/mod-teedefense 13:25 <+bridge_> XDDDDDDDD 13:25 <+bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1498646413058379928/image.png?ex=69f1eabc&is=69f0993c&hm=910d4e89c899ca0fd27882f844591302562286d49a4c5ed26945d24880678351& 13:26 <+bridge_> I'm waiting for new interesting mods 13:27 <+bridge_> Would be definetly better if this game was way more modding friendly 13:27 <+bridge_> i think its possible to make it top-down tees look really well 13:27 <+bridge_> but I think they probably have disappered 13:27 <+bridge_> I mean you currently have limitations 13:27 <+bridge_> I means 13:28 <+bridge_> We have done lots of effort to create amazing things in those limitations 13:29 <+bridge_> However, 13:29 <+bridge_> 😭 13:30 <+bridge_> can you do better? 13:30 <+bridge_> the creativity have gone from most modders' mind. 13:30 <+bridge_> no 13:32 <+bridge_> there are lots of mods which are just other ddnet or block. 13:32 <+bridge_> without new gameplay. 13:34 <+bridge_> hm 13:34 <+bridge_> but yeah 13:35 <+bridge_> The lack of support for other modes is also an important factor. 13:37 <+bridge_> The entire game will die because there will be only one gameplay. 13:42 <+bridge_> :) 13:45 <+bridge_> definitely not lol 13:46 <+bridge_> Yeah 13:46 <+bridge_> as we still here 13:49 <+bridge_> frieren aah perspective 13:49 <+bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1498652308358168597/image.png?ex=69f1f039&is=69f09eb9&hm=52ff221effb9e16d2a9fbb2864538b120aa6702f8fa730351c874daa0e8306bf& 13:59 <+bridge_> Other than the gun it's pretty good actually 14:00 <+bridge_> I like the single foot that is just in front 14:04 <+bridge_> maybee? 14:04 <+bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1498656189884530728/image.png?ex=69f1f3d7&is=69f0a257&hm=4ec8cbbd295babb439904d8e0a0ebf22ba4587d0a65a2279b09369b2aa67edc2& 14:05 <+bridge_> looks ok 14:05 <+bridge_> Yea 14:06 <+bridge_> the ass is so round 14:06 <+bridge_> the butt is so round 14:10 <+bridge_> It's Ai tho 14:10 <+bridge_> But very good for ai 14:26 <+bridge_> the hairline is not pointy in the middle 😭 14:28 <+bridge_> mono-foot πŸ‘€ 15:02 <+bridge_> > could you unmute irc please 15:02 <+bridge_> chillerdragon: could you fix your IRC bot please? 15:18 <+bridge_> I can already maintain the library on crates.io. that's unrelated to using feature flags. see e.g. https://crates.io/crates/pre-rfc3243-libtw2-gamenet-teeworlds-0-7 15:21 <+bridge_> You do understand that multiple libraries are inconvenient for coders, right? 15:25 <+bridge_> open an issue to describe what you'd like to do. AFAIK there wasn't a proposal to let the server render some geometric shapes before 15:25 <+bridge_> Doesn't the pr explain what hed like to do? There is code+videos recorded 15:28 <+bridge_> got it closer 15:28 <+bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1498677176013160650/teero-fixed.png?ex=69f20762&is=69f0b5e2&hm=8f39a78447c5a1dce334a35c3755d00487329665c4354dac160c61aa6d06a00d& 15:28 <+bridge_> and @robyt3's answer explains what to do instead 15:28 <+bridge_> open an issue and let's discuss a protocol 15:28 <+bridge_> no, I don't. can you explain? 15:28 <+bridge_> How does tee look like from below 15:29 <+bridge_> Can Ai imagine it? :kek: 15:29 <+bridge_> I warn you from posting an inappropriate image :justatest: 15:41 <+bridge_> :justatest: 15:47 <+bridge_> I already showed in this [msg](https://discord.com/channels/252358080522747904/293493549758939136/1497980577637204079) how to do `use` with my method, and I also showed that *large* libraries use Features, and don't split themselves into parts :) 15:47 <+bridge_> 15:47 <+bridge_> I'll use [Serenity](https://github.com/serenity-rs/serenity/blob/current/Cargo.toml#L72) as an example again. They use \*features because it's a library, and your libtw2 is also a library. I suggest adding a \*facade; see this [code](https://github.com/ByFox213/libtw2/tree/pr_workspace_transfer_to_features) for an example. Why do I suggest a \*facade? Because this code contains programs, and you don't want to rewrite most of it (move it). 15:47 <+bridge_> 15:47 <+bridge_> I'd say more Rust programmers would choose my approach than yours because it's convenient and practical. 15:47 <+bridge_> 15:47 <+bridge_> 15:47 <+bridge_> I'd also like to remind you that the "snapshot: Speed ​​up snapshot" [pr](https://github.com/heinrich5991/libtw2/pull/134) in the libtw2 version is waiting for your solutions and questions. 15:48 <+bridge_> > I'd also like to remind you that the "snapshot: Speed ​​up snapshot" pr in the libtw2 version is waiting for your solutions and questions. 15:48 <+bridge_> I can guarantee that I'll look at it eventually, because https://github.com/ddnet/ddnet/issues/12075 is still open 15:48 <+bridge_> pinging me every couple of days about this won't make it faster 15:48 <+bridge_> I don't have unlimited time to spend on ddnet 15:49 <+bridge_> ok, so your argument is: `serenity` uses feature gates so `libtw2` should too. you also like feature gates more than split libraries 15:50 <+bridge_> have you thought about the problem of using feature gates that I mentioned above (not knowing what you use, not knowing whether you selected the correct feature gates)? 15:53 <+bridge_> `error response from master: 403: banned: new server creation is currently restricted (2026-04-26), create an #admin-mail ticket on ddnet.org/discord to get approved` 15:53 <+bridge_> 15:53 <+bridge_> cool, whitelist already online it seems 15:53 <+bridge_> (doesn't matter for my testserver rn) 15:53 <+bridge_> it was online here: https://discord.com/channels/252358080522747904/420565311863914496/1497757926079856742 15:53 <+bridge_> annoying spammers keeping me up at night πŸ™ 15:54 <+bridge_> yes I understand - how does it work now, do you get a token or does your IP jsut get whitelisted? 15:55 <+bridge_> latter 15:55 <+bridge_> nothing is more permanent than a temporary solution 15:55 <+bridge_> :/ guess I am in the mud with my dyndns 15:55 <+bridge_> but I hope we'll remove it 15:56 <+bridge_> We discussed above what could be done, like limiting servers per IP and/or requring a token similar to the community tokens (just for you to think about), but I guess you have your reasons 16:00 <+bridge_> those are good suggestions. I implemented the above only because it was beyond my sleeping time and it felt like the shortest path to quickly work around the spam issue 16:00 <+bridge_> as i could notice the spam servers had multiple ips, so that could be bypassed by just making x servers for ip until reaching the limit 16:00 <+bridge_> I'd like to get away from my hacky solution and to something proper 16:03 <+bridge_> <0xdeen> ^ Thanks @dingwei0049 16:04 <+bridge_> > have you thought about the problem of using feature gates that I mentioned above (not knowing what you use, not knowing whether you selected the correct feature gates)? 16:04 <+bridge_> 16:04 <+bridge_> Can you point out where you talked about this or retell it now? 16:06 <+bridge_> . 16:15 <+bridge_> @byfox I'm also against a big lib, as that would mean that all components will share the same version number. So any breaking change in any component (e.g. gamenet-ddnet which has those quite frequently) will mean a breaking version bump for all modules. Verskl 16:15 <+bridge_> *accidental press send* 16:16 <+bridge_> versioning of libs building on top of libtw2 components would be a much greater pain 16:24 <+bridge_> Do the spam servers actually hold onto dozens of IPs or are they just spam registering and then letting them go? Could we help the issue by making registration take like a day or something? 16:25 <+bridge_> First time registration of course, after that you'd want them whitelisted so they can update player counts 16:35 <+bridge_> No one is stopping you from using the previous mechanics, I propose adding the ability to use Features 16:52 <+bridge_> maybe if u spent time on the implementation instead of deleting and timing out people for reactions in #announcements πŸ’€ πŸ’€ 16:52 <+bridge_> ok 16:53 <+bridge_> (when your discord somehow grabs keyboard input from another app and sends a message xd) 16:53 <+bridge_> i guess ill kep a different channel open xD 16:54 <+bridge_> @kebscs moderation discussion goes to admin mail or DMs 16:54 <+bridge_> biggest fear to type my password somewhere accidently XD 16:54 <+bridge_> ok email them 16:54 <+bridge_> no one is stopping you from using your own mechanism, you can do the re-export library yourself ^^ 16:55 <+bridge_> and why delete my message? 17:00 <+bridge_> I support this. 17:03 <+bridge_> Did I understand correctly that by `re-export library` you meant what I suggested to you? :) 17:04 <+bridge_> yes 17:05 <+bridge_> (I was mostly trying to show you that your dismissal of @patiga's concern could also be applied to you β€” you can also do the reexport library yourself) 17:09 <+bridge_> `re-export library` sounds good :) 17:09 <+bridge_> 17:09 <+bridge_> Any chance that you will accept https://github.com/ByFox213/libtw2/tree/pr_workspace_transfer_to_features ? 17:10 <+bridge_> I'm waiting for an answer to this question. If it suits you in general, I'll send a pull request :) 17:11 <+bridge_> ~~I'm waiting for an answer to this question. If it suits you in general, I'll send a pull request :)~~ 17:11 <+bridge_> 17:11 <+bridge_> Why am I asking? I'll just send a pull request and get an answer there. 17:11 <+bridge_> ~~I'm waiting for an answer to this question. If it suits you in general, I'll send a pull request :)~~ 17:11 <+bridge_> 17:11 <+bridge_> Why am I asking? ...I'll just send a pull request and get an answer there. 17:11 <+bridge_> ~~I'm waiting for an answer to this question. If it suits you in general, I'll send a pull request :)~~ 17:11 <+bridge_> 17:11 <+bridge_> Why am I asking?... I'll just send a pull request and get an answer there. 17:12 <+bridge_> i dont think its the right architecture for this specific project, shared versioning is meh IMO 17:12 <+bridge_> i dont think its the right architecture for this specific project, shared versioning is meh IMO (basically what patiga said.. :p) 17:15 <+bridge_> `re-export` is used by a huge number of libraries, I would even say that it is normal for rust 17:15 <+bridge_> 17:15 <+bridge_> If something happens, you can simply add the previous version as a separate library xd 17:15 <+bridge_> `re-export` is used by a huge number of libraries, I would even say that it is normal for rust 17:15 <+bridge_> 17:15 <+bridge_> If something happens, you can simply add the previous version as a separate library xd 17:15 <+bridge_> ``` 17:15 <+bridge_> [dependencies] 17:15 <+bridge_> foo_0_1 = { package = "foo", version = "0.1" } 17:15 <+bridge_> foo_0_2 = { package = "foo", version = "0.2" } 17:15 <+bridge_> ``` 17:17 <+bridge_> isnt `if something happens, you can simply add the previous version as a seperate library` admitting the approach has a flaw ._: 17:18 <+bridge_> also `is used by a huge number of libraries` is a stretch, if the sub-components have stable API's thats fine, but Patiga even said stuff like `gamenet-ddnet` changes frequently which is a good reason not to do it 17:19 <+bridge_> I already said that this is just a `re-export`, you can use it as you did before, the only difference is in convenience 17:20 <+bridge_> ``` 17:20 <+bridge_> [dependencies] 17:20 <+bridge_> libtw2 = { git = "https://github.com/ByFox213/libtw2.git", branch = "pr_workspace_transfer_to_features", features = ["common", "snapshot"]} 17:20 <+bridge_> ``` 17:20 <+bridge_> 17:20 <+bridge_> For convenience, I can do it this way and that's it. 18:23 <+bridge_> count the c++ projects 18:23 <+bridge_> 18:23 <+bridge_> now remember chillerdragon didnt know the difference between a pointer and a reference:cat_hehe: (love you chiller) 18:23 <+bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1289135024230109225/image.png?ex=69f1bb0c&is=69f0698c&hm=071eeab471467c3233f02603c542018aebb07f12402430a12d66bd7cd90b1a67& 21:13 <+bridge_> good slide 21:13 <+bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1498764018406396035/Screenshot_20260428-211229.png?ex=69f25843&is=69f106c3&hm=30ad05ea8cd0c66ba9824abcebe8aa1146ccce5c2029b1ceb41e71b2a35ec47d& 21:13 <+bridge_> https://youtu.be/DqpcVQIs3G8?is=piHMzrOuHaXLsa6y 21:13 <+bridge_> https://youtu.be/DqpcVQIs3G8 21:13 <+bridge_> https://youtu.be/DqpcVQIs3G8 21:16 <+bridge_> crazy. 21:16 <+bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1498764764002652312/image.png?ex=69f258f5&is=69f10775&hm=05eda13b68910350f0b16a0d2bd6da822f7c1e54b6864a8daa851e31ebe083ed& 21:16 <+bridge_> ChillerDragon: when fix your bot reconnecting every 10 minutes 21:27 <+bridge_> @heinrich5991 Can you reopen [#12107](https://github.com/ddnet/ddnet/issues/12107)? You close it with the wrong reasons, saying "I can fake a demo" and "doesn't help with moderation" is just incorrect. 21:27 <+bridge_> https://github.com/ddnet/ddnet/issues/12107 21:33 <+bridge_> you don't even have to have your own branch, you could create a `libtw2_bundled` in a separate repository 21:34 <+bridge_> This is also possible, but it needs to be added to the code, and people usually want a ready-made version right away. 21:34 <+bridge_> I think the solution isn't something that we should implement. closing it as "not planned" shows that I wouldn't accept a PR implementing it. it has more clarity than leaving it open 21:35 <+bridge_> you can create that ready-made version 21:36 <+bridge_> I understand that you think we shouldn't implement if give a reason. Right now, the reasons you gave weren't true. 21:36 <+bridge_> the problem is that it doesn't do what you want it to do. certify that the demos are genuine 21:37 <+bridge_> by introducing a signal that mods will treat as trustworthy, you make it easier for an attacker to fake a demo that will be trusted by moderators 21:37 <+bridge_> you can trivially fake a demo by inserting a chat message from someone that says something to get them banned 21:37 <+bridge_> (as it happens, on the server) 21:37 <+bridge_> (implement a f1 command that lets anyone say anything) 21:37 <+bridge_> (implement an f1 command that lets anyone say anything) 21:38 <+bridge_> fake trustworthiness is worse than no trust 21:38 <+bridge_> You keep saying it's simple to fake, but the system makes it literally impossible to fake a demo that happened yesterday. It helps with moderators because players can't report blocking or inappropriate behavior that happened 30 minutes ago without changing the timestamp to now. 21:38 <+bridge_> Keeping the shared pointer to the map seems bug prone (and also uses a lof of memory). I think showing the brush with the image of the selected layers makes the most sense. Copying only the required images to the brush map would be my other idea, but that would probably cause a noticeable FPS drop when copying the image data. 21:39 <+bridge_> it's impossible to fake a demo that happened yesterday today. it's possible to have faked a demo that happened yesterday yesterday 21:39 <+bridge_> what this system adds is making demos unalterable after they happen 21:39 <+bridge_> but you can alter them as they happen instead 21:40 <+bridge_> please don't focus on your specific solution, be open to other solutions to the same problem 21:40 <+bridge_> For you to fake a demo that happened right now, you have to stage it or pre-plan it. 21:40 <+bridge_> what if the demo was kindof server-sided with a simple report command ? 21:40 <+bridge_> Moderators are already trusting all demos, so again, this makes no sense. 21:40 <+bridge_> Idk how server demos work, never used them 21:41 <+bridge_> current system is bad doesn't mean that proposed system isn't also bad 21:41 <+bridge_> please don't start from "I have a solution that will solve it", but from "here's a problem, can we think about solutions?" 21:41 <+bridge_> I think there are good solutions to this 21:41 <+bridge_> but I don't think the one proposed in the issue is good 21:42 <+bridge_> Just because it doesn't solve 10% of the cases doesn't mean it's bad. Meanwhile, if it isn't this, there will never be a solution that is easy enough to implement that solves this problem. 21:42 <+bridge_> this attitude is a problem: "it's either my solution or nothing" 21:42 <+bridge_> Trusted Timestamps are a standard, it's not something out of the ordinary. 21:43 <+bridge_> I would want you to suggest a solution when discarding this one then. 21:43 <+bridge_> Closing the issue with things that are just wrong isn't the right way to do this. 21:44 <+bridge_> I don't think my comments are factually "wrong" 21:44 <+bridge_> You said it doesn't help moderators. I'm a moderator, and I know what our moderation system is failing on. 21:45 <+bridge_> I'm saying it'd be a problem if moderaters started trusting these demos more just because they were created in time 21:45 <+bridge_> Right now, we are fully trusting all demos, and you say it wouldn't help because it would give moderators a way to fully trust some demos when they shouldn't. 21:45 <+bridge_> the demo can't tell you if it was messed with, only that it was messed with when it originally happened 21:46 <+bridge_> https://tenor.com/view/mhi%E2%80%99ya-miya-miyha-iman-le-gif-12343990411991729820 21:46 <+bridge_> sorry 21:46 <+bridge_> The demo can tell it was generated at X time, and you can't use it to claim something that happened before that. 21:46 <+bridge_> unless the demos are recorded serverside you can't verify it. There is nothing more to it. 21:46 <+bridge_> It's simple as that, and it solves most cases. 21:47 <+bridge_> yes 21:47 <+bridge_> theoretically you could ask the server to sign individual snapshots etc. 21:47 <+bridge_> did we ever run into the issue of faked demos resulting in, lets say false bans? 21:48 <+bridge_> maybe frametee has had a bad influence xd 21:48 <+bridge_> sry 21:48 <+bridge_> Like I said in the issue, it verifies that the timestamps are correct. 21:49 <+bridge_> and how does that solve the problem lol? it doesn't mean the demo is legitimate 21:51 <+bridge_> Not that I know of, but I'm not sure if we would know. Not everyone appeals false bans. Also, we are already ditching a lot of reports for inactivity. lol 21:51 <+bridge_> 21:51 <+bridge_> If someone wanted to fake a demo to show that someone blocked just to get them out of the server, they could. 21:51 <+bridge_> that could work. 21:51 <+bridge_> but aren't chat messages netmessages, they aren't in the snapshots right? or do i remember wrong 21:51 <+bridge_> It means you can't take a legit demo and just change the message. 21:52 <+bridge_> but you can just make a new demo of the guy insulting you xd 21:52 <+bridge_> You can just record a fake demo live 21:52 <+bridge_> Which is a lot more difficult, and not pratical. lol 21:53 <+bridge_> The point is that it would prevent most chances of faking a demo. 21:53 <+bridge_> huh? change your dummy name to someone else and insult yourself. 21:53 <+bridge_> i guess the ping gives it away 21:53 <+bridge_> but it's not hard to fake demos at all xd 21:53 <+bridge_> Also, it means you can never go before today. You can't fake a demo saying "I was the first to do this part of the map" when changing the timestamps to 5 years ago. 21:53 <+bridge_> You can simply add fake chat messages in the client while recording the demo 21:54 <+bridge_> It will show in the demo. The demo stamp is stamping full. 21:54 <+bridge_> yea, but those could all be signed 21:54 <+bridge_> A lot more difficult. 21:54 <+bridge_> just has to be done once by someone and everyone else can use it 21:54 <+bridge_> yes that would work 21:54 <+bridge_> but i guess there is some more network overhead for each message then 21:54 <+bridge_> Not really, especially if you give bot authors a good reason to implement it (like mods trusting it blindly) 21:55 <+bridge_> Yeap, but it still would be able to go before the moment you decided to fake it 21:55 <+bridge_> You have to pre-plan it, and stage it. 21:55 <+bridge_> takes max 20min to implement a feature that does exactly that xd 21:55 <+bridge_> I'm not talking about implementation. 21:55 <+bridge_> No 21:55 <+bridge_> what about that is hard 21:57 <+bridge_> You have to know who you're going to do that to. You can't just decide to incriminate someone as revenge, unless you plan it and wait for next time. 21:57 <+bridge_> wait for what next time? i can do it right now 21:57 <+bridge_> That's where modded clients come in 21:57 <+bridge_> How would you do that? 21:58 <+bridge_> you can decide to incriminate someone. take the existing demo, replay it for a later time, adjust a chat message 21:58 <+bridge_> The demo is already stamped, unless you do it within the same run you decided to do that. 21:58 <+bridge_> connect another client via a proxy/vpn to get a different ping. message myself insults, open a ticket 21:58 <+bridge_> You can add the fake message while you are live on a server playing with the target 21:59 <+bridge_> That's fine, a moderator will see that demo and ban the proxied IP, not the innocent player. 21:59 <+bridge_> That's fine, a moderator will see that demo and ban the proxied address, not the innocent player. 21:59 <+bridge_> Just record a normal demo, then add an insulting chat message while recording 21:59 <+bridge_> they can see IPs from demos? 21:59 <+bridge_> no, but from servers, if not too long ago 22:00 <+bridge_> No, I'm talking about 30 minute reports. Unfortunately we can't really go much more before that. xd 22:00 <+bridge_> well robytes approach still works 22:00 <+bridge_> Yeah, if you do it while in the same run you decided. 22:01 <+bridge_> We managed to zero on a single case, while many other cases would already fail or give up. lol 22:01 <+bridge_> We are still ignoring the benefit of not being able to fake things that happened before today. xd 22:04 <+bridge_> your issue was closed because you were proposing a "solution" that doesn't actually fix the entire problem. You can open a new issue to discuss better solutions such as the network message/snapshot signing, that heinrich suggested if you want to. 22:04 <+bridge_> your issue was closed because you were proposing a "solution" that doesn't actually fix the entire problem. You can open a new issue to discuss better solutions such as the network message/snapshot signing, that heinrich suggested, if you want to. 22:05 <+bridge_> Open an issue and describe *the problem* that you want to solve. 22:13 <+bridge_> We are overcomplicating the problem. I described my problem in that issue, which is that we can't trust that the demo someone sent is was created at the time they claim it to. The solution doesn't fail to solve that problem. 22:13 <+bridge_> 22:13 <+bridge_> Besides that, I added that the solution also allows other things like player-organized competitions to verify the time of a submission, and to know if a demo was edited using cuts and other methods, for most cases. 22:13 <+bridge_> 22:13 <+bridge_> I will open another issue, but I don't think there will ever be a solution that won't take months to implement, if implemented at all. This solution takes a week at most, it's literally just a hash, request, and adding to the header. 22:14 <+bridge_> The demo is created at that time doesn't validate it 22:15 <+bridge_> read his issue first xd 22:15 <+bridge_> We aren't trying to validate the contents of the demo. 22:16 <+bridge_> I thought I read 22:16 <+bridge_> :nouis: 22:16 <+bridge_> it's not worth it imo 22:18 <+bridge_> The underlying issue is to distinguish faked demos from real one, and the timestamp so I said that... 22:19 <+bridge_> btw could we add the map crc to the ghost files? 22:19 <+bridge_> this would invalidate ghosts from earlier map versions 22:19 <+bridge_> Completely validating a demo is a bigger issue. 22:20 <+bridge_> maybe we could add a map UUID? 22:22 <+bridge_> i miss wrote, for ghosts this is already the case, there is an F1 option for strict crc matching for ghosts afaik. the rank demos are the issue. 22:22 <+bridge_> 22:22 <+bridge_> If you finish with a time 40min on the ddnet insane map "Justice" 22:22 <+bridge_> and the finish with a time of 1min on the KoG map "Justice" it overwrites the old record demo file 22:22 <+bridge_> i miss wrote, for ghosts this is already the case, there is an F1 option for strict crc matching for ghosts afaik. the rank demos are the issue. 22:22 <+bridge_> 22:22 <+bridge_> If you finish with a time of 40min on the ddnet insane map "Justice" 22:22 <+bridge_> and the finish with a time of 1min on the KoG map "Justice" it overwrites the old record demo file 22:23 <+bridge_> so you lose your 40min demo sadly 22:24 <+bridge_> some unique identifier for maps across versions would be needed 22:25 <+bridge_> yea, not easy to solve, you would also need to add that to the demo filename, bloating it even more 22:27 <+bridge_> perhaps we could "simply" not delete demos from maps with a different sha256 22:28 <+bridge_> would keep too many demos, but it'd be somewhat ok 22:28 <+bridge_> what happens if you finish with the same time? the filename would conflict. i guess that rarely happens 22:29 <+bridge_> or does the file name include the date? i don't remember 22:29 <+bridge_> How do I even do that now? Do I say that I can't trust that the timestamps of a demo are correct and ask for a solution? 22:29 <+bridge_> 22:29 <+bridge_> It literally feels that it's going to end up in the exact same spot. Is there even a solution for that, other than trusted timestamps, since that's something you guys are against? 22:32 <+bridge_> "Timestamps" is still solution space to me. The problem is that moderators can't trust demos sent by players? 22:34 <+bridge_> That would be the fact that moderators can't validate player demos, but we already have a solution for that, being TeeHistorian, but we are waiting on admins to fix the internal limitations, even I imagine have already been forgotten. lol 22:35 <+bridge_> I was really looking for something simpler, being just the timestamps. 22:36 <+bridge_> That would be the fact that moderators can't validate player demos, but we already have a solution for that, being TeeHistorian, but we are waiting on admins to fix the internal limitations, which I imagine have already been forgotten. lol 22:37 <+bridge_> I was really looking for something simpler, being just to know when something really happened. 22:37 <+bridge_> I was really looking for something simpler, being just to know when something happened. 22:38 <+bridge_> but you said to base the timestamps on the demo data. 22:38 <+bridge_> that means if you cut the demo or remove the chat or basically do anything to it even if it's just trivial things like skin changes, the timestamp is invalid. the server/client also needs an internet connection? so demos on local servers just can't have their timestamp verified? xd 22:38 <+bridge_> but you said to base the timestamps on the demo data. 22:38 <+bridge_> that means if you cut the demo or remove the chat or basically do anything to it even if it's just trivial things like skin changes, the timestamp is invalid. the server/client also needs an internet connection? so demos on local servers just can't have their timestamp verified? 22:44 <+bridge_> I said that we can infer other things based on that. 22:44 <+bridge_> 22:44 <+bridge_> If you cut the demo, it creates a new demo which you have to stamp again. We should always want the original for reports otherwise players might cut the parts that make them bad, trying to make it biased. 22:44 <+bridge_> 22:44 <+bridge_> Yeah, you can't timestamp an offline run. I don't see that as a bad thing, since at that point the server is yours and you could do anything. 22:44 <+bridge_> I said that we can infer other things based on that. 22:44 <+bridge_> 22:44 <+bridge_> If you cut the demo, it creates a new demo which you have to stamp again. We should always want the original for reports otherwise players might cut the parts that make them look bad, trying to make it biased. 22:44 <+bridge_> 22:44 <+bridge_> Yeah, you can't timestamp an offline run. I don't see that as a bad thing, since at that point the server is yours and you could do anything. 22:47 <+bridge_> By the way, if you re-stamp after a cut, you can know it's an edit by the timestamps being off by a few minutes. 22:47 <+bridge_> _ _ 22:47 <+bridge_> By the way, if you re-stamp after a cut, you can know it's an edit by the timestamps being off by a few minutes. 22:47 <+bridge_> > Yeah, you can't timestamp an offline run. I don't see that as a bad thing, since at that point the server is yours and you could do anything. 22:47 <+bridge_> 22:47 <+bridge_> and online servers can't belong to me and i could do anything? xd 22:47 <+bridge_> that's just lazy, i play offline a lot. 22:47 <+bridge_> 22:48 <+bridge_> > If you cut the demo, it creates a new demo which you have to stamp again. 22:48 <+bridge_> 22:48 <+bridge_> you can't stamp it with the correct time, that's the problem. 22:49 <+bridge_> no? the timestamp wouldn't be valid since the demo data changed, and if you dont base it on the demo data then you might aswell not base it on anything 22:49 <+bridge_> your approach just doesn't work for all cases. 22:50 <+bridge_> which is why the issue was closed as not planned 22:51 <+bridge_> It validates the time that it was edit, not the original time. The demo will end at `00:00` but the trusted timestamp will be at `00:05` which means you made an edit 5 minutes after the demo was over. 22:51 <+bridge_> 22:51 <+bridge_> We would still ask you to report using the original demo, which is the one with the timestamp at `00:00` that matches the timestamps in the demo. 22:53 <+bridge_> Which case, the edited demo one? 22:54 <+bridge_> what? that defeats the purpose of the timestamp. It's supposed to tell you when the demo was made, not when it was edited. 22:56 <+bridge_> When you edit a demo, it generates a different demo... 22:56 <+bridge_> It's meant to prove that the demo was generated at that time. It proves that the original timestamps were generated at that time if you have the original unedited demo. 22:58 <+bridge_> We are not talking about what can be inferred from this. The whole thing is that I want to trust that I know when a demo file was created. 22:59 <+bridge_> It's meant to prove that the demo was generated at that time. It only proves that the original timestamps are correct when you have the original unedited demo. 23:00 <+bridge_> We are now talking about what can be inferred from this. The whole thing is that I want to trust that I know when a demo file was created. 23:55 <+bridge_> my lord Heinrich!. i thought i was quick :kek: - your message popped up the second i hit sent