00:17 < bridge> Oh wow. Who said TeeUniverse? Its client and server code does not really exists but the editor is used for Infclass maps. I maintain a fork at https://github.com/infclass/teeuniverse and last year added a few video tutorials. 00:18 < bridge> Meh, I somehow misread teeverse. nvm then 00:21 < bridge> i want the teeuniverse org xd 00:21 < bridge> perfect space to host mods 00:29 < bridge> Yeah, and it was supposed to be something like that. But then the author had lost their energy and disappeared. 00:31 < bridge> I wish we could at least contact him for the name <.< 00:32 < bridge> BTW do you know if there is a place for teeworlds shared knowledge base? DDNet wiki is focused on ddnet (what a surprice). Teeworlds forum is dead, various fandom wiki, etc are dead. 00:32 < bridge> I could not find a resource with e.g. list of all known clients. 00:33 < bridge> I am sure ddnet wiki would accept teeworlds content too, but not really, chilllerdragon probs has some repos where list of mods etc. are 00:33 < bridge> They do not respond. It seems that they registered the account (https://github.com/necropotame, and the same @gmail.com) exactly for this project. 00:33 < bridge> Ah alright 00:33 < bridge> Too bad 😄 00:33 < bridge> Yeah but those are focused on server mods. 00:57 < bridge> tee cinematic universe 01:15 < bridge> @0xdeen dunno if u saw, but really would like to add merge queue so i can just spam prs xd 01:25 < bridge> Just because it is all content that exist right now. Feel free to use ddnet wiki for any teeworlds related content. 01:43 < bridge> wait what ? you aren't in the ddnet group on github ? 01:44 < bridge> i can change everything in ddnet repo 01:44 < bridge> but not on new ones xD 01:46 < bridge> wdym new ones ? like ddnet-web ? 01:46 < bridge> like ddnet-rs 01:46 < bridge> not even robyte can xD 01:46 < bridge> only owners of ddnet can 04:40 < bridge> 45 degree angle bind using 2 mouse distance -> just snapping in client 04:40 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1324583173467799572/Screencast_From_2025-01-03_12-37-33_trimmed.mp4?ex=6778adb6&is=67775c36&hm=664104de0dff6cec0a63705aa74f0add104911027755d1db979176045b8ab298& 04:40 < bridge> someone tell me why it's a bad idea 😅 05:16 < bridge> what are you asking? 05:23 < bridge> i want a better solution to the 45 angle degree bind inside the client versus the hacky current bind 05:25 < bridge> the video shows smth like "snap your weapon fires to 45* when cl_snap_aim_45 1" 05:25 < bridge> it would be a little OP in gores if just rounded your mouse to the nearest 45 instead of the janky way it is now but maybe we don't care 05:26 < bridge> it would be easy to put in settings instead of having a custom bind for players' mousesens, but yeah it's a lot stronger than the current bind 05:27 < bridge> if it didn't have a chance of randomly giving you the wrong angle and it didn't reset your mouse position to the middle of your screen it would be really good for up down saves 05:27 < bridge> but ddnet is not gores so perhaps not a concern idk 05:29 < bridge> it would make some shotgun and laser inputs a lot easier in ddnet 05:30 < bridge> I think I lean towards make it an official feature and remove the jank even if it makes some stuff easier 05:30 < bridge> and then we don't have to maintain effectively a bug in the mouse cursor system 05:30 < bridge> im for removing the jank but also think it's very powerful 05:32 < bridge> as long as it doesn't remove some aspect of gameplay by trivializing it then I don't think it matters that it's powerful because everyone will have it 05:32 < bridge> dummy is a thing that exists 05:33 < bridge> this is like 1% as powerful 05:33 < bridge> dummy is a thing that exists, which we added 05:38 < bridge> i woke up 06:18 < bridge> @louis.place done, it's unintended. 06:55 < bridge> ah nice, i dont remember reporting it though 😅 \ 06:58 < bridge> also this pr will conflict with yours 😬 07:15 < bridge> you can safely remove all code in `src/game/client/components/players.cpp` 07:17 < bridge> your settings really shouldn't touch visual code, visual code not matching control is a bug, and should make it match instead of patching visual for special cases. if you remove your changes in players.cpp we don't conflict and the angle will snap with both pr 07:17 < bridge> you can safely remove all changes in `src/game/client/components/players.cpp` 07:19 < bridge> i count this as you reporting it https://discord.com/channels/252358080522747904/293493549758939136/1324583174197481606. cuz it is very related to the input rollback 07:21 < bridge> hm but i only snapped the input x/y instead of mousePos. if I snap mousePos won't the cursor ingame also snap? im not too sure 07:21 < bridge> i don't understand 07:22 < bridge> you don't need to snap mousepos 07:22 < bridge> oh i get it now 07:22 < bridge> let me think 07:23 < bridge> i can make it happen without special handling. 07:24 < bridge> @louis.place mind if i just take over the PR? for 19.0 i'm assuming, cuz i'm still fixing 18.9's bugs 07:24 < bridge> yeah i dont mind 07:25 < bridge> my thing was just a proof of concept thing. should probably get some approval on it though 07:25 < bridge> it really makes the angle bind a lot stronger 07:26 < bridge> ye 07:44 < bridge> <0xdeen> @realfail Thank you! 08:37 < bridge> I personally capture with tcpdump and then open the pcap file with wireshark 08:38 < bridge> Nice told you the dissector is op 08:42 < bridge> https://github.com/tee-community/awesome-tee 08:42 < bridge> 08:42 < bridge> https://github.com/ChillerDragon/teeworlds-headless-clients 08:43 < bridge> Kaffeine: teeworlds.com forum posts is the way to go imo. It’s still a thing. 09:01 < bridge> i am not a fan with this must be a bug or something 09:01 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1324648932097134644/DDNet_7Bzr7P0g2P.png?ex=6778eaf4&is=67779974&hm=9a44e28b073216719c6ff466608551bda00802dcc4c89f5d32cb2494843874a3& 09:03 < bridge> i actually hate this 09:03 < bridge> Please remove or add a way to remove it 09:05 < bridge> have you tried adjusting the zoom by pressing plus or minus 09:27 < bridge> I think the problem would be the layout being always there xd 09:27 < bridge> like, maybe it can fade out a few seconds later 09:27 < bridge> yeah 09:28 < bridge> i don't know why you would care but sure i can do that 09:28 < bridge> and a way to hide it fully 09:28 < bridge> the indicator? 09:28 < bridge> or the feature 09:28 < bridge> for better visibility + rather would watch the gameplay more 09:28 < bridge> many games do that cuz players don't like to watch UI all the time! 09:28 < bridge> removing the indicator better means the feature is gone 09:28 < bridge> what are you guys talking about 09:29 < bridge> removing the indicator AFTER you show them for a few seconds, helps. 09:29 < bridge> the auto indicator means you are currently watching other players camera settings (zoom + dyncam) 09:29 < bridge> and showing the indicator again AFTER a change in zoom changes, helps too 09:29 < bridge> i see 09:29 < bridge> but i dont want to know that 09:29 < bridge> well i dont wanna see the indicator 09:29 < bridge> if you zoom out it will turn off, i can hide the indicator after you turn it off 09:30 < bridge> @tsfreddie is there a command to disable visibility on that UI specificaly? 09:30 < bridge> @tsfreddie is there a command to disable visibility on that UI specifically? 09:30 < bridge> no 09:30 < bridge> bad 09:30 < bridge> in rocket league there is a "ballcam indicator" that tells you you are in ballcam 09:30 < bridge> i turn that off 09:30 < bridge> config is usually heavy restricted to add 09:30 < bridge> i just wanna hide it 09:31 < bridge> yeah, you could usually use a command in F1 manually, or inside the options, if there would be any implementation of it 09:31 < bridge> or even with a hotkey bind, like the debug UI with CTRL SHIFT D 09:32 < bridge> As a fellow designer, this is bad to not allow users to toggle visibility on new UI, if they don't like it, that is why feedback is appreciated in that matter 09:32 < bridge> i can add that but i need an essay to get it approved 09:33 < bridge> please do, even if not the fade-out thing I recommended, but at least a way to toggle visibility on that if players don't want it to see. 🙏 09:34 < bridge> A what? Not feedback? 09:34 < bridge> i need to write an detailed explaination or heinrich usually vetos any config 09:34 < bridge> the ball cam thing i get, but you are literally not playing the game during spectating so i really don't see why you would care. 09:34 < bridge> but i can do that 09:34 < bridge> for you 09:35 < bridge> there's a command to hide HUD, does that not include the auto sign? 09:35 < bridge> should be 09:35 < bridge> just use that then 09:35 < bridge> @heinrich5991 Can we make the new UI's visibility toggleable with a command, since other different UIs, like the debug UI and detailed movement UI (on the right side) can be toggled? 09:36 < bridge> @tsfreddie idk why are you afraid to ask him here 09:37 < bridge> i'm not 09:37 < bridge> i said i will try to do that 09:37 < bridge> :owo: 09:37 < bridge> how do i even activate auto spec 09:37 < bridge> it usually happens in PR 09:37 < bridge> just spec someone 09:37 < bridge> idk why heinrich would care if it is not in code 09:37 < bridge> reset zoom while spectating. or right click 09:37 < bridge> but i am in the middle of adding a button to the esc menu 09:37 < bridge> so that might be more obvious 09:38 < bridge> i cant get it to work 09:38 < bridge> do i need to eb in spectators or just in /pause? 09:38 < bridge> if heinrich doesn't care on what the users, in this case Players want, or he wouldn't care on the consistency on how different UIs worked in the client, then... eh 09:38 < bridge> oh, if you don't have the indicator is it not available 09:38 < bridge> it is only available for 18.9 players 09:38 < bridge> I might as well just try developing my own client faster 09:39 < bridge> hm, if i can see their cursor does that mean i should be able to get the auto spec? 09:39 < bridge> cursor is older 09:39 < bridge> 18.x has cursor info already 09:39 < bridge> way before 09:39 < bridge> ah 09:40 < bridge> it was just shown in 18.9 09:41 < bridge> btw if you can code why not just PR yourself. i am still working on others things so it might take awhile 09:42 < bridge> i feel like if you can hide other stuff you should be able to hide htis 09:42 < bridge> i feel like if you can hide other stuff you should be able to hide this 09:42 < bridge> in a perfect world every element should be toggleable in the console 09:43 < bridge> more like, every category of visible elements should be, like different UIs which are overlapping the basic UI or camera 09:48 < ChillerDragon> @0xfaulty @fokkonaut where do you store state of minigames? i am currently implementing block 1vs1 and wonder where i store the current score. 09:49 < ChillerDragon> i currently went with allocating a state struct and letting all participants point to it but only the first participant frees it but it feels super messy. 09:50 < bridge> well, store it where it's being used, by the minigame 09:50 < ChillerDragon> but if multiple minigames of the same type run how do i match it to the players 09:51 < ChillerDragon> i have one minigame instance that handles all 1vs1's 09:51 < bridge> structs and arrays and saving participant ids? 09:51 < ChillerDragon> do you create multiple minigame instances? hmm i see 09:51 < bridge> no 09:52 < ChillerDragon> where do you store participant ids? 09:52 < bridge> oh, it's part of the following box, i thought it was on its own somewhere 09:52 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1324661776649818152/391256347-6a03219b-ceec-4cb3-92af-8737969e1457.png?ex=6778f6ea&is=6777a56a&hm=b408211583c6a605a59333bb2b76f219b7308b8efc3b681f04d73ee4e89463ab& 09:53 < bridge> you want to hide the tiny orange box? 09:53 < bridge> mhm 09:53 < bridge> sometimes i dont understand you xd how is this difficult to you right now xD 09:53 < bridge> idk it feels so out of place 09:53 < bridge> its orange 09:53 < bridge> distracting 09:54 < ChillerDragon> i just cant envison your code right now 09:54 < bridge> i have a Minigame component which has hooks for events and basically does everything inside that component 09:55 < ChillerDragon> the structs hold the participant ids and their game state and then you push a new struct into the array if a new game starts? and then to process a tick you iterate all sructs and read/write the state? 09:55 < ChillerDragon> ye i have the same :) 09:55 < bridge> that component has arrays of structs for multi rooms 09:55 < bridge> yeah, maybe it can be reduced to a single icon or a less contrasting color, but in no world should there be a config variable to enable or disable it being there 09:55 < ChillerDragon> and in every hook you iterate all rooms? 09:55 < bridge> why not 09:56 < bridge> why push? just a static array works aswell 09:56 < ChillerDragon> idk i just assume all of your code is vectors at all times :D 09:56 < bridge> config variables for config variables when? 09:56 < bridge> basically, but especially with a static array size you can save the index in the character maybe 09:56 < ChillerDragon> @milkeeycat wdym? 09:56 < bridge> cus then there's no indicator of whether you're in auto spec or not, and sometimes it may get confusing as to if you have the icon enabled or not, or if you're just spectating someone with the same zoom configuration as you 09:56 < bridge> xd 09:56 < ChillerDragon> which character in a 1v1 @fokkonaut 09:56 < ChillerDragon> there are two 09:56 < bridge> if you want to spectate without any interruptions just disable the entire hud 09:57 < bridge> idk wym 09:57 < ChillerDragon> ah red it wrong xd 09:57 < ChillerDragon> ye save the index in the character is what i do conceptually right now but i malloc and free not static hmm 09:58 < ChillerDragon> maybe i should just go stack allocated like i always have been 09:58 < bridge> i do iterate always btw 09:58 < bridge> true 09:58 < bridge> maybe its just how it look 09:58 < bridge> maybe its just how it looks 09:58 < bridge> if it was just white 09:58 < bridge> it stands out 09:58 < ChillerDragon> cool thanks @fokkonaut 09:58 < bridge> it wouldnt stand out 09:58 < bridge> and wouldnt distract me 09:59 < ChillerDragon> @milkeeycat i would like enum likes config vars with string values the user can choose from a set list 09:59 < ChillerDragon> i use so many magic numbers in my configs its horrible 09:59 < ChillerDragon> and free form string vars are a mess 10:00 < bridge> if you make the config a string enum you can never change the strings in the enum 10:00 < ChillerDragon> not sure what you mean 10:01 < bridge> it makes it more difficult to modify the functionality of the config because it will reset saved settings 10:01 < ChillerDragon> i would for example like to have sv_gametype only accept the strings "ddnet" and "mod" and autocomplete it for the user 10:02 < bridge> but it's probably not that bad of an idea 10:02 < bridge> I guess users can just deal with it 10:02 < ChillerDragon> i mean you can always use a string and then have a conchain yelling at the user 10:03 < ChillerDragon> but i dont like strcmp to check config values i prefer == 10:03 < ChillerDragon> iterating every character in strcmp of the 1000 configs on tick sounds expensive 10:04 < ChillerDragon> so user facing its a strictly restricted list and also in the code its represented as a enum class 10:33 < bridge> <0xfaulty> In mini game instance, I have abstract class for all mini games with all needed 11:17 < bridge> - 11:31 < bridge> @syrinok 11:32 < bridge> I can see people thinking that's a screenshot button lol 11:33 < bridge> But the mouseover tooltip explains it, so maybe a non-issue 11:33 < bridge> fml 11:34 < bridge> as soon as they click it and it goes red slashy they'll know 11:36 < bridge> please test as soon as the artifact is available tho, it is a pretty big change and RC doesn't last long 11:38 < bridge> btw why can't github just allow you to upload a bigger video, 10m is like nothing. 11:39 < bridge> also i forgot to eat 11:39 < bridge> it's 6:30pm 11:41 < bridge> @learath2 curious how the http reg is going 11:43 < bridge> I just found out momentcap's cancel logic is too strict. if you are almost done we can maybe do another server update? 12:06 < bridge> I transplanted the modern http module in there. Got it compiling. I also replaced CRegister but didn't get it registering yet. Hopefully tonight 🤞 12:06 < bridge> Had to leave to see a relative 12:07 < bridge> no worries 12:07 < bridge> just wondering if we can avoid restarting the server twice 12:08 < bridge> Probably not, is there a harm in restarts? 12:08 < bridge> the map is pretty huge and the secret takes time to get, we might kill their progress 12:12 < bridge> there are like always people in there too since we only host one server for the entire globe lol 12:15 < bridge> Could set a password 30-60 minutes before planning to restart 12:15 < bridge> right 12:15 < bridge> @blaiszephyr how can I use the new tclient version until the new one merges to nixpkgs? 12:15 < bridge> Ya, getting to jetpack is probably annoying for most people in the playerbase, restart would hurt 12:16 < bridge> i haven't tried to get it myself is it like really hard 12:16 < bridge> Always get 404 not found error for src overlays 12:16 < bridge> <8_9z> there is one blocl race in v3 12:16 < bridge> <8_9z> i have demo 12:17 < bridge> <8_9z> .. 12:17 < bridge> You mostly just need to know how to do it, I would rate getting to jetpack a medium / low moderate part 12:17 < bridge> i'm fairly sure i mentioned that before :kek: 12:17 < bridge> 12:17 < bridge> overlays! final and pre 12:17 < bridge> that's hard for me 12:17 < bridge> lol 12:17 < bridge> <8_9z> guys!! 12:17 < bridge> im like low novice 12:17 < bridge> :kekw: 12:17 < bridge> https://discord.com/channels/252358080522747904/293493549758939136/1324697820522872842 12:19 < bridge> @0xdeen I changed how canceling capture works in momentcap, the previous condition is a bit too strict, if you got time could you set password and schedule a restart after like 60 minutes? 12:19 < bridge> ```nix 12:19 < bridge> final: prev: { 12:19 < bridge> tclient-ddnet = prev.taterclient-ddnet.overrideAttrs (previousAttrs: { 12:19 < bridge> src = final.fetchFromGitHub { 12:19 < bridge> owner = "sjrc6"; 12:19 < bridge> repo = "TaterClient-ddnet"; 12:19 < bridge> rev = "10.0.0"; 12:19 < bridge> hash = "sha256-0W0YIJNkz7ypAD97skEIaF4d0XL2aObrAzwd4U2nAaw="; 12:19 < bridge> }; 12:19 < bridge> }); 12:19 < bridge> } 12:19 < bridge> ``` 12:20 < bridge> omg nevermind 12:23 < bridge> <8_9z> guys?? 12:26 < bridge> <0xdeen> if i set password no one can join for 60 min and lots of people will complain on discord. I'll just restart it 12:26 < bridge> :justatest: 12:26 < bridge> sure 12:31 < bridge> #✉-create-a-ticket 13:07 < bridge> Oh wow, does the rust cache reuse already built stuff? 13:07 < bridge> 13:07 < bridge> That speeds up CI insanely 13:12 < bridge> How do I build the version of the client where steam.cpp works 13:14 < bridge> cmake .. -DSTEAM=ON 13:14 < bridge> it doesn't work 13:14 < bridge> if i compiled with 13:14 < bridge> 13:14 < bridge> cmake -DSTEAM=ON .. 13:14 < bridge> is it a problem ? 13:15 < bridge> ? 13:15 < bridge> like the two ".." 13:15 < bridge> i dunno, ask cmake dev xd 13:15 < bridge> but props no 13:15 < bridge> Basically I'm not on Linux, that's why.... 13:15 < bridge> that has nothing todo with linux 13:15 < bridge> but I think it worked 13:15 < bridge> I have never compiled things in C++ * 13:16 < bridge> my question had nothing to do with whatever you're doing you can ignore it 13:18 < bridge> have you tested this? It seems to do nothing but add -steam to the client version 13:20 < bridge> I haven't dunno any better then tbh 13:20 < bridge> ``` 13:20 < bridge> 2025-01-03 12:18:50 I assert: /root/build/ddnet22/ddnet/src/engine/server/databases/mysql.cpp(545): error getting float: NULL 13:20 < bridge> Illegal instruction (core dumped) 13:21 < bridge> ``` 13:21 < bridge> hum ':) can someone pls explain me how can i resolve this ':) 13:22 < bridge> probably you are trying to GetFloat when a row member has another type 13:22 < bridge> huh 13:22 < bridge> imma check 13:23 < bridge> maybe the date ? 13:23 < bridge> i put the date on float 13:23 < bridge> i think 13:23 < bridge> because some date need texts 13:24 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1324715012396154911/image.png?ex=6779287e&is=6777d6fe&hm=8ef9dd790ca52e237d78f8b20834c56157b5f180ebc3b9efadc55528bde2ee59& 13:27 < bridge> wait you are working with unmodified ddnet sources/db, right? 13:27 < bridge> wdym 13:27 < bridge> i recompiled ddnet with SQL = ON or something 13:29 < bridge> i mean you didn't add anything from you in code 13:29 < bridge> no 13:29 < bridge> only in "gamemode" maybe 13:31 < bridge> did you make any function call to db from yours part 13:31 < bridge> nope 13:32 < bridge> only thing i edited is the database 13:37 < bridge> i am trying to use another database 13:37 < bridge> that is empty 13:37 < bridge> and use the ddnet init 13:38 < bridge> ``` 13:38 < bridge> 13:38 < bridge> 2025-01-03 12:38:09 I chat: *** i am not finished in: 0 minute(s) 44.92 second(s) 13:38 < bridge> 2025-01-03 12:38:09 I sql: SQLite statement: INSERT OR IGNORE INTO record_race_backup( Map, Name, Timestamp, Time, Server, cp1, cp2, cp3, cp4, cp5, cp6, cp7, cp8, cp9, cp10, cp11, cp12, cp13, cp14, cp15, cp16, cp17, cp18, cp19, cp20, cp21, cp22, cp23, cp24, cp25, GameId, DDNet7) VALUES ('CHILL', 'i am not', DATETIME('2025-01-03 12:38:09', 'utc'), 44.92, 'UNK', 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0. 13:38 < bridge> WARNING: MYSQL_OPT_RECONNECT is deprecated and will be removed in a future version. 13:38 < bridge> 2025-01-03 12:38:09 I mysql: connection established 13:38 < bridge> 2025-01-03 12:38:09 I assert: /root/build/ddnet22/ddnet/src/engine/server/databases/mysql.cpp(573): error getting int: NULL 13:38 < bridge> Illegal instruction (core dumped) 13:38 < bridge> ``` 13:43 < bridge> this is a new database 14:07 < bridge> <0xdeen> Do you have a backtrace? 14:09 < bridge> <0xdeen> We had a similar bug before, would help to fix this one too: https://github.com/def-/ddnet/commit/613a68a4dd98df8fe48966cdb07fa8ecf775cdff 14:42 < bridge> nope 14:42 < bridge> will start with 14:43 < bridge> <0xdeen> could you run it with gdb or run gdb on the core dump? 14:43 < bridge> ye 14:43 < bridge> i am doing it rn 14:43 < bridge> Thread 3 "DDNet-Server" received signal SIGSEGV, Segmentation fault. 14:43 < bridge> [Switching to Thread 0x7fffefe006c0 (LWP 14702)] 14:44 < bridge> 0x00007ffff78892d7 in ?? () from /lib/x86_64-linux-gnu/libmysqlclient.so.21 14:44 < bridge> (gdb) bt 14:44 < bridge> #0 0x00007ffff78892d7 in ?? () from /lib/x86_64-linux-gnu/libmysqlclient.so.21 14:44 < bridge> #1 0x00007ffff782e16c in ?? () from /lib/x86_64-linux-gnu/libmysqlclient.so.21 14:44 < bridge> #2 0x00007ffff782fe6f in mysql_stmt_fetch_column () from /lib/x86_64-linux-gnu/libmysqlclient.so.21 14:44 < bridge> #3 0x00005555555891d3 in CMysqlConnection::IsNull (this=0x7fffe80015a0, Col=1) at /root/build/ddnet22/ddnet/src/engine/server/databases/mysql.cpp:513 14:44 < bridge> #4 0x0000555555625f56 in CScoreWorker::LoadPlayerData (pSqlServer=0x7fffe80015a0, pGameData=0x555555dae360, pError=0x7fffefdff9b0 "unknown error", 14:44 < bridge> ErrorSize=256) at /root/build/ddnet22/ddnet/src/game/server/scoreworker.cpp:241 14:44 < bridge> #5 0x0000555555583315 in CDbConnectionPool::ExecSqlFunc (pConnection=0x7fffe80015a0, pData=0x555555dae0c0, w=NORMAL) 14:44 < bridge> at /root/build/ddnet22/ddnet/src/engine/server/databases/connection_pool.cpp:460 14:44 < bridge> #6 0x0000555555582815 in CWorker::ProcessQueries (this=0x5555559ff9b0) at /root/build/ddnet22/ddnet/src/engine/server/databases/connection_pool.cpp:320 14:44 < bridge> #7 0x0000555555582559 in CWorker::Start (pUser=0x5555559ff9b0) at /root/build/ddnet22/ddnet/src/engine/server/databases/connection_pool.cpp:277 14:44 < bridge> #8 0x00005555556d0857 in thread_run (user=0x555555a01a50) at /root/build/ddnet22/ddnet/src/base/system.cpp:820 14:44 < bridge> #9 0x00007ffff6aa1e2e in start_thread (arg=) at ./nptl/pthread_create.c:447 14:44 < bridge> #10 0x00007ffff6b33a4c in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78 14:44 < bridge> (gdb) 14:44 < bridge> `Thread 3 "DDNet-Server" received signal SIGSEGV, Segmentation fault. 14:44 < bridge> [Switching to Thread 0x7fffefe006c0 (LWP 14702)] 14:44 < bridge> 0x00007ffff78892d7 in ?? () from /lib/x86_64-linux-gnu/libmysqlclient.so.21 14:44 < bridge> (gdb) bt 14:44 < bridge> #0 0x00007ffff78892d7 in ?? () from /lib/x86_64-linux-gnu/libmysqlclient.so.21 14:44 < bridge> #1 0x00007ffff782e16c in ?? () from /lib/x86_64-linux-gnu/libmysqlclient.so.21 14:44 < bridge> #2 0x00007ffff782fe6f in mysql_stmt_fetch_column () from /lib/x86_64-linux-gnu/libmysqlclient.so.21 14:44 < bridge> #3 0x00005555555891d3 in CMysqlConnection::IsNull (this=0x7fffe80015a0, Col=1) at /root/build/ddnet22/ddnet/src/engine/server/databases/mysql.cpp:513 14:44 < bridge> #4 0x0000555555625f56 in CScoreWorker::LoadPlayerData (pSqlServer=0x7fffe80015a0, pGameData=0x555555dae360, pError=0x7fffefdff9b0 "unknown error", 14:44 < bridge> ErrorSize=256) at /root/build/ddnet22/ddnet/src/game/server/scoreworker.cpp:241 14:44 < bridge> #5 0x0000555555583315 in CDbConnectionPool::ExecSqlFunc (pConnection=0x7fffe80015a0, pData=0x555555dae0c0, w=NORMAL) 14:45 < bridge> at /root/build/ddnet22/ddnet/src/engine/server/databases/connection_pool.cpp:460 14:45 < bridge> #6 0x0000555555582815 in CWorker::ProcessQueries (this=0x5555559ff9b0) at /root/build/ddnet22/ddnet/src/engine/server/databases/connection_pool.cpp:320 14:45 < bridge> #7 0x0000555555582559 in CWorker::Start (pUser=0x5555559ff9b0) at /root/build/ddnet22/ddnet/src/engine/server/databases/connection_pool.cpp:277 14:45 < bridge> #8 0x00005555556d0857 in thread_run (user=0x555555a01a50) at /root/build/ddnet22/ddnet/src/base/system.cpp:820 14:45 < bridge> #9 0x00007ffff6aa1e2e in start_thread (arg=) at ./nptl/pthread_create.c:447 14:45 < bridge> #10 0x00007ffff6b33a4c in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78 14:45 < bridge> (gdb)` 14:45 < bridge> ```Thread 3 "DDNet-Server" received signal SIGSEGV, Segmentation fault. 14:45 < bridge> [Switching to Thread 0x7fffefe006c0 (LWP 14702)] 14:45 < bridge> 0x00007ffff78892d7 in ?? () from /lib/x86_64-linux-gnu/libmysqlclient.so.21 14:45 < bridge> (gdb) bt 14:45 < bridge> #0 0x00007ffff78892d7 in ?? () from /lib/x86_64-linux-gnu/libmysqlclient.so.21 14:45 < bridge> #1 0x00007ffff782e16c in ?? () from /lib/x86_64-linux-gnu/libmysqlclient.so.21 14:45 < bridge> #2 0x00007ffff782fe6f in mysql_stmt_fetch_column () from /lib/x86_64-linux-gnu/libmysqlclient.so.21 14:45 < bridge> #3 0x00005555555891d3 in CMysqlConnection::IsNull (this=0x7fffe80015a0, Col=1) at /root/build/ddnet22/ddnet/src/engine/server/databases/mysql.cpp:513 14:45 < bridge> #4 0x0000555555625f56 in CScoreWorker::LoadPlayerData (pSqlServer=0x7fffe80015a0, pGameData=0x555555dae360, pError=0x7fffefdff9b0 "unknown error", 14:45 < bridge> ErrorSize=256) at /root/build/ddnet22/ddnet/src/game/server/scoreworker.cpp:241 14:45 < bridge> #5 0x0000555555583315 in CDbConnectionPool::ExecSqlFunc (pConnection=0x7fffe80015a0, pData=0x555555dae0c0, w=NORMAL) 14:45 < bridge> at /root/build/ddnet22/ddnet/src/engine/server/databases/connection_pool.cpp:460 14:45 < bridge> #6 0x0000555555582815 in CWorker::ProcessQueries (this=0x5555559ff9b0) at /root/build/ddnet22/ddnet/src/engine/server/databases/connection_pool.cpp:320 14:47 < bridge> mysql error 14:50 < bridge> what can i do 14:51 < bridge> ur edit is making it crash i guess 14:51 < bridge> i edited this code 14:51 < bridge> 14:51 < bridge> #include "mod.h" 14:51 < bridge> 14:51 < bridge> #define GAME_TYPE_NAME "GORES" 14:51 < bridge> #define TEST_TYPE_NAME "TestGORES" 14:51 < bridge> 14:51 < bridge> CGameControllerMod::CGameControllerMod(class CGameContext *pGameServer) : 14:51 < bridge> IGameController(pGameServer) 14:51 < bridge> { 14:51 < bridge> m_pGameType = g_Config.m_SvTestingCommands ? TEST_TYPE_NAME : GAME_TYPE_NAME; 14:52 < bridge> } 14:52 < bridge> 14:52 < bridge> CGameControllerMod::~CGameControllerMod() = default; 14:52 < bridge> 14:52 < bridge> void CGameControllerMod::Tick() 14:52 < bridge> { 14:52 < bridge> IGameController::Tick(); 14:52 < bridge> } 14:52 < bridge> nothing else 14:52 < bridge> i edited this code 14:52 < bridge> 14:52 < bridge> `#include "mod.h" 14:52 < bridge> 14:52 < bridge> #define GAME_TYPE_NAME "GORES" 14:52 < bridge> #define TEST_TYPE_NAME "TestGORES" 14:52 < bridge> 14:52 < bridge> CGameControllerMod::CGameControllerMod(class CGameContext *pGameServer) : 14:52 < bridge> IGameController(pGameServer) 14:52 < bridge> { 14:52 < bridge> m_pGameType = g_Config.m_SvTestingCommands ? TEST_TYPE_NAME : GAME_TYPE_NAME; 14:52 < bridge> } 14:52 < bridge> 14:52 < bridge> CGameControllerMod::~CGameControllerMod() = default; 14:52 < bridge> 14:52 < bridge> void CGameControllerMod::Tick() 14:52 < bridge> { 14:52 < bridge> IGameController::Tick(); 14:52 < bridge> }` 15:08 < bridge> bro? :monkaStop: 15:08 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1324741221502947368/grafik.png?ex=677940e7&is=6777ef67&hm=d2b2b88f4986bb155078adaf5a79deee68eabe81d58f64822508f944bfaf7873& 15:09 < bridge> :greenthing: 15:13 < bridge> is that just ATH 15:18 < bridge> from the logo - seems to be ye 15:39 < bridge> KR}{ 16:00 < bridge> <0xdeen> @zwelf2 any ideas? 16:07 < bridge> ``` 16:07 < bridge> 16:07 < bridge> 2025-01-03 15:07:24 I console: executing 'autoexec_server.cfg' 16:07 < bridge> 2025-01-03 15:07:24 I server: Adding new SqlWriteServer: DB: 'ddnet_db' Prefix: 'record' User: 'ddnet' IP: <{66.118.245.125}> Port: 3306 16:07 < bridge> 2025-01-03 15:07:24 I server: Adding new SqlReadServer: DB: 'ddnet_db' Prefix: 'record' User: 'ddnet' IP: <{66.118.245.125}> Port: 3306 16:07 < bridge> 2025-01-03 15:07:24 I chatresp: No such command: sv_game_type. 16:07 < bridge> 2025-01-03 15:07:24 I console: executing 'config-votes/easy.cfg' 16:07 < bridge> 2025-01-03 15:07:24 I http: libcurl version 8.9.1 (compiled = 7.81.0) 16:07 < bridge> 2025-01-03 15:07:24 I server: server name is '|*TWL*| [Gores] Easy' 16:07 < bridge> WARNING: MYSQL_OPT_RECONNECT is deprecated and will be removed in a future version. 16:08 < bridge> 2025-01-03 15:07:24 I server: version 18.9 on linux amd64 16:08 < bridge> 2025-01-03 15:07:24 I sql: failed connecting to db: (real_connect:mysql:2003): Can't connect to MySQL server on '66.118.245.125:3306' (111) 16:08 < bridge> 2025-01-03 15:07:24 I sql: [3] load best time failed on all databases 16:08 < bridge> ``` 16:08 < bridge> new problem now 16:08 < bridge> can't start mysql 16:50 < bridge> ``` 16:50 < bridge> 2025-01-03 15:50:05 I chat: *** i am not finished in: 0 minute(s) 52.18 second(s) 16:50 < bridge> 2025-01-03 15:50:05 I sql: SQLite statement: INSERT OR IGNORE INTO record_race_backup( Map, Name, Timestamp, Time, Server, cp1, cp2, cp3, cp4, cp5, cp6, cp7, cp8, cp9, cp10, cp11, cp12, cp13, cp14, cp15, cp16, cp17, cp18, cp19, cp20, cp21, cp22, cp23, cp24, cp25, GameId, DDNet7) VALUES ('CHILL', 'i am not', DATETIME('2025-01-03 15:50:05', 'utc'), 52.18, 'UNK', 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 16:50 < bridge> WARNING: MYSQL_OPT_RECONNECT is deprecated and will be removed in a future version. 16:50 < bridge> 2025-01-03 15:50:05 I mysql: connection established 16:50 < bridge> 2025-01-03 15:50:05 I assert: /root/build/ddnet22/ddnet/src/engine/server/databases/mysql.cpp(573): error getting int: NULL 16:50 < bridge> Illegal instruction (core dumped) 16:50 < bridge> root@vps385544254:/home/ddnet/DDNet-18.8.2-linux_x86_64# 16:50 < bridge> ``` 16:50 < bridge> that's when i finish a map 16:52 < bridge> idk what to do, i am even using the init from ddnet 17:08 < bridge> what's the version of db you use? 17:10 < bridge> mariadb ? 17:10 < bridge> 11.4.3 17:10 < bridge> mariadb from 11.4.3-MariaDB, client 15.2 for debian-linux-gnu (x86_64) using EditLine wrapper 17:11 < bridge> and latest code from ddnet repo? 17:11 < bridge> yeah 17:11 < bridge> https://github.com/ddnet/ddnet 17:15 < bridge> can you send server commands you used to make ddnet use your sql server(remove ur ip and other personal stuff) 17:15 < bridge> add_sqlserver r ddnet_db record ddnet "" 17:15 < bridge> add_sqlserver w ddnet_db record ddnet "" 17:18 < bridge> when sql is on i can't connect dummy and vote map and only one person can join or else server crash 17:19 < bridge> why these bugs never happen to me :feelsbadman: 17:19 < bridge> lool lucky 17:19 < bridge> maybe because I don't try to host gores servers 17:19 < bridge> or maybe smarter 17:19 < bridge> idk i think it would be same for me 17:20 < bridge> like sv game type isn't working too 17:20 < bridge> ``` 17:20 < bridge> 17:20 < bridge> Thread 3 "DDNet-Server" received signal SIGSEGV, Segmentation fault. 17:20 < bridge> [Switching to Thread 0x7fffefe006c0 (LWP 9981)] 17:20 < bridge> 0x00007ffff78892d7 in ?? () from /lib/x86_64-linux-gnu/libmysqlclient.so.21 17:20 < bridge> (gdb) bt 17:20 < bridge> #0 0x00007ffff78892d7 in ?? () from /lib/x86_64-linux-gnu/libmysqlclient.so.21 17:20 < bridge> #1 0x00007ffff782e16c in ?? () from /lib/x86_64-linux-gnu/libmysqlclient.so.21 17:20 < bridge> #2 0x00007ffff782fe6f in mysql_stmt_fetch_column () from /lib/x86_64-linux-gnu/libmysqlclient.so.21 17:20 < bridge> #3 0x00005555555891d3 in CMysqlConnection::IsNull (this=0x7fffe80015a0, Col=1) 17:20 < bridge> at /root/build/ddnet22/ddnet/src/engine/server/databases/mysql.cpp:513 17:20 < bridge> #4 0x0000555555625f56 in CScoreWorker::LoadPlayerData (pSqlServer=0x7fffe80015a0, pGameData=0x555555ec2e30, 17:21 < bridge> pError=0x7fffefdff9b0 "unknown error", ErrorSize=256) at /root/build/ddnet22/ddnet/src/game/server/scoreworker.cpp:241 17:21 < bridge> #5 0x0000555555583315 in CDbConnectionPool::ExecSqlFunc (pConnection=0x7fffe80015a0, pData=0x555555ec76f0, w=NORMAL) 17:21 < bridge> at /root/build/ddnet22/ddnet/src/engine/server/databases/connection_pool.cpp:460 17:21 < bridge> #6 0x0000555555582815 in CWorker::ProcessQueries (this=0x5555559ff9b0) 17:21 < bridge> at /root/build/ddnet22/ddnet/src/engine/server/databases/connection_pool.cpp:320 17:21 < bridge> #7 0x0000555555582559 in CWorker::Start (pUser=0x5555559ff9b0) 17:21 < bridge> at /root/build/ddnet22/ddnet/src/engine/server/databases/connection_pool.cpp:277 17:21 < bridge> #8 0x00005555556d0857 in thread_run (user=0x555555a01a50) at /root/build/ddnet22/ddnet/src/base/system.cpp:820 17:21 < bridge> #9 0x00007ffff6aa1e2e in start_thread (arg=) at ./nptl/pthread_create.c:447 17:21 < bridge> #10 0x00007ffff6b33a4c in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78 17:21 < bridge> ``` 17:21 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1324774456601612349/image.png?ex=67795fdb&is=67780e5b&hm=d33a42b7fdd128878a0142984291ffcaec9a498b09aca12a0a8f23e83d49f0cd& 17:21 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1324774481440407572/image.png?ex=67795fe1&is=67780e61&hm=783bea097b6ca78e28b88eda9a40d51447f27d116d38648d86122637a9b6c12c& 17:21 < bridge> `INSERT OR IGNORE` why is a mysql build using sqlite's statement 17:21 < bridge> huh 17:22 < bridge> i have an idea why 17:23 < bridge> ``` 17:23 < bridge> 2025-01-03 16:23:11 I server: ClientId=0 rcon='dump_sqlservers w' 17:23 < bridge> > dump_sqlservers w 17:23 < bridge> 2025-01-03 16:23:11 I server: MySQL-Write: DB: 'ddnet_db' Prefix: 'record' User: 'ddnet' IP: XXX Port: 3306 17:23 < bridge> 2025-01-03 16:23:11 I server: SQLite-WriteBackup: DB: '/root/.local/share/ddnet/ddnet-server.sqlite' 17:23 < bridge> 2025-01-03 16:23:13 I server: ClientId=0 rcon='dump_sqlservers w'``` 17:23 < bridge> in rcon 17:23 < bridge> idk 17:24 < bridge> fishy 17:24 < bridge> i have no idea ':) 17:24 < bridge> i'm not a sql expert but i can check where the connection is created 17:24 < bridge> yeah 17:24 < bridge> btw are you intended to use sqlite for backup 17:24 < bridge> nope 17:25 < bridge> on my cfg i don't have "sv_sqlite_file" 17:25 < bridge> idk why there is a backup file 17:27 < bridge> `MACRO_CONFIG_INT(SvUseSql, sv_use_sql, 0, 0, 1, CFGFLAG_SERVER, "Enables MySQL backend instead of SQLite backend (sv_sqlite_file is still used as fallback write server when no MySQL server is reachable)")` 17:27 < bridge> maybe sqlite is required, but eitherway, that statement running off mysql instead of sqlite is weird 17:27 < bridge> idk 17:27 < bridge> what should i check 17:28 < bridge> nothing. i'm just talking to myself and maybe other devs so we could figure it out 17:28 < bridge> sounds like a code bug really 17:28 < bridge> huh 17:28 < bridge> so i can't do anything right 17:28 < bridge> or maybe i did a dumb error somewhere 17:28 < bridge> should've used mongodb, it's webscale 17:29 < bridge> maybe. but i've never setup mysql servers so i can't really help config wise 17:29 < bridge> everyone said mariadb ':) 17:29 < bridge> the mongodb comment is a joke btw 17:29 < bridge> okey 17:29 < bridge> ugh ok 17:29 < bridge> ':) 17:29 < bridge> should've used SurrealDB 17:30 < bridge> .. 17:30 < bridge> has anyone build mysql support on windows :justatest: 17:31 < bridge> or should I not even try 17:31 < bridge> i am on linux btw 17:31 < bridge> ye, but i'm on windows and i'm trying to debug it 17:31 < bridge> and this seems to be working 17:31 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1324777114825920522/image.png?ex=67796255&is=677810d5&hm=eb17ed45d18729bb1edf2ea434a27959aa94215eccdc5bbf3dd19d5816264b79& 17:31 < bridge> oh thx 17:32 < bridge> Which file contains the function responsible for creating the console command? 17:33 < bridge> any file really 17:33 < bridge> on the client? 17:33 < bridge> dafuq are u talking about xD 17:33 < bridge> wait 17:33 < bridge> you should probably just do a search for `Console()->Register("` 17:33 < bridge> that's what i'm talking about 17:34 < bridge> classic wavpack error when was trying to compile server 😬 17:34 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1324777797809602603/image.png?ex=677962f8&is=67781178&hm=510dfedc2987262e06d79a459ea7211d683fea6e7fc9e08d6e78fbf99fb2aa73& 17:34 < bridge> its declared in some file thats how i understood his question 17:35 < bridge> :justatest: now i'm confused 17:36 < bridge> Try to reconfigure cmake, the close function is only available when `CONF_WAVPACK_CLOSE_FILE` which depends on which wavpack version you have, I think 17:36 < bridge> Try to reconfigure cmake, the close function is only available when `CONF_WAVPACK_CLOSE_FILE` is defined which depends on which wavpack version you have, I think 17:37 < bridge> ill try it later, for now i just disabled client compilation xd 17:38 < bridge> are you maybe talking about `void CGameContext::OnConsoleInit()` in src/game/server/gamecontext.cpp maybe? 17:49 < bridge> changing these files can make a crash 17:49 < bridge> 17:49 < bridge> https://github.com/ddnet/ddnet/tree/master/src/game/server/gamemodes 17:49 < bridge> ? 17:49 < bridge> like i changed one of these files 17:49 < bridge> but i don't think it can cause the crash 17:49 < bridge> you mean the sql crash? 17:49 < bridge> probably not 17:49 < bridge> yeah 17:49 < bridge> okey 17:50 < bridge> then imma wait 18:05 < bridge> what's `Prefix` in `add_sqlserver s['r'|'w'] s[Database] s[Prefix] s[User] s[Password] s[IP] i[Port] ?i[SetUpDatabase ?]` 18:08 < bridge> <0xdeen> like `record` in record_race table name 18:08 < bridge> recor 18:08 < bridge> d 18:08 < bridge> yeah 18:10 < bridge> I have some serious skill issues. I can connect using mariadb client, like so `mariadb -h 127.0.0.1 -u root -proot ddnet`, but 18:10 < bridge> ``` 18:10 < bridge> add_sqlserver r ddnet record root 'root' 127.0.0.1 3306 18:10 < bridge> add_sqlserver w ddnet record root 'root' 127.0.0.1 3306 1 18:10 < bridge> ``` 18:10 < bridge> doesn't work xd 18:10 < bridge> without the ' i think 18:10 < bridge> try with " 18:10 < bridge> like for me it work like that 18:10 < bridge> try without 18:11 < bridge> it worked xdd 18:11 < bridge> thanks 18:11 < bridge> hehe 18:11 < bridge> <3 18:12 < bridge> it works for me 18:12 < bridge> without crashing -.- 18:12 < bridge> what is your mariadb version ? 18:13 < bridge> we can literally reverse engineer this to improve our antibot! 18:13 < bridge> 11.4.3 18:13 < bridge> yeah same 18:13 < bridge> .. 18:13 < bridge> but it doesn't work with me :c 18:14 < bridge> Segmentation fault (core dumped) 18:14 < bridge> i have this thing 18:14 < bridge> did you need to trigger it or it just crashes on launch? 18:14 < bridge> trigger it 18:15 < bridge> by doing what? 18:15 < bridge> joining dummy 18:15 < bridge> someone else joining the server 18:15 < bridge> changing map by voting 18:15 < bridge> finishing a map 18:15 < bridge> and sometimes it pop out while playing 18:15 < bridge> ok 18:16 < bridge> could you ad for game layer possibility to ctrl+scroll blocks ? 18:16 < bridge> example from 35 to 59 , or even all posibilitys ? 18:16 < bridge> like in teleports !? 18:16 < bridge> could you ad for game layer possibility to ctrl+scroll blocks ? 18:16 < bridge> example from 35 to 59 , or even all posibilitys ? (time cp's blocks ) 18:16 < bridge> like in teleports !? 18:29 < bridge> ye it was fine on my machine too 18:29 < bridge> :justatest: 18:30 < bridge> ah 18:30 < bridge> maybe i am the problem 18:30 < bridge> :pepeW: 18:31 < bridge> did you try to login to your mariadb server using a mariadb client or some other tools 18:31 < bridge> to see if the table is created 18:31 < bridge> mysql -u ddnet -p 18:31 < bridge> and that worked? 18:31 < bridge> yeah 18:32 < bridge> and it's not on local i think 18:32 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1324792487130300579/image.png?ex=677970a6&is=67781f26&hm=342f274e5934576d2d0c69354e71e08a672d73b0b3d62f63badca9682972ea0b& 18:32 < bridge> like i changed it 18:33 < bridge> to 0.0.0.0 18:33 < bridge> somewhere but i forgot name 18:33 < bridge> is this on the same machine as the database? 18:33 < bridge> yeah 18:33 < bridge> have you tried to connect it remotely using a mysql client too 18:34 < bridge> nope 18:34 < bridge> try that maybe 18:34 < bridge> ok 18:34 < bridge> :justatest: but even then the server really shouldn't crash tho 18:35 < bridge> yeah idk 18:35 < bridge> it only crashes when sql is activated 18:35 < bridge> like even if you have a connection problem or something 18:35 < bridge> Yes 18:35 < bridge> it's weird 18:35 < bridge> it's 1:35am for me, i should sleep tho. 18:35 < bridge> okay 18:35 < bridge> good luck i guess lol 18:35 < bridge> Good night 18:35 < bridge> THANKS 18:36 < bridge> thanks* 18:37 < bridge> tee without a weapon lol 18:37 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1324793698634043452/image.png?ex=677971c7&is=67782047&hm=a3d3da92234beb80f8c57b403cd49ad0d543e0eacfbf8f6df6a1b688306be3e4& 18:39 < bridge> I think that's where the problem comes from 18:41 < bridge> i think something is a little bit off with my movement implementation 18:41 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1324794879296929863/2025-01-03_19-39-12.mp4?ex=677972e0&is=67782160&hm=2c3ffe8d9b188a62416b1d6bb7401669f5bd9cf7ce291ccf70792752b567e627& 18:52 < bridge> ok, I can connect remotely 19:14 < bridge> it crashes in `libmysqlclient` and i don't have such a shared object, I have `libmariadb` instead 19:15 < bridge> if i replace libmysqlclient with libmariadb it may work ? 19:18 < bridge> can you execute `ldd ./DDNet-Server` in the same directory where your server executable is 19:19 < bridge> k 19:19 < bridge> root@vps385544254:/home/ddnet/DDNet-18.8.2-linux_x86_64# ldd ./DDNet-Server 19:19 < bridge> linux-vdso.so.1 (0x000073eab162f000) 19:19 < bridge> libmysqlclient.so.21 => /lib/x86_64-linux-gnu/libmysqlclient.so.21 (0x000073eab0800000) 19:19 < bridge> libcrypto.so.3 => /lib/x86_64-linux-gnu/libcrypto.so.3 (0x000073eab0200000) 19:19 < bridge> libcurl.so.4 => /lib/x86_64-linux-gnu/libcurl.so.4 (0x000073eab1548000) 19:19 < bridge> libsqlite3.so.0 => /lib/x86_64-linux-gnu/libsqlite3.so.0 (0x000073eab0e8e000) 19:19 < bridge> libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x000073eab152a000) 19:19 < bridge> libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x000073eaafe00000) 19:19 < bridge> libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x000073eab0113000) 19:19 < bridge> libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x000073eab14fa000) 19:19 < bridge> libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x000073eaafa00000) 19:19 < bridge> /lib64/ld-linux-x86-64.so.2 (0x000073eab1631000) 19:19 < bridge> libssl.so.3 => /lib/x86_64-linux-gnu/libssl.so.3 (0x000073eaafcfe000) 19:20 < bridge> libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x000073eab14e7000) 19:20 < bridge> libzstd.so.1 => /lib/x86_64-linux-gnu/libzstd.so.1 (0x000073eaafc40000) 19:20 < bridge> libnghttp2.so.14 => /lib/x86_64-linux-gnu/libnghttp2.so.14 (0x000073eab14b9000) 19:20 < bridge> libidn2.so.0 => /lib/x86_64-linux-gnu/libidn2.so.0 (0x000073eab1497000) 19:20 < bridge> librtmp.so.1 => /lib/x86_64-linux-gnu/librtmp.so.1 (0x000073eab1479000) 19:20 < bridge> libssh2.so.1 => /lib/x86_64-linux-gnu/libssh2.so.1 (0x000073eab07b7000) 19:20 < bridge> libpsl.so.5 => /lib/x86_64-linux-gnu/libpsl.so.5 (0x000073eab1463000) 19:20 < bridge> libgssapi_krb5.so.2 => /lib/x86_64-linux-gnu/libgssapi_krb5.so.2 (0x000073eab0762000) 19:20 < bridge> libldap.so.2 => /lib/x86_64-linux-gnu/libldap.so.2 (0x000073eab00b4000) 19:20 < bridge> liblber.so.2 => /lib/x86_64-linux-gnu/liblber.so.2 (0x000073eab00a4000) 19:20 < bridge> libbrotlidec.so.1 => /lib/x86_64-linux-gnu/libbrotlidec.so.1 (0x000073eab0096000) 19:20 < bridge> libunistring.so.5 => /lib/x86_64-linux-gnu/libunistring.so.5 (0x000073eaaf84e000) 19:20 < bridge> libgnutls.so.30 => /lib/x86_64-linux-gnu/libgnutls.so.30 (0x000073eaaf600000) 19:20 < bridge> libhogweed.so.6 => /lib/x86_64-linux-gnu/libhogweed.so.6 (0x000073eaaf804000) 19:20 < bridge> libnettle.so.8 => /lib/x86_64-linux-gnu/libnettle.so.8 (0x000073eaaf5ab000) 19:20 < bridge> libgmp.so.10 => /lib/x86_64-linux-gnu/libgmp.so.10 (0x000073eaaf525000) 19:20 < bridge> libkrb5.so.3 => /lib/x86_64-linux-gnu/libkrb5.so.3 (0x000073eaaf45c000) 19:20 < bridge> libk5crypto.so.3 => /lib/x86_64-linux-gnu/libk5crypto.so.3 (0x000073eaaf430000) 19:20 < bridge> ```root@vps385544254:/home/ddnet/DDNet-18.8.2-linux_x86_64# ldd ./DDNet-Server 19:20 < bridge> linux-vdso.so.1 (0x000073eab162f000) 19:20 < bridge> libmysqlclient.so.21 => /lib/x86_64-linux-gnu/libmysqlclient.so.21 (0x000073eab0800000) 19:20 < bridge> libcrypto.so.3 => /lib/x86_64-linux-gnu/libcrypto.so.3 (0x000073eab0200000) 19:20 < bridge> libcurl.so.4 => /lib/x86_64-linux-gnu/libcurl.so.4 (0x000073eab1548000) 19:20 < bridge> libsqlite3.so.0 => /lib/x86_64-linux-gnu/libsqlite3.so.0 (0x000073eab0e8e000) 19:20 < bridge> libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x000073eab152a000) 19:20 < bridge> libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x000073eaafe00000) 19:20 < bridge> libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x000073eab0113000) 19:20 < bridge> libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x000073eab14fa000) 19:21 < bridge> libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x000073eaafa00000) 19:21 < bridge> /lib64/ld-linux-x86-64.so.2 (0x000073eab1631000) 19:21 < bridge> doesn't work too 19:21 < bridge> because it still uses libmysqlclient probably 19:21 < bridge> k 19:21 < bridge> Package 'libmysqlclient-dev' is not installed, so not removed 19:21 < bridge> i removed it already 19:21 < bridge> did your package manager find such package? 19:21 < bridge> yeah i just uninstalled it 19:21 < bridge> because I couldn't find it on debian :\ 19:22 < bridge> wait 19:22 < bridge> okey 19:22 < bridge> did you install `libmysqlclient-dev` before? 19:22 < bridge> yep 19:23 < bridge> > DMYSQL=[ON|OFF] 19:23 < bridge> > Whether to enable MySQL/MariaDB support for server. Requires at least MySQL 8.0 or MariaDB 10.2. Setting to ON requires the `libmariadbclient-dev` library installed, which are also provided as bundled libraries for the common platforms. Default value is OFF. 19:23 < bridge> Docs say to install libmariadb -.- 19:23 < bridge> but now it do that 19:23 < bridge> 19:23 < bridge> ./DDNet-Server: error while loading shared libraries: libmysqlclient.so.21: cannot open shared object file: No such file or directory 19:23 < bridge> ...... 19:23 < bridge> i need to recompile it ? 19:23 < bridge> ye 19:23 < bridge> key 19:23 < bridge> .. 19:23 < bridge> gonna recompile it 19:24 < bridge> Error: Package 'libmariadbclient-dev' has no installation candidate 19:25 < bridge> install `libmariadb-dev` 19:25 < bridge> oh yeh 19:25 < bridge> okey thx gotta compile it 19:28 < bridge> cmake .. -DMYSQL=ON 19:28 < bridge> 19:28 < bridge> cmake .. -DMYSQL=ON -DPREFER_BUNDLED_LIBS=OFF 19:28 < bridge> which one @milaseq_ 19:28 < bridge> @milkeeycat 19:28 < bridge> @milaseq_ mb my friend wrong ping 19:29 < bridge> try `cmake .. -DMYSQL=ON -DPREFER_BUNDLED_LIBS=OFF` and if it doesn't work, use `cmake .. -DMYSQL=ON` 19:29 < bridge> ok 19:29 < bridge> idk if you have libs installed 19:29 < bridge> root@vps385544254:/home/ddnet/build# cmake .. -DMYSQL=ON -DPREFER_BUNDLED_LIBS=OFF 19:29 < bridge> CMake Warning: 19:30 < bridge> Ignoring extra path from command line: 19:30 < bridge> 19:30 < bridge> ".." 19:30 < bridge> 19:30 < bridge> 19:30 < bridge> CMake Error: The source directory "/home/ddnet" does not appear to contain CMakeLists.txt. 19:30 < bridge> Specify --help for usage, or press the help button on the CMake GUI. 19:30 < bridge> root@vps385544254:/home/ddnet/build# 19:30 < bridge> mkdir build && cd build 19:30 < bridge> and then run the command within the build directory 19:30 < bridge> yeah ik 19:30 < bridge> use `..` after flags 19:30 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1324807091956744312/image.png?ex=67797e40&is=67782cc0&hm=32912843308e643a82f709c2aed5c214762c957c755eff996eeae39dc5f95f13& 19:30 < bridge> k 19:31 < bridge> can't compile it 19:31 < bridge> oh 19:31 < bridge> i know why 19:31 < bridge> what's the error? 19:31 < bridge> i know why 19:31 < bridge> my bad 19:32 < bridge> okey 19:32 < bridge> i was just dumb 19:32 < bridge> CMake Error at CMakeLists.txt:678 (message): 19:32 < bridge> You must install Freetype to compile the DDNet client 19:32 < bridge> add `-DCLIENT=OFF` 19:33 < bridge> ok 19:33 < bridge> -- Found SQLite3: /usr/include (found version "3.46.1") 19:33 < bridge> -- Checking for module 'sqlite3' 19:33 < bridge> -- Found sqlite3, version 3.46.1 19:33 < bridge> -- Found SQLite3: /usr/include 19:33 < bridge> -- ******** DDNet ******** 19:33 < bridge> -- Target OS: linux x86_64 19:33 < bridge> -- Compiler: /usr/bin/c++ 19:33 < bridge> -- Rust version: rustc 1.80.1 (3f5fd8dd4 2024-08-06) (built from a source tarball) 19:33 < bridge> -- Build type: Release 19:33 < bridge> -- Dependencies: 19:33 < bridge> -- * Curl found 19:33 < bridge> -- * Freetype not found 19:34 < bridge> -- * Glew found 19:34 < bridge> -- * GTest not found 19:34 < bridge> -- * MySQL found 19:34 < bridge> -- * Ogg found 19:34 < bridge> -- * OpenSSL Crypto found 19:34 < bridge> -- * Opus found 19:34 < bridge> -- * Opusfile found 19:34 < bridge> -- * PNG found 19:34 < bridge> -- * Python3 found 19:34 < bridge> -- * SDL2 found 19:34 < bridge> -- * SQLite3 found 19:34 < bridge> -- * Wavpack found 19:34 < bridge> -- * Zlib found 19:34 < bridge> -- To run the tests, you have to install GTest 19:34 < bridge> -- Configuring done (0.9s) 19:34 < bridge> -- Generating done (0.1s) 19:34 < bridge> -- Build files have been written to: /home/ddnet/ddnet/build 19:34 < bridge> it's done ? 19:34 < bridge> why was it so fast 19:34 < bridge> make -j$(nproc) 19:34 < bridge> this right ? 19:34 < bridge> ye 19:34 < bridge> make -j$(nproc) 19:34 < bridge> i gotta run this ? 19:34 < bridge> ok 19:34 < bridge> that's why it was so fast........ 19:34 < bridge> now imma wait 5 minutes 19:36 < bridge> ok done 19:37 < bridge> try to run the server 19:37 < bridge> oke 19:37 < bridge> with sql ? 19:37 < bridge> you already have everything set up, no? 19:37 < bridge> no 19:37 < bridge> like it's another server 19:37 < bridge> another compilation 19:37 < bridge> ':) 19:37 < bridge> execute `ldd ./DDNet-Server | grep libmariadb` 19:38 < bridge> does it show something? 19:38 < bridge> root@vps385544254:/home/ddnet/ddnet/build# ldd ./DDNet-Server | grep libmariadb 19:38 < bridge> libmariadb.so.3 => /lib/x86_64-linux-gnu/libmariadb.so.3 (0x00007c0be909a000) 19:38 < bridge> it should work™ 19:38 < bridge> wait 19:39 < bridge> trying something 19:40 < bridge> @milkeeycat you know what 19:40 < bridge> i love you bro 19:40 < bridge> <3 19:40 < bridge> thanks 19:40 < bridge> thanks 19:40 < bridge> it's working 19:42 < bridge> nice 19:49 < bridge> pro 19:50 < bridge> someone isn't sleeping 19:50 < bridge> when add LLM 22:09 < bridge> lmao 23:05 < bridge> @jupeyy_keks for ddnet-rs, as you know i'm using NixOS and using `Nix` as a package manager and development environment would allow me to provide a `flake.nix` and `flake.lock` file to pin needed dependencies such as rust, cargo, the needed toolchain, wasm and whatnot. to ensure this works on all systems running nix. you put .vscode in the .gitignore, but ddnet has an `other` folder, what about adding that to the repo aswell? - that way we could shi 23:05 < bridge> 23:05 < bridge> this would also make packaging ddnet-rs for nixpkgs easier :owo: 23:06 < bridge> @jupeyy_keks for ddnet-rs, as you know i'm using NixOS and using `Nix` as a package manager and development environment would allow me to provide a `flake.nix` and `flake.lock` file to pin needed dependencies such as rust, cargo, the needed toolchain, wasm and whatnot. to ensure this works on all systems running nix. ddnet has an `other` folder, what about adding that to the repo aswell? - that way we could ship things like workspaces (vim, vscode) 23:06 < bridge> 23:06 < bridge> this would also make packaging ddnet-rs for nixpkgs easier :owo: 23:07 < bridge> in ddnet-rs it's called misc 23:07 < bridge> i thought other sounds like it's not related to ddnet xD 23:08 < bridge> oh god, dont tell chillerdragon :justatest: - so it's fine if i do that? 23:08 < bridge> I am ok with that yeah 23:08 < bridge> perfect, i'll get on it then 23:08 < bridge> but note that i dont _really_ want to lock the rust version 23:08 < bridge> i think rustup is quite cool because it makes it easy to install latest rust 23:08 < bridge> as easy as installing it over a pkg manager 23:09 < bridge> i could just not ship a .lock file then, so everyone evaluates to the latest nixpkgs version when using it 23:09 < bridge> nice