00:13 < bridge> nope 00:13 < bridge> wanted to test out a ddrace map with a dummy, didn't use super during my lan host 00:14 < bridge> dummy never touched the tp, only the real player did 00:15 < bridge> there is also a switch, which deactivates a tee dragger, which the dummy needs to hit 00:16 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1283551660173692938/screenshot_2024-07-05_10-04-59.png?ex=66e36823&is=66e216a3&hm=25d3a7d61804783b395efc9547501f43f6036a1ffb81e968ba7e05f222c78ebd& 00:16 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1283551720110293023/screenshot_2024-09-12_00-15-41.png?ex=66e36831&is=66e216b1&hm=b4f9d4ca0a482272f1943a3ae0a2a85deb4ec8b2df250389463fc8e5c43399c1& 00:17 < bridge> switch is connected to the switch door and the tee dragger, both will disable if it's hit, now idk if that's the cause of it, I'll test it out on this map still 00:17 < bridge> switch is connected to the switch door and the tee dragger, both will disable if it's hit, now idk if that's the cause of it, I'll test it out on this map still (prob tomorrow) 00:20 < bridge> Jia Tan is backdooring ddnet. 00:20 < bridge> ._. 00:31 < bridge> `Whenever I debug the game with the sound backend on, it disconnects the debugger for an unknown reason 50% of the time.` 02:18 < bridge> Let me know if it was good then I’ll get it too 02:21 < bridge> Yes the keepalive is not needed when the input is being sent. It never hurts. But the way it is implemented in the official client is. Send keepalive only if nothing else was sent for too long. That’s usually happening when the client gets into a weird state. But when actively playing the input is supposed to be sent in a high frequency too. 02:22 < bridge> @jxsl13: why? What are you working on? 02:22 < bridge> can you fix my pr xD 02:22 < bridge> just looking through the client code 02:22 < bridge> Oh you made a pr 02:23 < bridge> wanted to see of I could connect like 100 clients to 100 servers 02:23 < bridge> Ehm later gotta hop under the shower quickly 02:23 < bridge> and check the chat for bot client messages 02:23 < bridge> no hurry, it's 2:23 am here 02:23 < bridge> sus ddoser jiggsel 02:24 < bridge> call me Google, the Data Kraken 02:40 < ws-client> bra u did a huuge pr again with 100 different things @jxsl13 02:41 < bridge> always ._. 02:41 < ws-client> stap it 02:41 < bridge> 🔥 02:41 < ws-client> ``ctx, cancel := signal.NotifyContext(context.Background(), os.Interrupt)`` 02:42 < ws-client> this is for ctrl+c? 02:42 < bridge> I reduced it from 45 files 02:42 < bridge> yes it is 02:42 < ws-client> i cant beleive i did not implemented that 02:42 < ws-client> @jxsl13 you can do 200 files but please split it up in prs that only do one thing makes the review easier and faster 02:43 < ws-client> will also help you find your bug if there is only a smaller diff 02:43 < bridge> first part is the snap storage 02:44 < bridge> where error was replaced with a bool, indicating whether an item was found or not 02:44 < ws-client> the graceful exit is for sure its own pr. The gitignore could also be merged instantly. Than there is the typo. And than there is lots of other stuff 02:46 < bridge> let me grab my laptop 02:49 < ws-client> I personally would prefer 10+ prs xd but if thats too annoying for you you can also bundle all the little things that dont actually change anything into one big pr 02:52 < bridge> I will do some small prs 02:52 < ws-client> your gitignore pr broke the pipeline ^ 02:53 < bridge> I work like this: start at one location and then prow through the whole codebase and at the end everything depends on each other and it's a giant pain to split that up xD 02:53 < bridge> plow* 02:54 < bridge> but that's ok 02:54 < ws-client> multiple ways of doing it i use all of them 02:55 < ws-client> as soon as you find something that is not tied to your initial task you either write it down for later, create a new branch and pr right now, or in the end split everything by manually committing with `git add -p` onto the correct branch 02:56 < ws-client> yes dependencies belong together but not everything in your pr depends on each other 03:10 < ws-client> I don't want to annoy you too much xd. If you want me to help you split let me know. 03:42 < bridge> one pr ist ready 03:42 < bridge> ._. 04:02 < ws-client> bro wat xd 04:52 < ws-client> @zwelf the whole database failsafe and backup code relies on the fact that ddnet only does inserts right? Updates to existing records such as points are not covered by that right? This and chaning map ratings is why the recompute points script has to be run right? 04:53 < ws-client> I am asking because I want to use that system to update existing records in my database and that does not seem to be support the backup stuff. So I can just ``if(w != Write::NORMAL) return false`` i guess. 09:31 < bridge> 2024-09-12 12:30:30 E http: https://raw.githubusercontent.com/tee-community/FlatCity-maps/main/FlatCity_2024_09_10.map failed. libcurl error (63): Maximum file size exceeded 09:31 < bridge> 09:31 < bridge> 😭 2024 09:31 < bridge> 3mb is big filesize? 10:13 < bridge> no ping moment @zwelf2 10:27 < bridge> <0xdeen> Github doesn't want you to use them as a static file hoster I guess 10:30 < bridge> it is no ddnet map limit size for HTTPS download? 10:33 < bridge> hm, it's no ddnet limit 10:33 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1283706984415236147/image.png?ex=66e3f8cb&is=66e2a74b&hm=57b5d142323bc36d3ac9ed5ff46219d0d6697c6918ef78921fa18943614942e8& 10:42 < bridge> yes, points aren't covered by the database failsafe code. But working on a solution for https://github.com/ddnet/ddnet/issues/8798#issuecomment-2319081388, that might change the model a bit. 11:30 < bridge> @robyt3 @learath2 can you explain why this should be? 11:30 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1283721408945455145/image.png?ex=66e4063a&is=66e2b4ba&hm=b4df2fb09f8ddbfc10c37edb1c7f507b23dad49c6776c9310e74c62b73813896& 11:34 < bridge> Wouldn't it be more correct for a tee moving through freeze because it would take into account the fractional part of the tick? 11:34 < bridge> that's very complicated 11:34 < bridge> also previous behavior did not do that 11:34 < bridge> ig if u want old freeze stars you also have to use the it like the server did it, simply the cur tick pos xxd 11:35 < bridge> there's no variable for "mix % where the tee entered freeze" you need to calculate the intersection 11:36 < bridge> Why? The actual true current pos of the tee on the screen doesn't depend on when the tee entered freeze 11:37 < bridge> wdym 11:37 < bridge> the stars get summoned and do not follow the tee afterwards 11:37 < bridge> we only care about the tee position 1 time 11:38 < bridge> which is taken from the most recent snapshot where the server told us that tee was frozen 11:39 < bridge> `Position = mix(vec2(Prev.m_X, Prev.m_Y), vec2(Player.m_X, Player.m_Y), IntraTick);` this is where the tee will be rendered 11:40 < bridge> (Technically this but cached and maybe predicted and smoothed, available in `m_RenderPos`) 11:41 < bridge> Since the freeze stars, as tater said, aren't moving it almost doesn't matter anyway. 11:41 < bridge> 11:41 < bridge> in worst case it's 1/50 tick off 11:41 < bridge> Isn't this just going to be wrong? 11:41 < bridge> it will not render from the position where the tee entered freeze 11:41 < bridge> Well you asked me "why this should be". Not whether it makes much of a difference, or how much it's off 11:42 < bridge> Why should the stars be rendered from where you entered freeze? The stars start at your tee position even if you enter freeze and then leave it 11:42 < bridge> I never said they should that was Learath 11:43 < bridge> I didn't? 11:44 < bridge> idk what you mean then 11:44 < bridge> the lack of prediction is intentional 11:44 < bridge> You brought up the "where the tee entered freeze". After which I said that doesn't matter 11:44 < bridge> Even the unpredicted position of the tee is mixed, it's not just the snapshot position 11:45 < bridge> but if the server was summoning the stars it would never mix the positions? 11:45 < bridge> what are we mixing them by? 11:45 < bridge> I don't understand 11:45 < bridge> That I won't argue with, this is probably a more accurate emulation of the old stars 11:46 < bridge> tbh I don't understand why the air jump effect does the mixing either. 11:46 < bridge> I think it's more wrong 11:47 < bridge> you're using the prediction intratick to mix the non-predicted positions 11:47 < bridge> ah wait nvm 11:48 < bridge> Whenever I'm working on the teeworlds or ddnet source my first rule is that "If I'm questioning matricks' code, I'm likely just understanding it wrong" 11:49 < bridge> Events should use the unpredicted position. 11:49 < bridge> With unpredicted I mean non interpolatable, but anti-ping is ok 11:49 < bridge> I'm not sure what IntraGameTick even means to the client 11:51 < bridge> tee's cannot jump on intraticks. they can only jump on real ticks. so their position should be aligned to real ticks right? 11:52 < bridge> Yes 11:52 < bridge> so why we are mixing the air jump position lol 11:52 < bridge> The server sends a jump as event with a position 11:52 < bridge> Do they? 11:52 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1283726941001875487/image.png?ex=66e40b61&is=66e2b9e1&hm=afdc53e1fee3e16915151dfeb9649b85d21411de73caf5f10d57d539b5f5bf62& 11:52 < bridge> To me it's a visual effect so it should appear more closely with the rendered tee position, and not at the position where the event happened on the server 11:52 < bridge> Is that prediction code? 11:53 < bridge> ``void CGameClient::OnNewSnapshot()`` 11:53 < bridge> Yes, but that can be predicted too 11:53 < bridge> but it will never align to the rendered tee because these are unpredicted positions 11:53 < bridge> unless you have 0ms ping 11:53 < bridge> If you jump at 0.75 of a tick. then the next tick will generate the jump effect 11:54 < bridge> In fact you cannot generate events intertick 11:54 < bridge> bcs then you'd generate millions of events 😄 11:54 < bridge> every time you call the interpolation code 11:55 < bridge> Wait i send you the holy grail of prediction 11:56 < bridge> For a very fast moving tee, this ends up creating the jumping effect actually under the tee, instead of at the end where the air jump really happened but the tee isn't rendered there locally yet because we haven't interpolated all the way to that tick yet 11:57 < bridge> Well maybe that is too much off-topic for now. 11:57 < bridge> 11:57 < bridge> But anti ping can predict to the same tick as the server currently is on. So the effect is accurate 11:57 < bridge> Atleast that's how I remember making sense of this code when I read it years ago 11:57 < bridge> for local players 11:57 < bridge> but these are unpredicted positions 11:57 < bridge> For anti-ping players it's a problem anyway, because they jump around too much 11:58 < bridge> Predicted or unpredicted doesn't matter, we are between ticks, the tee will be rendered in between the two positions in the snapshots whether you like it or not, that's just how it is 11:58 < bridge> but it wont? lol 11:58 < bridge> ok 11:58 < bridge> I'm going to do something else 11:58 < bridge> but it's not going to get rendered between the two snapshots? am I wrong? 11:59 < bridge> Are these snapshots the anti ping predicted snapshots. or the "real" server snapshots? 11:59 < bridge> "real" 11:59 < bridge> Then it defs makes no sense to interpolate 11:59 < bridge> antiping does not create snapshots 11:59 < bridge> Ah ok 11:59 < bridge> you're just mixing for lulz as far as I can tell 12:00 < bridge> it's gonna be in the wrong spot either way 12:00 < bridge> ah wait 12:00 < bridge> Wtf 😮 12:01 < bridge> but I still find it weird 12:01 < bridge> I mean nobody uses that anyway 12:01 < bridge> But still feels wrong 12:01 < bridge> people do use it 12:01 < bridge> it's off by default lol 12:01 < bridge> possibly a major use it? 12:01 < bridge> possibly a majority use it? 12:01 < bridge> Ok wait 12:02 < bridge> let's not talk in predict. 12:02 < bridge> 12:02 < bridge> Do you mean Antiping vs non-antiping 12:02 < bridge> huh 12:02 < bridge> ok nvm it's on by default 12:03 < bridge> I had a friend download the game a few days ago and for some reason his antiping was off when he installed it 12:03 < bridge> but the client config says enabled 12:03 < bridge> I think anti-ping is off or not 12:03 < bridge> this one 12:03 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1283729693672996874/image.png?ex=66e40df1&is=66e2bc71&hm=8c10904343278e3c1cf2da20602c53fbb1f0f4792177632d6f5648614961a095& 12:03 < bridge> but your local tee is still predicted using cl_predict 0 12:03 < bridge> but your local tee is still predicted using cl_predict 1 12:03 < bridge> ```cpp 12:03 < bridge> MACRO_CONFIG_INT(ClAntiPingPlayers, cl_antiping_players, 1, 0, 1, CFGFLAG_CLIENT | CFGFLAG_SAVE, "Predict other player's movement more aggressively (only enabled if cl_antiping is set to 1)") 12:03 < bridge> ``` 12:04 < bridge> but cl_antiping? 12:04 < bridge> that's just a global config for all of them 12:04 < bridge> I assume that setting you posted is only on if the one i posted is one 12:04 < bridge> I assume that setting you posted is only on if the one i posted is on 12:04 < bridge> Sure? 12:04 < bridge> Like global yes, but if not on, others are also not on, I assume 12:05 < bridge> idk what you mean 12:05 < bridge> oh wait 12:05 < bridge> If cl_antiping is 0 12:05 < bridge> 12:05 < bridge> then ALL antiping is off 12:05 < bridge> it is off by default 12:05 < bridge> ```cpp 12:05 < bridge> MACRO_CONFIG_INT(ClAntiPing, cl_antiping, 0, 0, 1, CFGFLAG_CLIENT | CFGFLAG_SAVE, "Enable antiping, i. e. more aggressive prediction.") 12:05 < bridge> ``` 12:06 < bridge> "more aggressive" implied there's any prediction lol 12:06 < bridge> "more aggressive" implies there's any prediction lol 12:07 < bridge> Yeah ok, but your code is specifically for non-anti ping i guess 12:07 < bridge> So i even less understand why they interpolate 12:07 < bridge> it makes sense for non-anti ping a little bit 12:07 < bridge> There is ofc prediction even without antiping. This game is unplayable without any prediction with anything above 10 ping 12:08 < bridge> One thing however which is important is, that teeworlds snapshots also include events, and are only send every 2nd tick, which makes the whole code wrong _anyway_ 12:08 < bridge> in all cases 12:08 < bridge> sorry I meant to refer to the cl_antiping_players tip 12:08 < bridge> ```cpp 12:08 < bridge> MACRO_CONFIG_INT(ClAntiPingPlayers, cl_antiping_players, 1, 0, 1, CFGFLAG_CLIENT | CFGFLAG_SAVE, "Predict other player's movement more aggressively (only enabled if cl_antiping is set to 1)") 12:08 < bridge> ``` 12:09 < bridge> Those are also still "predicted" even if anti-ping is off 12:10 < bridge> If you turn off `cl_predict` you'll get pretty close to how it really looks like 12:10 < bridge> I'm aware of cl_predict 12:11 < bridge> technically yes it always predicts their movement it just doesn't show it to you 12:11 < bridge> What, other players are not predicted if anti-ping is off, are they? 12:11 < bridge> Else they'd teleport even without anti-ping 12:11 < bridge> they're still in the predicted world 12:12 < bridge> otherwise you would fall through them 12:12 < bridge> That is the client side prediction (aka cl_predict 1) 12:12 < bridge> But i mean the actual other players 12:12 < bridge> cl_predict just shows you the server snapshots 12:12 < bridge> cl_predict 0 just shows you the server snapshots 12:12 < bridge> you can't just delete the other tees even if you use cl_antiping_players 0 12:13 < bridge> Ok, other take 12:13 < bridge> `inline float IntraGameTick(int Conn) const { return 1.0f; }` do this change, turn off `cl_predict` you'll see what all the mixes are doing 12:13 < bridge> Without antiping other players are not predicted for future ticks. They are always very close to the server snapshots 12:13 < bridge> if no new snapshot arrives maybe they are predicted for 1-2 ticks 12:14 < bridge> only visually 12:14 < bridge> the prediction physics keeps them in the gameworld 12:14 < bridge> Yes, suire 12:14 < bridge> but a very old version of them 12:14 < bridge> with 300ms ping they are 300ms old 12:15 < bridge> yes but their "ghosts" can still bump you and such in the prediction even though it doesn't show them bumping you 12:15 < bridge> Yes, sure 12:15 < bridge> yes but their "ghosts" can still bump you in the prediction even though it doesn't show them bumping you 12:15 < bridge> I can almost do Linear with 60 ping without any prediction, surprising 12:16 < bridge> I think actually mixing the jump effects is correct but mixing the freeze stars is wrong 12:16 < bridge> If you want to emulate the old behaviour exactly, you are right 12:17 < bridge> the freeze stars should come from the position where the tee entered freeze. If you mix them they will spawn from outside the freeze 12:17 < bridge> Yeah, but that is kinda the problem. 12:17 < bridge> 12:17 < bridge> Prediction is such a bad word. 12:17 < bridge> 12:17 < bridge> Anti-ping is also a prediction, but not the same as local player prediction which ofc has all information available of the local players directly. 12:17 < bridge> 12:17 < bridge> The non-anti ping prediction for these airjumps clearly uses snapshot prev and cur. 12:17 < bridge> 12:17 < bridge> Which are (I assume) server snapshots. 12:17 < bridge> 12:17 < bridge> So why mixing here 12:17 < bridge> 1. Because snaphots only arrive every 2nd tick 12:17 < bridge> 2. It's still wrong 12:17 < bridge> The event should instead say in which tick the jump happened and there is the position where the tee was when the jump happened 12:18 < bridge> or other way around. the jump effect should be an event with a position the server sends 12:18 < bridge> In this case there is no event, that's why the hack is utilized 12:18 < bridge> Can the server not send that event? 12:18 < bridge> Or why is it missing 12:19 < bridge> sending the tick where the jump happened is wasteful for little benefit 12:19 < bridge> It's not an event at all, the state change between the snapshot is used to trigger it. It's probably missing because matricks didn't want to waste the bandwidth, but that's a gues 12:19 < bridge> It's not an event at all, the state change between the snapshot is used to trigger it. It's probably missing because matricks didn't want to waste the bandwidth, but that's a guess 12:19 < bridge> no one will notice 12:19 < bridge> Wtf. isn't it a core-event? 12:19 < bridge> Are they not synced? 12:19 < bridge> All other shit events are send too 12:19 < bridge> Why not this 12:20 < bridge> you have to wait 2 ticks anyway 12:20 < bridge> Why wouldn't it be synced? The snapshots provide the synchronization 12:20 < bridge> The effect isn't synced if you mean that part 12:21 < bridge> Yeah 12:21 < bridge> I am glad i changed that 12:21 < bridge> there is no `NETEVENT_AIRJUMP_EFFECT` 12:21 < bridge> Now i also understand why twgame didn't give me an airjump event 12:21 < bridge> but an air-jump sound 12:21 < bridge> lmao 12:21 < bridge> so the sound is completely off from visual 12:21 < bridge> nice 12:21 < bridge> Yes, how have you never noticed that before? 12:22 < bridge> It's actually something I notice in normal gameplay with meh ping 12:22 < bridge> K, but anyway 12:22 < bridge> I'd send an event 12:22 < bridge> That is the only logically thing to do in my head 12:22 < bridge> ironically we could remove the air jump sound event and the prediction of it would be more accurate 12:23 < bridge> IMHO events shouldn't be predicted in an interpolation fashion anyway 12:23 < bridge> agreed 12:23 < bridge> predicted in anti-ping way yes 12:23 < bridge> (idk why there is an airjump sound event btw, it'd definitely be more accurate to do it along with the effect however that one gets generated) 12:23 < bridge> else local players have no jump effects, that sucks too :lol: 12:23 < bridge> tja 12:24 < bridge> it would be very easy 12:24 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1283734857238843443/image.png?ex=66e412c0&is=66e2c140&hm=b5c3173a418a6f688252652f1e946bc2748eb8b53197f6d4037bd26860089041& 12:24 < bridge> Do you question matricks' decisions? 12:24 < bridge> That is literally why i did that 12:24 < bridge> for my vanilla implementation 12:24 < bridge> I said I'm "likely" wrong, not always wrong 12:24 < bridge> :lol: 12:29 < bridge> sorry for hassling you. The mixing suggestion was not incorrect. 12:31 < bridge> My motivation just increased by 5%. 12:31 < bridge> 12:31 < bridge> Fixing weird design choices with backward compat breaking changes is just so epyc dev moment 12:32 < bridge> It's fine. I was more annoyed at some nasty code a coworker wrote, I just needed a second 12:52 < bridge> I cba to set up a bar on this laptop yet, so I check my battery with `acpi -b` 🙃 13:11 < bridge> based 13:27 < bridge> on wat laptop? 14:07 < ws-client> http://paste.pr0.tips/rBd checkout this epic html moment 14:08 < bridge> is that... a green background? 14:08 < ws-client> yes 14:08 < bridge> holy :poggers: 14:08 < ws-client> https://www.youtube.com/shorts/kAzfu1K4_xo got it from this short xd 14:11 < bridge> on my framework 14:12 < bridge> I looove when I can just put whole words in color property and it will be like: "yep seems good, lemme just replace non hex values to 0s and pad it to next number divisible by 3" 14:22 < ws-client> @milkeeycat most sane number parser. We should have used that for colored broadcasts in ddnet 14:45 < bridge> what's the default rcon password for a server started from ingame? 14:45 < bridge> randomized 14:45 < bridge> rip 😦 14:45 < bridge> how imma kick my dummy 😢 14:49 < bridge> is there any way to retrieve that password :o? 15:10 < bridge> It’s printed in the beginning of the log 15:10 < bridge> If you are to lazy to check the log you can buy a ddnet 0day rcon exploit from me for 10 bucks 15:10 < bridge> If you are too lazy to check the log you can buy a ddnet 0day rcon exploit from me for 10 bucks 15:12 < bridge> But tbh I just recommend adding a password to your config and restarting the server 15:14 < bridge> Omg we have freeze stars before snowflake fade out xd 15:35 < bridge> got another pr for you >:D 15:37 < bridge> autoexec_server.cfg in DDNet.app, I guess 15:38 < bridge> yay, it works 15:44 < bridge> Snowflake fade out was hard to see tho :gigachad: 15:45 < bridge> @aoetw should be available on steam nightly in a few days :gigachad: cl_freeze_stars 15:47 < ws-client> @jxsl13 yea i saw it im just a bit busy i will have a look tomorrow hopefully 15:47 < bridge> k 15:52 < bridge> == summon furo bot === 15:52 < bridge> How did you find the maps with invalid tunes? 15:52 < bridge> `config_retrieve` then `grep` 15:53 < bridge> That easy? Damn! ty 15:53 < bridge> Assuming you know what you are looking for 15:53 < bridge> Like commas in numbers I guess 15:54 < bridge> Otherwise you'd have to load every map and check if any settings could not be found 16:04 < bridge> ChillerDragon is your/any good ctf server running 0.6 or 0.7 (now that we can :B)? 16:39 < ws-client> now that we can what @Mr.Gh0s7 16:43 < ws-client> I can for the life of it not figure out what you are asking so i will give you a bunch of random answers @Mr.Gh0s7 there are 0.6 and 0.7 servers running and yes I also run 0.6 and 0.7 servers even bridge servers 16:45 < ws-client> not sure what makes a ctf server "good" for you. But mine have shared stats between 0.6 and 0.7 that add a ranking and track kills since 6 years. If by good you mean have actual players on it that would be jsaurus bridge server that is currently the hottest CTF place to be with almost daily activity 17:04 < bridge> https://github.com/the-nix-way/dev-templates 17:05 < bridge> `nix flake init --template "https://flakehub.com/f/the-nix-way/dev-templates/*#rust"` 17:22 < bridge> imagine needing templates and not writing them yourself, reading docs for 3 hours because you made a simple typo and nix is verbose enough that you feel like debugging your kernel 17:52 < bridge> "jsaurus" server, "tee.community" server, "mdx" server 17:53 < bridge> ok ty :) 17:53 < bridge> first twos are european ones afair, last one is moscow based 18:01 < bridge> if you had a stick from earth to the moon and you pushed it, u wouldnt notice it being pushed from the moon until 21 hours pass 18:01 < bridge> thanks for coming to my ted talk 18:01 < bridge> Hi, can I ask for a second vanilla server for USA? The server has been full everyday. 18:01 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1283819756893507716/image.png?ex=66e461d2&is=66e31052&hm=bed4551d327c31a925a92b9621f2b9db6fbc6bf6d62a88e1c696d2f368a997a5& 18:03 < bridge> Also, would it be possible to record a demo by the server, and somehow get that demo file? 18:06 < bridge> the state of a server is recorded in teehistorian - regular player's can't access that tho i'm afraid 18:15 < bridge> Chillerdragon :O I missed the answers xD (now that we can :B) = now that we can connect to 0.7 server :) ty for the info 20:21 < bridge> There is `sv_auto_demo_record` and `sv_player_demo_record`, the first one records one big demo and the other one records one for each finish. 20:27 < bridge> https://github.com/sanctuary-js/sanctuary-def i dunno what this is but looks pretty cool 21:10 < bridge> is it possible to run both client and server connected to visual studio debugger? 21:11 < bridge> or at least build both at once 21:12 < bridge> u can build "BUILD_ALL" or smth like that 21:13 < bridge> CLion 21:15 < bridge> i prefer vs 21:15 < bridge> i doubt vs can do this 21:16 < bridge> :kek: Well then, debug one by one 21:17 < bridge> found this 2009 so answer xd 21:17 < bridge> https://stackoverflow.com/questions/447840/debug-multiple-copies-of-a-program-from-one-visual-studio-instance 21:17 < bridge> i think it has smth to do with cmake since its debug targets 21:17 < bridge> nop, cmake is just making vs projects for u to build 21:18 < bridge> how does it know what can it build 21:20 < bridge> in CLion you can run any number of configurations at the same time 21:20 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1283869859842883695/image.png?ex=66e4907b&is=66e33efb&hm=94c5adf357724e0402fec10b7a0bc9e49c6e57c00f9ed757eeedff362534ae42& 21:20 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1283869860119580702/image.png?ex=66e4907b&is=66e33efb&hm=4a7625c8013fb87e293e797fc330726406ecfe1a27418ed2ee1fdb427250f66f& 21:21 < bridge> * in any jetbrains products, like phpstorm, rider 21:21 < bridge> \* in any jetbrains products, like phpstorm, rider 21:22 < bridge> >>> In software development, CMake is cross-platform free and open-source software for build automation, testing, packaging and installation of software by using a compiler-independent method. **CMake is not a build system itself; it generates another system's build files.** 21:22 < bridge> so its just generator of build files, what you would do manually with make for example, or fancy .sh/.bat script 21:23 < bridge> afair bam builds without any generator :justatest: 21:23 < bridge> yes thats true it makes the build targets i can choose 21:23 < bridge> so i guess it could make client+server at once to run 21:24 < bridge> cmake has nothing to do with visual studio environment i mean 21:25 < bridge> doesnt it make those? 21:25 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1283871041852145724/image.png?ex=66e49195&is=66e34015&hm=fcefad7fa36592fcb1ad631bcdd6f260c05043fe089b1ad7de9abf7fa692a88f& 21:25 < bridge> it makes targets, vs let u to run em 21:25 < bridge> lets* 21:25 < bridge> yes thats what i mean 21:25 < bridge> so a target that is client+server 21:27 < bridge> from what i read from there you can run another instance by pressing button in some context menu 21:27 < bridge> idk how to do that 21:27 < bridge> in cmake project 21:37 < bridge> cant find anything in pure ddnet folder opened in vs too 21:37 < bridge> i remember using cmake-gui though 21:38 < bridge> it literally did everything as vs project so you could choose many to run (afair) 21:42 < bridge> Ui makes me sick 21:55 < bridge> i think its not possible in vs from what i saw on stack overflow 21:55 < bridge> maybe new cmake target but idk how to do it 22:14 < bridge> lol stars don't get destroyed 22:14 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1283883350834024559/bandicam_2024-09-13_01-12-43-091.mp4?ex=66e49d0c&is=66e34b8c&hm=7c2bbbe6404093e47593cd35ac6c36c1616db2aa401f4cd4fc09cf9ad0c012e3& 22:17 < bridge> Why would you need that :o 22:19 < bridge> cmake --build . -j -t game-client -t Game-Server (or whatever they are called in the cmake file I forgot) 22:23 < bridge> he wants to attach debugger 22:23 < bridge> On both simultaneously? 22:23 < bridge> yup 22:23 < bridge> Hmm, yeah that sounds like a workaround is needed 22:24 < bridge> Isn't the server attached to the client if launched through it? Or is it just another executable running alongside it 22:27 < bridge> https://developercommunity.visualstudio.com/t/CMake-Project-Multi-target-Debugging/916069 22:27 < bridge> 22:27 < bridge> Known and wanted suggestion tho it seems 22:29 < bridge> in latest master ? 22:30 < bridge> then report it to github and tag tater 22:30 < bridge> even tho i am not sure why his change should be related with it xd 22:52 < bridge> @totar @learath2 I think the server should have a gameinfo flag like "allow hook coll" or "allow x skins", so it can kinda control whether or not to show the stars 23:04 < bridge> It's tied fo freeze bar info 23:14 < bridge> Right, but I can't get the demo from the vanilla server, right? 23:14 < bridge> Actually, who should I contact about this? 23:25 < bridge> runs separately from client 23:25 < bridge> Like as a normal player? No, you would need access to the server. 23:57 < bridge> is opening 2 instances of VS not functional enough for you?