00:11 <+bridge_> Yeah tbh I also have doubted vital already 00:12 <+bridge_> I thought it guarantees to always send but I swear I have lost chat messages. And not due to spam prot but idk 00:18 <+bridge_> Happy new DDDev-Year 00:21 <+bridge_> Happy new year 🙂 01:21 <+bridge_> Happy new year 01:21 <+bridge_> my new year's resolution is 1920x1080, what's yours 01:32 <+bridge_> mine is 3686400 ! 01:39 <+bridge_> NaN 03:11 <+bridge_> same 03:11 <+bridge_> 2,073,600 px typ shi 03:51 <+bridge_> 1440p oled! 04:27 <+bridge_> E.g. the debug ghost is interpolating. And the client is defs 1 tick(or better one snapshot) behind the server and thus does a client side prediction. 04:27 <+bridge_> That is probs enough to evade the interpolation 04:27 <+bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1376646803000397834/image.png?ex=6956ce3e&is=69557cbe&hm=204bb69722eba034343319bfc95014ca44684cbb4962d1237fc1970303691611& 05:32 <+bridge_> <12944qwerty> physics work yay 05:32 <+bridge_> <12944qwerty> feels similar, not sure how same it is unfortunately 07:50 <+bridge_> yes exactly 07:50 <+bridge_> i think sometimes weird things happen with the ddos protection on servers 07:51 <+bridge_> we may be able to test for you, with very strange maps 07:51 <+bridge_> find weird edge cases XD 07:51 <+bridge_> like very precise velocities that should get stuck on solid corners 07:54 <+bridge_> <12944qwerty> it only supports spawning and unhookable tiles 07:54 <+bridge_> <12944qwerty> it only supports spawning and hookable/unhookable tiles 07:55 <+bridge_> <12944qwerty> im working on hooking rn 07:55 <+bridge_> <12944qwerty> i can give access though if you still want to test 08:05 <+bridge_> maybe 1 project at a time tho.. 08:15 <+bridge_> <12944qwerty> this is what it looks like 08:15 <+bridge_> <12944qwerty> https://cdn.discordapp.com/attachments/293493549758939136/1456184003890647052/TWMap_Arcade_Renderer_2026-01-01_01-14-43.mp4?ex=69577089&is=69561f09&hm=22b3192702a19f888d96cf2f1f02775b3691a2cf0ac0c3135ebb25cd75a282d7& 08:15 <+bridge_> <12944qwerty> circle is bigger than a tile to give a similar feel to the normal tee look 08:34 <+bridge_> i was gonna say its hard to say if the bbox is correct 08:35 <+bridge_> is dj 4 tiles? looks kinda high here 08:37 <+bridge_> i think its 5.5 + 4.5 08:37 <+bridge_> possibly a bit more total 08:38 <+bridge_> is dj 4 tiles? looks kinda high here (or low actually) idk 09:04 <+bridge_> <12944qwerty> I thought it was 6.5 from ground jump 09:08 <+bridge_> <12944qwerty> This is in python too and super unoptimized 09:08 <+bridge_> <12944qwerty> Having tile based collisions is a lifesaver 09:09 <+bridge_> :gigachad: 09:48 <+bridge_> ah oops 10:13 <+bridge_> I think it's 5.56 for ground 10:13 <+bridge_> could be due to rounding shenanigans 10:14 <+bridge_> It's probably due to 6.5 blocks being scaled with the 28x28 Tee hitbox, and you making it 32x32 screws with the scaling 10:15 <+bridge_> At least for me in Godot, that's what happened xd 10:15 <+bridge_> <12944qwerty> Isn't it 32 units per tile though? 10:15 <+bridge_> :justatest: 10:15 <+bridge_> hitboxes no 10:15 <+bridge_> but the tile size, yes 10:15 <+bridge_> <12944qwerty> Yeah hitbox I'm using 28 10:15 <+bridge_> <12944qwerty> I'll double check later 10:16 <+bridge_> Idk if the Tee's position is being calculated at it's centre point, or at it's foot 10:16 <+bridge_> Or at the top left 10:16 <+bridge_> <12944qwerty> I kinda just copied what ddnet does in code lol 10:16 <+bridge_> :pepeW: 10:17 <+bridge_> At least you are not at a point where you have to deal with multiple collision types 10:17 <+bridge_> ah yeah so 10:17 <+bridge_> Cuz teeworlds handles it stupidly 10:17 <+bridge_> better to do this in units sorry 10:18 <+bridge_> as in 1 unit = 32 pixels 10:18 <+bridge_> center 10:18 <+bridge_> both in UI and in code (IIRC) 10:18 <+bridge_> Oh, so him scaling to 32x32 actually affected his centre point 10:18 <+bridge_> but at least in the UI its fine 10:19 <+bridge_> personally i like that tiles are quantized to 32 units each 10:19 <+bridge_> it makes a lot of the math easier 10:19 <+bridge_> I think it was by default, and then due to collisions, it behaved differently 10:20 <+bridge_> I meant the collisions, not tiles being quantized 10:21 <+bridge_> I think some other entities, like the shield and heart has 32x32 hitboxes? 10:21 <+bridge_> or larger? 10:21 <+bridge_> Cuz I know, that specific positions allow you to bypass shields on a 2 block gap between them 10:22 <+bridge_> i still have NO idea how collisions are handled 10:22 <+bridge_> so it must be larger 10:22 <+bridge_> it has made mapping really fucking hard 10:22 <+bridge_> xd oh the joy of collisions 10:22 <+bridge_> (tee-tee collisions) 10:22 <+bridge_> there is also no way to modify this behavior beyond disabling it 10:23 <+bridge_> due to backwards compatibility I assume 10:23 <+bridge_> well, unless the collisions would be handled server side, idk 10:24 <+bridge_> well, unless the collisions would be handled server side, idk (which is a lot of CPU processing) 10:25 <+bridge_> hm, well adding new tunes has not been an issue in the past 10:26 <+bridge_> since nothing happens for maps that dont use them ofc 10:26 <+bridge_> not like tiles where the IDs can be used in other mods 10:26 <+bridge_> but i would love for controls on collision via tune 10:29 <+bridge_> oh also, what's responsible for hammer being stronger out of freeze 10:29 <+bridge_> oh also, what's responsible for hammer being stronger out of freeze cooldown 10:29 <+bridge_> seems rly weird like strong hook 10:30 <+bridge_> Remove tunes 10:32 <+bridge_> <12944qwerty> Yeah, luckily I'm choosing to ignore 10:33 <+bridge_> :justatest: tunes are laggy af in some situations 10:33 <+bridge_> just like speed tiles were 10:34 <+bridge_> <12944qwerty> I'm also choosing to ignore everything except for the very basic stuff - only unhookable, hookable, freeze, unfreeze, and potentially tee teleports 10:34 <+bridge_> this is cute 10:34 <+bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1456219018233909270/image.png?ex=69579125&is=69563fa5&hm=a7942f9f174fafeaf54659ccc2a17a8fcdde26b292384df21ccff4716bb36be6& 10:34 <+bridge_> someone tried to kill my bot XD 10:34 <+bridge_> <12944qwerty> Lmao 10:34 <+bridge_> good thing every single JSON lib in existence escapes things 10:34 <+bridge_> <12944qwerty> Luckily you use json instead 10:35 <+bridge_> I know with what exploit, stupid 10:35 <+bridge_> Yeah, so stupid 10:35 <+bridge_> <12944qwerty> SQL injection ♥️ 10:35 <+bridge_> that was me btw also it wouldnt reply to me with that name 10:35 <+bridge_> LOL 10:35 <+bridge_> more like SQL remote execution 10:35 <+bridge_> nice 10:35 <+bridge_> oh lmao 10:35 <+bridge_> i do have a function called exit() in my code 10:36 <+bridge_> :justatest: 10:36 <+bridge_> and its not even in python 10:36 <+bridge_> <12944qwerty> I forgot abt that too lmao 10:36 <+bridge_> what did it say back? 10:36 <+bridge_> do you have at least a safety protocol on just, not triggering exit() immediately? 10:36 <+bridge_> it uses Promise.all to let down all connections 10:37 <+bridge_> db logic is currently blocking, it would not finish until event queue per connection is flushed 10:37 <+bridge_> oh, so even if it would've worked, it would just ignore the request 10:37 <+bridge_> well, if exit() is called it would exit 10:37 <+bridge_> it just wouldnt cause issues really 10:37 <+bridge_> idk it just wouldnt reply to me at all 10:37 <+bridge_> this is assuming Swarfey codes gud btw 10:37 <+bridge_> unless you can somehow forcefully shutdown the server without response 10:38 <+bridge_> sure, just get it to crash like it's been crashing in the last 48 hours 10:38 <+bridge_> (i am still very much working on making it stable) 10:38 <+bridge_> what's your bot doing btw? 10:38 <+bridge_> ig @DDNet ? 10:38 <+bridge_> it calculates elo ratings for volleyball players on ddnet 10:39 <+bridge_> pog 10:39 <+bridge_> it will even handle weird cases like ball disconnections 10:39 <+bridge_> based on team entry order 10:39 <+bridge_> currently both sv_killmsg and sv_killmsgteam are properly handled for both players (issues forfeit) 10:39 <+bridge_> also swarfy merged my edits, pog 10:40 <+bridge_> big 💪 10:40 <+bridge_> this is all from client POV btw 10:40 <+bridge_> it's impressive this is even possible at all 10:40 <+bridge_> the score reporting is reliable somehow even with network instability (200 ping) and the ball logic all happens in 4 ticks 10:41 <+bridge_> so snapshots are still fairly reliable even if they're recv unordered 10:41 <+bridge_> ain't 4 ticks a bit low? 10:41 <+bridge_> yes XD 10:41 <+bridge_> but i want the map to be fast as well 10:41 <+bridge_> it's worse from client POV 10:41 <+bridge_> i get 2 snaps 10:41 <+bridge_> JUST 2 10:41 <+bridge_> but i get both snaps so often that i had to add debounce logic for 4 ticks 10:42 <+bridge_> It's like playing on a chinese ddnet server 10:42 <+bridge_> ok not that worse xd, but yeah 10:42 <+bridge_> if the server gets ddosed hard, or bot does, idk what happens 10:42 <+bridge_> probably games will just not finish 10:42 <+bridge_> or crashes completely 10:42 <+bridge_> best case scenario 10:42 <+bridge_> the lib handles lag pretty well i think 10:43 <+bridge_> too well, i had to disable some timeout stuff reconnecting if connection is not done yet 10:43 <+bridge_> because my masterserv logic does not check connecting 10:43 <+bridge_> (it probably should) 10:43 <+bridge_> not like it would have an impact on incoming attacks 10:44 <+bridge_> it was a problem for connecting to remote areas from where im hosting 10:44 <+bridge_> mostly china 10:44 <+bridge_> it would connect 4 copies of the bot because it gets disconnect faster than it connects, and doesnt know not to connect again 10:44 <+bridge_> so i had to disable connection retrying 10:45 <+bridge_> eh, max players manually reconnect 10:45 <+bridge_> could do that 10:45 <+bridge_> but tbh i think its fixed now anyway 10:45 <+bridge_> (hopefully) 10:46 <+bridge_> your project sounds more interesting, than what I have been doing the past 2 months, which is learning a compiler :justatest: 10:46 <+bridge_> my bot does so many weirdly sophisticated things just because i assumed something would be simple 10:46 <+bridge_> and had to rapidly change shit 10:46 <+bridge_> I know that feeling all too well 10:46 <+bridge_> im even thinking about implementing a chat queue backoff based on client ID 10:46 <+bridge_> so someone cant spam idempotent commands 10:47 <+bridge_> Wait, there ain't a safeguard for it? 10:47 <+bridge_> multiple people can cause the chat queue to get backed up, with their combined chat points 10:47 <+bridge_> ugh 10:47 <+bridge_> i might just start with a generic per-ID limit 10:47 <+bridge_> that quickly reminded me of spoofers 10:48 <+bridge_> yeah, make it your priority 10:48 <+bridge_> well, my priority rn is migrating stuff to use ID as primary key so rename does not just break everything XD 10:48 <+bridge_> never assume a natural key is okay 10:49 <+bridge_> i did 10:49 <+bridge_> or let it break 🧌 10:49 <+bridge_> and i regret everything 10:49 <+bridge_> or let it break :troll: 10:49 <+bridge_> natural key? like a public key? 10:49 <+bridge_> like someone's name, email 10:49 <+bridge_> it always causes problems, always 10:50 <+bridge_> As long as you use UIDs, yeah it's fine 10:50 <+bridge_> altho reconnecting does not apply to having the same UID 10:51 <+bridge_> so that's gonna be your next problem xd 10:51 <+bridge_> (unless im stupid and the UID is based on ip and some other credencials) 10:52 <+bridge_> ngl idfk how connections are initiated in ddnet servers 11:10 <+bridge_> Woah looks good @12944qwerty send code 11:53 <+bridge_> chillerdragon: check #off-topic 11:54 <+bridge_> chillerdragon: check off-topic 11:54 <+bridge_> anyone know what characters i need to escape when whispering a player? 11:56 <+bridge_> seems you cannot do /w {message.author} blah or similar if there are backslashes, but even with a regex replacement that doesnt work 12:03 <+bridge_> Names are escaped with the `str_escape` function in `chat.cpp`, which replaces `\` with `\\` and `"` with `\"` 12:05 <+bridge_> got it, we discovered it quickly through /w ^^ 12:06 <+bridge_> and also "" is needed for these names if it starts or ends with those 12:09 <+bridge_> Yeah, names are escaped if they contain at least one ` ` or `"` character, otherwise the unescaped named is used 12:18 <+bridge_> @kebscs hmm maybe 12:18 <+bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1456245265714516072/test_2026-01-01_20-16-32.mp4?ex=6957a997&is=69565817&hm=266cbb167c4b6396d06d9aedc66f5575a193407e19722215b6b4a254fc9897cc& 12:19 <+bridge_> they're kinda in the way though. 12:19 <+bridge_> realistically u shouldnt spam these like so in a map. but if you do then it's as unreadable as if there weren't any indicators for the ammo capacity 12:20 <+bridge_> :brownbear: 12:20 <+bridge_> i feel like this is as annoying as having to figure out what a tune does, might just be better for people to read a number on the screen 12:20 <+bridge_> Yea for sg it works bcs small texture 12:20 <+bridge_> There's no dd font 12:20 <+bridge_> sadness 12:21 <+bridge_> Ye it looks rly nice with sg 12:21 <+bridge_> tbh its probably too fast rotation speed xd 12:21 <+bridge_> might look better if it's always above or side for rotated 12:22 <+bridge_> i guess nade projectile is sideways though 12:23 <+bridge_> you might be able to use the sg bullet for all of them, its kinda asset a:buse but it would be much easier to see 12:23 <+bridge_> yes, i was thinking use the sg bullet and recolor it. Not like you even see the sg bullet in ddrace gameplay anywayas 12:24 <+bridge_> great point didnt think about that 12:24 <+bridge_> recolor may not be necessary then, also consider those that change the assets may see it weirdly 12:24 <+bridge_> their fault 12:25 <+bridge_> I mean yeah thats why its best to stick with the matching asset 12:25 <+bridge_> i would be surprised by any assets that would look especially bad with adding pure red and pure blue 14:28 <+bridge_> do you have code at it so i can test? 14:28 <+bridge_> i think rotating just 1 ammo would be enough 14:32 <+bridge_> you see how many you have after pickup in top left 14:39 <+bridge_> And I thought I was trolling with the spinny suggestion... 14:41 <+bridge_> https://github.com/ddnet/ddnet/actions/runs/20636941755?pr=10529 14:41 <+bridge_> i suggested it beforehand 🥸 14:41 <+bridge_> i suggested it beforehand 🥸 14:41 <+bridge_> ainmt nobody wanna look that far 14:42 <+bridge_> and ye i can send a branch in a bit 14:42 <+bridge_> no other way to do it reliably 14:43 <+bridge_> and its the hud so makes sense 14:59 <+ChillerDragon> @milkeeycat what makes something plural or singular in a conventional commit prefix? 14:59 <+ChillerDragon> had a look at angular https://github.com/angular/angular/blob/22b96b9/CONTRIBUTING.md#type 14:59 <+ChillerDragon> i do not understand why "test" is singular and "docs" is plural 14:59 <+ChillerDragon> is it always singular but "docs" is a plural only word? 15:00 <+ChillerDragon> or maybe its because of "doc" sounds like doctor xd 15:12 <+bridge_> I have no idea, `docs` sounds better than `doc` xd 15:19 <+bridge_> ChillerDragon: Can you queue #11536 and #11515 again? 15:19 <+bridge_> https://github.com/ddnet/ddnet/pull/11536 15:19 <+bridge_> https://github.com/ddnet/ddnet/pull/11515 15:22 <+bridge_> @robyt3 could you review? 🙂 https://github.com/ddnet/ddnet/pull/11541 15:26 <+ChillerDragon> @robyt3 imo you could also just requeue your self 15:28 <+bridge_> Mostly seems good code-wise. I like the visuals in https://discord.com/channels/252358080522747904/293493549758939136/1456245266138267741. I think this is considered a new gameplay feature though so it requires a map as well. 15:29 <+bridge_> yes im thinking of some better visual 15:29 <+bridge_> Yeah, I guess. It was already approved and supposed to be merged. Then the merge commit would show me merging my own PR though :/ 15:41 <+bridge_> could i get an approve or smth 15:43 <+ChillerDragon> @robyt3 yes that would look gangster wouldnt it 15:44 <+bridge_> chillerdragon: https://milkeeycat.github.io/ddnet_protocol/ :poggers2: 15:44 <+ChillerDragon> ew doxygen xd 15:44 <+ChillerDragon> but pog i guess 15:46 <+bridge_> does it have dark theme for you too? 15:46 <+ChillerDragon> yes 15:46 <+ChillerDragon> this looks fancy https://milkeeycat.github.io/ddnet_protocol/structDDProtoChunk.html 15:46 <+ChillerDragon> but does anyone find it useful ever? xd 15:47 <+bridge_> it's cool to look at it xd 15:47 <+ChillerDragon> xd 15:47 <+bridge_> also now mentions of other types are links, not just text 15:47 <+ChillerDragon> for me documentation like this has something deeply unpleasing but i cant describe it 15:47 <+ChillerDragon> but that does not really matter because i won't read the docs no matter how they look :D 15:48 <+bridge_> idk, I like it. I can open this website, put in a type/function/variable name and read what/how it does 15:48 <+bridge_> (i'll probably just open the code locally tho) 15:48 <+ChillerDragon> yes fr 15:49 <+ChillerDragon> the code has the comments too 15:49 <+ChillerDragon> also for ddnet i wonder if anyone has actually ever browsed the doxygen 15:49 <+ChillerDragon> instead of just the code 15:49 <+ChillerDragon> i like sdl docs tho! 15:49 <+ChillerDragon> https://wiki.libsdl.org/SDL3/APIByCategory 15:49 <+ChillerDragon> i have used it over the code already 15:49 <+ChillerDragon> it just looks nice 15:50 <+ChillerDragon> their doc gen is also open source 15:50 <+ChillerDragon> i think it even has some fancy bidirectional sync 15:50 <+ChillerDragon> you can edit it in the web and it creates a commit for you in the code with doc comment 15:50 <+ChillerDragon> or you edit the doc comment in the code and then it creates the website stuff for u 15:51 <+bridge_> I don't think doxygen looks bad 15:51 <+bridge_> good enuff for me 15:52 <+bridge_> You can view doxygen comments in your editor when hovering the function name 15:53 <+bridge_> Yes 15:53 <+bridge_> That’s what I mean tho 15:53 <+bridge_> I use my editor to view the comments not the website 16:04 <+bridge_> I think it's sometimes useful. It provides an index to new developers. Could also provide more detailed descriptions of individual topics (network, snapshots, map format, skin rendering etc.). Right now only the mastersrv has more detailed documentation. 16:05 <+bridge_> There's also graphics like this :justatest: 16:05 <+bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1456302228858994883/image.png?ex=6957dea4&is=69568d24&hm=70438ae184038093a5449a3a625c8fa952fd3d3a6270d0f35ba53e3bffb8e00a& 16:07 <+bridge_> what's the url of ddnet's doxygen docs? 16:08 <+bridge_> It's currently down :/ https://codedoc.ddnet.org/ @ryozuki 16:13 <+bridge_> I don't know how good of an idea it is but if there's no one who wants to host it themselves, it's possible to host doxygen docs using github pages 16:14 <+bridge_> I don't know why we aren't just hosting it on ddnet.org directly. We are already hosting https://ddnet.org/codebrowser/ 16:35 <+bridge_> ^ 16:38 <+bridge_> Omg 16:38 <+bridge_> all of projectiles and all of the ddnet physics needs to get refactored 16:38 <+bridge_> :kek: why 16:38 <+bridge_> its so bad 16:38 <+bridge_> for the intersect bug? 16:40 <+bridge_> ~~i honestly would love an actual weapon class instead of just everything ifing in the 4 types of entities.~~ 16:40 <+bridge_> well ur suggestion works for that bug but doesnt it become so ugly if u have like 3 or 4 entities that laser can intersect one day 16:40 <+bridge_> also having every single projectile behavior in one projectile.cpp is just so goofy 16:41 <+bridge_> make IntersectEntity accept list of types 16:41 <+bridge_> instead of just searching for 1 single type 16:41 <+bridge_> i think this one is cleanest with minimal changes 16:42 <+bridge_> yea its probably smartest 16:42 <+bridge_> also all the projectile code is genuinely unreadable 16:42 <+bridge_> :kek: yea 16:43 <+bridge_> ill review prediction code after server side is done 16:43 <+bridge_> but for now its good 16:43 <+bridge_> alternate switch isnt predicted, but when i did the prediction it wasnt possible 16:44 <+bridge_> ok i probably fix tmrw im gonna map and then sleep 16:45 <+bridge_> also i think it would look nice if on hit the target got smaller for like few ticks, instead of just particile 16:45 <+bridge_> but for now is good enough, this could get added in future 16:45 <+bridge_> oh true 16:45 <+bridge_> right not its a bit too static, but id prefer faster merge over this 🙂 16:46 <+bridge_> i'd also prefer a variation on the sprite for the alternate switch, but i haven't had any good ideas 16:46 <+bridge_> make the circle inside a square 16:46 <+bridge_> or idk. it sucks because all behaviors (delay, forever, alternate) can be useful but it's a bit hard to visually show it 16:47 <+bridge_> i think delay should just show on the door sprites somehow. and yeah maybe alternate switches can be a square or smth 16:47 <+bridge_> actually maybe i can put the ♻️ pattern as the outline somehow 16:48 <+bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1456313024209092659/image.png?ex=6957e8b1&is=69569731&hm=2edbbd0ceb795d0d4aed175596a7e9277c7ad9664208d59e2d0c2d560e74aa4d& 16:48 <+bridge_> left alternating, right normal 16:50 <+bridge_> or like this XD 16:50 <+bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1456313547691917323/image.png?ex=6957e92e&is=695697ae&hm=72bef60bf3b580994ba39f04af8be7d4db538f53cf6a59af8d7f9d1636226898& 16:50 <+bridge_> xd 16:51 <+bridge_> ill post in the pr, would be good to have at least some small change for the alternating 16:59 <+bridge_> @louis.place could you post branch with the rotating ammo? 17:16 <+bridge_> @kebscs 17:17 <+bridge_> thanks 17:20 <+bridge_> oh i think the rendering can be done with half the complexity if u collect the right vs left positions outside of the lambda, then just pass them in 17:20 <+bridge_> idt it matters 17:22 <+bridge_> will check later 17:22 <+bridge_> idk if rotating around circle is best 17:22 <+bridge_> and if 1 ammo isnt enough 20:29 <+bridge_> How can I connect a bot and write it code on my LAN server? 21:20 <+bridge_> What is „write it code“ @prosti13 21:21 <+bridge_> make it move 😄 21:21 <+bridge_> Ah 21:21 <+bridge_> `dbg_dummies 1` 21:21 <+bridge_> In rcon 21:21 <+bridge_> It moves 21:22 <+bridge_> Needs to be compiled as debug build tho 21:23 <+bridge_> I didn't understand anything 21:24 <+bridge_> :justatest: 21:26 <+bridge_> the bot is going to write the code, skynet style 21:26 <+bridge_> xd 21:29 <+bridge_> <12944qwerty> chillerdragon: https://github.com/12944qwerty/pyddnet 21:29 <+bridge_> <12944qwerty> chillerdragon: 21:31 <+bridge_> <12944qwerty> terrible code but 21:32 <+bridge_> <12944qwerty> i plan on keeping everythign separate so someone could use only what they want if needed 21:32 <+bridge_> <12944qwerty> super high level tho 21:49 <+bridge_> is there a alternative to uptee ? 21:49 <+bridge_> what's uptee 21:53 <+bridge_> nothing much cutie whataboutu? 21:56 <+bridge_> cutee* 21:56 <+bridge_> Uptee is a program that lets u manage tw servers via webpage i hope 21:56 <+bridge_> ooooo 21:56 <+bridge_> that sounds so cool 21:56 <+bridge_> But its 10 yo and using python 2.7 21:56 <+bridge_> skul 21:57 <+bridge_> And i bored using tmux 21:57 <+bridge_> ya fair 23:13 <+bridge_> nah ts is crazy 23:14 <+bridge_> i cant believe efe wasnt trying to pull that joke