00:59 < bridge_> how can you have src == dst without them overlapping? 01:05 < bridge_> mmap 01:05 < bridge_> Philosophical that is a interesting question. 01:05 < bridge_> 01:05 < bridge_> Do two parallel lines intersect if they are equal. 01:05 < bridge_> 01:05 < bridge_> xddd 01:05 < bridge_> no that was just an observation that ubsan doesnt find that case 01:06 < bridge_> Philosophically that is a interesting question. 01:06 < bridge_> 01:06 < bridge_> Do two parallel lines intersect if they are equal. 01:06 < bridge_> 01:06 < bridge_> xddd 01:06 < bridge_> do you mean src and dst as pointers or the actual data? 01:07 < bridge_> it's the two pointers poiting to the same data 01:07 < bridge_> i hope u read this 01:07 < bridge_> bcs this topic is simply about ubsan not reporting this, which is very likely a bug in ubsan 01:08 < bridge_> I don't understand how you can have two pointers that point to the same memory and then not have it overlap if you copy from one to the other? 01:08 < bridge_> is that the bug? 01:09 < bridge_> you wrote it like src == dst is fine unless they overlap 01:10 < bridge_> it probably is a bug yes. 01:16 < bridge_> yeah but you can clarify what you meant by 01:16 < bridge_> 01:16 < bridge_> > a. If you memcpy where src == dst. it's not UB 01:16 < bridge_> > b. but if src and dst overlap it is 01:16 < bridge_> 01:16 < bridge_> How can you have a without b? I think b is always true given a 01:21 < bridge_> yeah that is the whole point 01:22 < bridge_> this is why ubsan probably contains a bug 01:22 < bridge_> how did you even figure this out tho 01:23 < bridge_> we had a overlapping bug in ddnet depending on the pitch size vs width in resolution for the video encoding process 01:23 < bridge_> robyte apparently had a non divisible by 4 resolution, i never tested it with that. 01:23 < bridge_> 01:23 < bridge_> I found a different bug, reported that. Robyte tried to reproduce and found this 01:23 < bridge_> i remove the if where it checked against the width and still didnt get his bug 01:24 < bridge_> bcs ptr == dst, bcs width == pitch 01:24 < bridge_> the code tried to repack itself without alignment, which was wrong anyway 01:24 < bridge_> but i'd probably never have found it bcs ubsan also didnt report this bug xD 01:25 < bridge_> so what does ubsan even check for? it checks for src==dst but not for overlap? 01:26 < bridge_> i dunno why it didnt catch this one. i assume they simply rely on the memcpy impl, and if the memcpy impl does a src == dst check to skip the copying it might never trigger 01:26 < bridge_> or whoever added the check was drunk xd 01:27 < bridge_> the ubsan check 05:28 < ws-client> @Jupstar ✪ i finally know now how u gamed with ping i assume you used cl_antiping :D i only had cl_predict on 05:44 < bridge_> u have never used antiping?? oh dear 05:50 < bridge_> Antiping haters should see the light like I have, it's worth it 06:10 < ws-client> @Ewan i prefer good internet 06:10 < ws-client> if my internet is not perfect i just dont play 06:10 < bridge_> lol 06:11 < ws-client> I spend 2 days reverse engineering ddnet persian protocol 06:11 < ws-client> https://zillyhuhn.com/cs/.1725768644.png 06:11 < ws-client> chillerbot-zx can now connect to all ddnet persian servers xd 06:12 < ws-client> figuring out their custom snapshots was a bit tricky but no problem for haxor dragon who can read network hexdumps of snaps and just sees tees 06:12 < ws-client> https://www.youtube.com/watch?v=qAYXgbSlSv0 06:12 < ws-client> im this guy 06:14 < ws-client> https://zillyhuhn.com/cs/.1725768804.png 06:14 < ws-client> all i see is cammostripes, twinbop and pinky 06:28 < bridge_> Very nice 06:30 < bridge_> Now you should help me develop this https://twelo.pages.dev 06:30 < bridge_> And re: GitHub, yes it's me 😄 06:30 < ws-client> nice site 06:31 < bridge_> Thanks 06:31 < bridge_> Only few pages are available as dummy front end 06:34 < bridge_> So I think I can figure out how to setup Javascript (probably not secure?) to interact to a pythonanywhere Flask API, but I couldn't figure out how setup database that connects to the API :( 06:34 < bridge_> 06:34 < bridge_> I explored a bit of pythonanywhere's Flask Alchemy SQL, as well as Turso. Turso I didn't delve in deep because it seems like it requires Rust (just for the Cargo I think). D: 06:37 < bridge_> So I think I can figure out how to setup Javascript (probably not secure?) to interact to a pythonanywhere Flask API, but I couldn't figure out how setup database that connects to the API :( 06:37 < bridge_> 06:37 < bridge_> I explored a bit of pythonanywhere's Flask Alchemy SQL, as well as Turso. Turso -- I didn't delve in deep because it seems like it requires Rust (just for the Cargo I think) and didn't want to install anything on the pythonanywhere env just yet 06:39 < bridge_> If you happen to know anyone that can do backend, and someone that can mod a TW server... 😉 06:42 < ws-client> basically everyone who is active in this channel @pathos3005 xd 06:45 < ws-client> btw if you want to do stats stuff i recommend ddnet-insta it already has a json api @pathos3005 https://github.com/ddnet-insta/ddnet-insta/blob/e2031acdac3040e9944fb785d97d934527a588ad/README.md#json---javascript-object-notation-format-4 06:45 < ws-client> and it recently also got brand new CTF/DM support 06:47 < bridge_> Needs a 'win' key :P but looking nice 06:47 < ws-client> win key? 06:48 < bridge_> Yeah key-value pair, win = 1 or win = 0 without deducing it 06:48 < ws-client> where? 06:49 < ws-client> you need to know which team won? Its the one with the higher score lol 06:49 < bridge_> It could be something like 06:49 < bridge_> ``` 06:49 < bridge_> ... 06:49 < bridge_> "score_limit": 200, 06:49 < bridge_> "win": -1, for red, 1 if blue, 0 if tied 06:49 < bridge_> "time_limit": 0, 06:49 < bridge_> ... 06:49 < bridge_> ``` 06:49 < bridge_> Yeah you're right 06:49 < ws-client> i mean i could add it but seems a bit redundant and also I don't like the magic values too much 06:50 < ws-client> is looking at the score a problem for you? 06:50 < bridge_> Now that I think about it, no -- just far future scope to have 'agree to tie' games, that's all 06:50 < bridge_> Typically due to disconnects or emergencies etc. 06:51 < ws-client> gctf community is building something similar 06:51 < ws-client> TNT has some ranking website based on those stats 06:52 < bridge_> You have link? 06:52 < ws-client> no i lost it -.- 06:53 < ws-client> https://gctfleague.org/ 06:53 < ws-client> ez found it 06:54 < bridge_> Wait, is it automated? Like you log in through the client like Teerace? 06:54 < bridge_> Auto upload results 06:54 < ws-client> it posts the round stats to a http endpoint of every game 06:54 < ws-client> no accounts 06:54 < ws-client> here is the code for the site btw https://github.com/TyeNTy/teeworlds-league 06:55 < bridge_> So no account system, right? Or planned? 06:55 < ws-client> Not planned 06:56 < bridge_> Something like Teerace would be *ideal* 06:56 < ws-client> I see 06:56 < bridge_> Otherwise, it's basically another https://teerank.io 06:56 < ws-client> yea 06:57 < ws-client> i dont have time for accounts now first i want to get other stuff done but maybe somewhen far in the future. Guess for now you have to code it your self. 11:28 < bridge_> <0dpododdododo> chiller 11:28 < bridge_> <0dpododdododo> dragon 11:43 < bridge_> кто русс 12:09 < bridge_> Я 12:11 < bridge_> morning fellas 12:52 < bridge_> yes, they intersect at every points you consider 13:02 < bridge_> their intersection product in the projective plane is a single point, in the affine plane it's zero because the lines themselves are zero 13:08 < bridge_> what the hell is intersection product ? you mean orthogonal projection ? 13:14 < bridge_> it's a concept in algebraic geometry 13:15 < bridge_> https://en.wikipedia.org/wiki/Intersection_theory#Intersection_theory_in_algebraic_geometry 13:41 < bridge_> # New Android beta version! 13:41 < bridge_> 13:41 < bridge_> See https://github.com/ddnet/ddnet/pull/8632 for details. The controls are now adjustable, although you will need to use an external text editor for it: 13:41 < bridge_> 13:41 < bridge_> 1. Export the touch configuration to the clipboard. 13:41 < bridge_> 2. Save the clipboard to a file so you can easily edit it (you should also do this to have a backup of your configuration in case you need to reinstall the app!). 13:41 < bridge_> 3. Edit the configuration (see link above for details about the format). 13:41 < bridge_> 4. Copy it to the clipboard and import it in the client again. If the configuration could not be loaded, check the local console for error messages containing `touch_controls` and fix it accordingly. 13:41 < bridge_> 5. Save the changes in the client when you are done. You can also discard your changes or revert to the default if you messed up. 13:41 < bridge_> 13:41 < bridge_> Example for a new touch button: 13:41 < bridge_> 13:41 < bridge_> ```json 13:41 < bridge_> { 13:41 < bridge_> "x": 500000, 13:41 < bridge_> "y": 500000, 13:42 < bridge_> "w": 100000, 13:42 < bridge_> "h": 100000, 13:42 < bridge_> "shape": "rect", 13:42 < bridge_> "visibilities": [ 13:42 < bridge_> "ingame" 13:42 < bridge_> ], 13:42 < bridge_> "behavior": { 13:42 < bridge_> "type": "bind", 13:42 < bridge_> "label": "Example", 13:42 < bridge_> "label-type": "plain", 13:42 < bridge_> "command": "echo Hello world!" 13:42 < bridge_> } 13:42 < bridge_> }, 13:42 < bridge_> ``` 13:42 < bridge_> 13:44 < bridge> Next Android beta version is now available, see https://discord.com/channels/252358080522747904/1277345584080097320/1282304450014482504 13:55 < bridge> im bored so i decided to make my own rly simple isa and a emulator for it, what do u think 13:55 < bridge> dont want to add immediate add cuz u can do that with a mov, since i want to keep it simple 13:55 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1282308394580967435/imagen.png?ex=66dee241&is=66dd90c1&hm=c2d0477af85f4273ab81160524b38d279a49816db4d0ff52fc6615cfe90c2854& 13:56 < bridge> totally not riscv inspired 14:55 < bridge> why no null opcode ? 15:18 < ws-client> @Jupstar ✪ Ip man hold my dumpling https://tube.zillyhuhn.com/video.php?t=on_fire_mode_idm.mp4&u=chiller 15:22 < bridge> make instant respawn 15:22 < bridge> but yeah man it is cool ngl 15:22 < bridge> just dunno if cool in competitive scenario 15:34 < bridge> is it possible to make the client not die after `systemctl suspend` command? 15:35 < bridge> the process still exists but it doesn't render anything or play any sounds 15:41 < bridge> risc6? 15:41 < bridge> i like the way ryo copies everything he loves 15:42 < bridge> at that point he can proceed to create human cloning machine 15:49 < bridge> true, i guess it will be the noop 15:50 < bridge> @ryozuki eta? :troll: 15:50 < bridge> xD soon tm 15:52 < bridge> tbh my idea is make this emulated isa and a custom compiler then a lang using this 15:52 < bridge> and maybe a rly simple os on top 15:52 < bridge> ye and then verilog prototype for it 15:52 < bridge> xd 15:52 < bridge> homebrew processor 15:53 < bridge> and ryo industries frfr 15:53 < bridge> :poggers2: 15:53 < bridge> i wonder if intel will sell their factories 15:53 < bridge> u can buy one 15:54 < bridge> kek 15:54 < bridge> to remake it into foss factory 16:04 < bridge> <_vencha> what the hell is this 16:04 < bridge> <_vencha> https://cdn.discordapp.com/attachments/293493549758939136/1282340780173688916/sigma5ss.mp4?ex=66df006a&is=66ddaeea&hm=2f219dc0119d0ec5354e51489361ac36a7b66f3c2f9a48572c613b1bf1392159& 16:04 < bridge> <_vencha> is it possible to do something like this? 16:04 < bridge> <_vencha> i saw it on a trashmap server 16:06 < bridge> it has similarities to one of chillerdragon's bots - pretty easy to code 16:07 < bridge> Trash map are official ddnet servers as far as I know 16:07 < bridge> So this looks like a sus bot client 16:07 < bridge> It has been done as you can see in the video. Or what do you mean by is it possible? 16:09 < bridge> no. 16:09 < bridge> trashmap is not affiliated with ddnet 16:09 < bridge> Since when? 16:09 < bridge> since ever :p 16:09 < bridge> its a project by timakro 16:09 < bridge> It’s built by timakro for map testing not for server modding to my knowledge 16:10 < bridge> <_vencha> so doesn't ddnet have an anticheat? 16:10 < bridge> <_vencha> the bot makes suspicious moves and doesnt get banned when there is anticheat 16:10 < bridge> No not all servers have anti cheat 16:11 < bridge> Yes but he rq so I thought it’s hosted by ddnet these days 16:11 < bridge> Anyways the way I understood it is for map testing and not for custom servers 16:11 < bridge> yeah but that's for timakro to decide and handle, his last discord message was around 2 months ago - did he really rq? :o 16:11 < bridge> no 16:11 < bridge> Yes 16:11 < bridge> He ghost 16:12 < bridge> he remakes unique race server btw 16:12 < bridge> to ddnet base 16:12 < bridge> why would he do that 16:12 < bridge> :kekw: 16:12 < bridge> urs is too old 16:12 < bridge> pure 0.6 16:12 < bridge> :monkaStop: 16:12 < bridge> u can't even complete commands after removing hardcoded mess on client side 16:14 < bridge> :feelsbadman: 16:35 < bridge> Chillerdragon: They aren't official ddnet servers. We only provide a prettier domain: https://trashmap.ddnet.org/. The servers are hosted by timakro 16:37 < bridge> Ah 🍈 was faster 16:38 < bridge> ```rust 16:38 < bridge> impl InstBuilder { 16:38 < bridge> #[inline] 16:38 < bridge> pub fn new() -> Self { 16:38 < bridge> Self { value: 0 } 16:38 < bridge> } 16:38 < bridge> 16:38 < bridge> #[inline] 16:38 < bridge> pub fn opcode(&mut self, opcode: OpCode) -> &mut Self { 16:38 < bridge> assert_ne!(opcode, OpCode::Invalid); 16:38 < bridge> 16:38 < bridge> let value = opcode as u32; 16:38 < bridge> 16:38 < bridge> self.value = self.value ^ (self.value & 0xff); 16:38 < bridge> self.value |= value; 16:38 < bridge> self 16:38 < bridge> } 16:38 < bridge> 16:38 < bridge> #[inline] 16:38 < bridge> pub fn rd(&mut self, value: u32) -> &mut Self { 16:38 < bridge> self.value = self.value ^ (self.value & 0xf00); 16:38 < bridge> self.value |= (value & 0xf) << 8; 16:38 < bridge> self 16:39 < bridge> } 16:39 < bridge> 16:39 < bridge> #[inline] 16:39 < bridge> pub fn rs1(&mut self, value: u32) -> &mut Self { 16:39 < bridge> self.value = self.value ^ (self.value & 0xf000); 16:39 < bridge> self.value |= (value & 0xf) << 12; 16:39 < bridge> self 16:39 < bridge> } 16:42 < bridge> thats riscv right.. 16:42 < ws-client> @murpi @meloƞ omagawd what i mean is that those are not heavily modded servers with features such as server side bots "official" might be the wrong word. I did not want to say "vanilla" 16:42 < bridge> nerd 16:42 < bridge> its fine chiller <3 16:43 < ws-client> its hosted by ddnet and its for maps it should be regular ddnet servers so if there is something running around and hammering with aimbot that clip probably falls under RULE #7 16:43 < bridge> no its edux 16:43 < bridge> xd 16:43 < bridge> ah :kek: 16:43 < bridge> :fuckyousnail: 16:44 < bridge> looks really good tho 16:52 < ws-client> @Jupstar ✪ is fng "freeze and grab" or "freeze next generation"? 16:54 < bridge> the 2nd 16:54 < bridge> why u ask me lmao 16:54 < bridge> $wiki fng 16:54 < ws-client> https://github.com/topics/freeze-and-grab 16:54 < ws-client> you seem to use that term 16:54 < ws-client> first time i see it 16:55 < bridge> https://archive.strct.cc/ddnet/2017-12-18/general.html#chatlog__message-container-392261754450608128 16:55 < ws-client> who is that? 16:55 < ws-client> and how did you get that so fast xd 16:55 < bridge> https://www.youtube.com/watch?v=-DE9GLua8Fw 16:55 < bridge> i simply did $wiki fng 16:56 < bridge> bcs i am discord not_really enjoyer 16:56 < ws-client> ah i thought its trol 16:56 < ws-client> didnt see the embed here 16:56 < bridge> the video is more of a proof 16:56 < ws-client> i subbed the channel 16:56 < bridge> the fact that he spelled out freeze 16:56 < ws-client> 2nd sub 16:56 < bridge> but not ng 16:56 < ws-client> xd 16:57 < bridge> nice 16:57 < bridge> he has some epyc beats 16:57 < bridge> in the video 16:58 < ws-client> he had 1 sub and 1 video from 15yrs ago im sure he will upload next week 16:58 < ws-client> and i wont miss it 16:59 < bridge> ping him somehow 16:59 < bridge> and ask him if freeze-ng is freeze next gen 16:59 < bridge> do your usual ping magic 16:59 < ws-client> i will 17:00 < bridge> ping him on some 1990 svn repo somewhere in the darkest of the dark nets 17:00 < ws-client> https://zillyhuhn.com/cs/.1725807595.png 17:00 < ws-client> he already did 17:00 < bridge> xd 17:00 < bridge> i know that guy xd 17:00 < bridge> maybe i asked him to ask xD 17:00 < bridge> $wiki 17:00 < bridge> Missing required argument. Correct usage: 17:00 < bridge> ```$wiki ``` 17:00 < bridge> $wiki Ryozuki 17:00 < bridge> pog 17:01 < ws-client> $wiki irc discrimination 17:02 < bridge> $wiki irc 17:08 < ws-client> does the wiki have git blame? 17:09 < ws-client> I guess history is what gets closest to it 17:16 < bridge> @jupeyy_keks Any idea why Vulkan cannot be found anymore when building ARM64 and x64 Android? 17:16 < bridge> ``` 17:16 < bridge> -- * Vulkan not found 17:16 < bridge> -- To run the tests, you have to install GTest 17:16 < bridge> CMake Error at CMakeLists.txt:714 (message): 17:16 < bridge> You must install Vulkan libraries to compile the DDNet client 17:16 < bridge> ``` 17:16 < bridge> Building ARM and x86 works. Changed min API to 23 since curl does not compile with min API 21. 17:17 < bridge> Seems like old API versions simply do not support Vulkan... 17:17 < bridge> Seems like old API versions simply do not support Vulkan with 64 bit... 17:18 < bridge> quite possible that they don't 17:20 < bridge> ok, API 24 works 17:21 < bridge> Epyc anti-backward compatbility moment 17:22 < bridge> yeah, the min api slowly keeps increasing lol 17:22 < bridge> but it seems like it was never that low to begin with 17:22 < bridge> never worked with those versions 17:23 < ws-client> 0.5 prediction code be like 17:23 < ws-client> https://zillyhuhn.com/cs/.1725808961.png 17:48 < ws-client> "Note: tested with gcc5 under debian8, report, if older versions don't work" 17:48 < ws-client> guess who am i quoting here 19:24 < bridge> GG 19:29 < bridge> are ddnet binaries compiled with modern compilers? 19:30 < bridge> it would be a pitty if its old cuz u lose new opts 19:30 < bridge> anyway, use gentoo 19:30 < bridge> they are build with old ones 19:30 < bridge> and perform basically the same xdd 19:35 < bridge> xd 20:38 < bridge> @learath2 :monkaStop: 20:38 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1282409674578198549/image.png?ex=66df4094&is=66ddef14&hm=b809cf93d15a769fa1ba580c587675fd92f6272dd449884ccf868bcf34c3ddf1& 20:38 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1282409674939043861/image.png?ex=66df4094&is=66ddef14&hm=89e51a7cc0e1b18bd5a36a364aefe770aad836cf039bf35aadcb0fddacc79ab7& 20:39 < bridge> ddnet virus? 20:43 < bridge> what's this? 20:43 < bridge> my language :justatest: 20:48 < bridge> It says to me that ddnet is a virus, is it true? 20:48 < bridge> depends where you downloaded it xd 20:50 < bridge> No, it's a regular game. 20:51 < bridge> oh 20:54 < bridge> okay 20:54 < bridge> but I downloaded from the official website and it says that it is a virus 20:54 < bridge> what antivirus program are you using? 20:55 < bridge> virustotal 20:55 < bridge> https://www.virustotal.com/gui/file/18ce070e04ea379fe9884b93f0fc763838083ab668e0e57aaffb0882a4d3ae25 20:55 < bridge> 20:55 < bridge> virustotal says ddnet is fine :) 20:55 < bridge> are you sure you downloaded it from https://ddnet.org/ 20:56 < bridge> yes 20:57 < bridge> if downloaded from the official website its an obvious false positive - ddnet is open source: https://github.com/ddnet/ddnet 20:57 < bridge> 20:57 < bridge> on the other hand - closed source bot clients are malware infected 20:57 < bridge> https://www.virustotal.com/gui/file/250d15aba811b235621330e57fb94db53d36cff5f7b7f89cd73b4b1874da701e 20:58 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1282414670707425331/image.png?ex=66df453b&is=66ddf3bb&hm=6772ebde5a5c52c9941ba72fefb092b5cc52804c4a5dc3cdbaf7ab5d99873193& 20:58 < bridge> you can probably ignore whatever DrWeb is 20:58 < bridge> looks like it detects our crash dumping as something bad, which makes no sense 20:59 < bridge> ` DDNet-18.5-win64 (2).zip ` gotta respect you downloading it for the third time now :P 20:59 < bridge> but when I open the file, it says that the PC may be at risk of a virus 21:00 < bridge> If you downloaded from ddnet.org or from Steam then it should be safe, Windows shows a warning for all files downloaded from the internet 21:01 < bridge> I don’t think it would show it for steam 21:02 < bridge> yeah, the Mark of the Web is only applied to files downloaded with a browser AFAIK 21:02 < bridge> yeah, the Mark of the Web is only applied to files downloaded with a web browser AFAIK 21:14 < bridge> DrWeb xddd 21:14 < bridge> sounds so trustworthy 21:16 < bridge> I think it comes from dr mingw 21:47 < bridge> at least they already had proper freeze skins :lol: 21:48 < bridge> hi i have problem is there anyone here who can guide me? 21:48 < bridge> we all have problems, maybe you can say what your problem is 21:49 < bridge> Thank you for your answer 21:49 < bridge> Np, i am waiting for yours 21:50 < bridge> if i want to define a function that goes from the start menu to the Settings > Information menu that I created where and how should I express it? 21:50 < bridge> When we click on the setting in the start menu, it will be transferred to the setting sectio 21:50 < bridge> When we click on the setting in the start menu, it will be transferred to the setting sectioد 21:50 < bridge> When we click on the setting in the start menu, it will be transferred to the setting section 21:52 < bridge> i created this , ihen i click it goes to an unknown place 😄 21:52 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1282428297464123402/screenshot_2024-09-07_18-36-37.png?ex=66df51ec&is=66de006c&hm=3e9c96bc07b47adf2cbbb0e350fa71e8d626269639cd17f8039209b68794a40a& 21:52 < bridge> going here and goin to unreadNews page 21:52 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1282428383200018554/screenshot_2024-09-07_21-00-38.png?ex=66df5200&is=66de0080&hm=5f4b71e89808f281f5769032690fed5d0c23f961b96e7b686fff42badfcdd284& 21:52 < bridge> @jupeyy_keks 21:54 < bridge> i don't know by heart, i'd probably need to do a global search over the code and find how other things do it too 21:54 < bridge> so guess i am not really a help 21:55 < bridge> i was also looking for it but I didn't see any work that i could do to move it to the place i want 21:55 < bridge> Dont know anyone else to help? @jupeyy_keks 21:56 < bridge> I dunno just wait and maybe someone answers.. And while waiting just read the code a bit, maybe u are lucky and find the answer 21:57 < bridge> . 21:57 < bridge> idk off the top of my head 21:57 < bridge> ok sure , ty ❤️ 22:18 < bridge> @ryozuki 22:19 < bridge> reference the enum in CMenus (menus.h) 22:19 < bridge> 22:19 < bridge> (e.g): 22:19 < bridge> ``` 22:19 < bridge> enum 22:19 < bridge> { 22:19 < bridge> PAGE_NEWS = 1, 22:19 < bridge> PAGE_GAME, 22:19 < bridge> PAGE_PLAYERS, 22:19 < bridge> PAGE_SERVER_INFO, 22:19 < bridge> PAGE_CALLVOTE, 22:19 < bridge> PAGE_INTERNET, 22:19 < bridge> PAGE_LAN, 22:19 < bridge> PAGE_FAVORITES, 22:19 < bridge> ``` 22:19 < bridge> 22:19 < bridge> see how the page is setup, what it calls/gets called to, what is happening when case == PAGE_INTERNET etc. 22:28 < bridge> what about setup? 22:29 < bridge> how for example page_internet is structured, how it's rendered etc 22:29 < bridge> That should give you the knowledge on creating your own 22:30 < bridge> I know how they work and i tried them one by one but still my page is, blank 22:30 < bridge> We would need to see your entire code to know why :feelsbadman: 22:31 < bridge> I just can't figure out what to replace it to go to the page i made 22:31 < bridge> 😂 22:32 < bridge> actually i create one function on menus.cpp 22:32 < bridge> 22:32 < bridge> ```cpp 22:32 < bridge> void CMenus::RenderInformation(CUIRect MainView) 22:32 < bridge> { 22:32 < bridge> 22:32 < bridge> 22:32 < bridge> 22:32 < bridge> }; 22:32 < bridge> ``` 22:32 < bridge> next i create one tab on Settings, name is Information 22:32 < bridge> ```cpp 22:32 < bridge> void CMenus::RenderSettingsInformation(CUIRect MainView) 22:32 < bridge> { 22:33 < bridge> 22:33 < bridge> 22:33 < bridge> 22:33 < bridge> char aBuf[128 + IO_MAX_PATH_LENGTH]; 22:33 < bridge> CUIRect Label, Button, Left, Right, Game, ClientSettings; 22:33 < bridge> MainView.HSplitTop(50.0f, &Game, &ClientSettings); 22:33 < bridge> { 22:33 < bridge> Game.HSplitTop(20.0f, &Label, &Game); 22:33 < bridge> Ui()->DoLabel(&Label, Localize("Welcome To --- Hope Enjoy "), 20.0f, TEXTALIGN_ML); 22:33 < bridge> Game.VSplitMid(&Left, nullptr, 20.0f); 22:33 < bridge> Game.HSplitTop(100.0f, &Label, &Game); 22:33 < bridge> Game.Draw(ColorRGBA(0.0f, 0.0f, 0.0f, 0.3f), IGraphics::CORNER_T, 6.0f); 22:33 < bridge> Ui()->DoLabel(&Game, Localize(" "), 12.0f, TEXTALIGN_MC); 22:33 < bridge> Game.Draw(ColorRGBA(0.0f, 0.0f, 0.0f, 0.15f), IGraphics::CORNER_B, 4.0f); 22:33 < bridge> 22:33 < bridge> 22:33 < bridge> } 22:33 < bridge> ``` 22:34 < bridge> Мое 22:41 < bridge> Zzz Melon 22:41 < bridge> 😂 22:44 < bridge> next i create one tab on Settings, name is Information 22:44 < bridge> ```cpp 22:44 < bridge> void CMenus::RenderSettingsInformation(CUIRect MainView) 22:44 < bridge> { 22:44 < bridge> 22:44 < bridge> 22:44 < bridge> 22:44 < bridge> char aBuf[128 + IO_MAX_PATH_LENGTH]; 22:44 < bridge> CUIRect Label, Button, Left, Right, Game, ClientSettings; 22:44 < bridge> MainView.HSplitTop(50.0f, &Game, &ClientSettings); 22:44 < bridge> { 22:44 < bridge> Game.HSplitTop(20.0f, &Label, &Game); 22:44 < bridge> Ui()->DoLabel(&Label, Localize("Welcome To --- Hope Enjoy "), 20.0f, TEXTALIGN_ML); 22:44 < bridge> 22:44 < bridge> 22:44 < bridge> 22:44 < bridge> } 22:44 < bridge> ``` 23:37 < bridge> how to modify ddnet and make your own ideas? 23:51 < bridge> By start coding today 23:54 < bridge> Nicely done