03:59 <+bridge> [ddnet] guys do you can make (workshop) on steam? 08:46 <+bridge> [ddnet] @Simon' this only works if you choose a skin from https://ddnet.tw/skins 08:47 <+bridge> [ddnet] Ye i did. I downloaded one a put it into the skin folder to the others. Then i equipped it ingame and play with it. But others cant see it @deen 08:47 <+bridge> [ddnet] :feelsbadman: 08:47 <+bridge> [ddnet] Maybe you renamed it? 08:48 <+bridge> [ddnet] No 08:48 <+bridge> [ddnet] You don't need to manually download it. In client, just write the name in "Your skin" under Settings -> Tee 08:48 <+bridge> [ddnet] Do the other players use up-to-date DDNet client? 08:48 <+bridge> [ddnet] Ye 08:48 <+bridge> [ddnet] Are you online now? Then I can test 08:48 <+bridge> [ddnet] Wait gimme a min 08:49 <+bridge> [ddnet] Im online which server? 08:50 <+bridge> [ddnet] some ddnet one, I'll follow you (assuming your name is simon 08:50 <+bridge> [ddnet] No is sL|coffee 08:51 <+bridge> [ddnet] Is a kog ger # 1 server or something 08:51 <+bridge> [ddnet] Map is quick one 08:52 <+bridge> [ddnet] maybe because kog has such long cooldown between skin changes? 08:52 <+bridge> [ddnet] Thanks @deen may u be lucky with everything 08:53 <+bridge> [ddnet] No it works my friends ddnet is just retardee 08:53 <+bridge> [ddnet] ok 08:54 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/779253290982309898/20201120_085407.jpg 08:54 <+bridge> [ddnet] Ye is actually me 08:54 <+bridge> [ddnet] So 08:54 <+bridge> [ddnet] Idk 08:54 <+bridge> [ddnet] I guess 08:54 <+bridge> [ddnet] maybe they have a old client 08:55 <+bridge> [ddnet] or no access to ddnet.tw 08:55 <+bridge> [ddnet] is the download skin option turned on 08:55 <+bridge> [ddnet] @Jupstar ✪ ye i guess friends ddnet is an old one 08:55 <+bridge> [ddnet] Ye is turned on 08:55 <+bridge> [ddnet] he should just update 😄 08:55 <+bridge> [ddnet] Ye 08:55 <+bridge> [ddnet] I guess 08:56 <+bridge> [ddnet] Or 08:56 <+bridge> [ddnet] He can try 08:56 <+bridge> [ddnet] To toast his ddnet 08:56 <+bridge> [ddnet] Maybe it workes 08:56 <+bridge> [ddnet] Well 08:56 <+bridge> [ddnet] Idk 09:23 <+bridge> [ddnet] @Jupstar ✪ any idea about textures disappearing with AMD GPUs? https://steamcommunity.com/app/412220/eventcomments/2988663148728603286/?tscn=1605792940 09:41 <+bridge> [ddnet] i dont really understand why they try to say tbh 09:41 <+bridge> [ddnet] maybe they also have 1500 skins or smth 09:46 <+bridge> [ddnet] disappear sounds like, it got overwritten, which was the case 09:46 <+bridge> [ddnet] disappear sounds like, it got overwritten, which was the case in this update 09:57 <+bridge> [ddnet] ok, then nightly should help 11:19 <+bridge> [ddnet] did the finish line logic change? 11:19 <+bridge> [ddnet] we were 3 ppl in team, 2 finished 11:19 <+bridge> [ddnet] then the 3rd went spec and we did not get the finish 11:25 <+bridge> [ddnet] no 11:25 <+bridge> [ddnet] By going spec, do you mean /spec or "Join Spectators" 11:26 <+bridge> [ddnet] join spectator 11:26 <+bridge> [ddnet] normally it should instantly finish the team 11:26 <+bridge> [ddnet] ok, weird 11:26 <+bridge> [ddnet] since both crossed the finish line 😄 11:26 <+bridge> [ddnet] I think we only check the finish logic when you cross the finish line again 11:26 <+bridge> [ddnet] but that wasnt like this in the past 11:27 <+bridge> [ddnet] See OnCharacterFinish 11:27 <+bridge> [ddnet] it's only called on TILE_FINISH 11:27 <+bridge> [ddnet] I don't remember any changes to that in the last few years 11:29 <+bridge> [ddnet] Hm, we also do CheckTeamFinished in OnCharacterSpawn 11:30 <+bridge> [ddnet] So it should have worked if the player killed, but joining spec never worked from what I can tell 11:30 <+bridge> [ddnet] I guess the motivation was that a player can die 11:30 <+bridge> [ddnet] Oooh, I think I know what caused it 11:30 <+bridge> [ddnet] my change 11:31 <+bridge> [ddnet] in OnCharacterDeath we also check it, and I changed something there. You could check if that is the c ause 11:32 <+bridge> [ddnet] well it probs is 11:32 <+bridge> [ddnet] from feeling this always worked 1-2 years ago xd 12:16 <+bridge> [ddnet] cant believe i just spend half an hour explaining to someone about how to join a CHN server and change maps. 12:19 <+bridge> [ddnet] @TsFreddie make a step by step guide, so you dont need to do it again next time xD 12:20 <+bridge> [ddnet] nah, the guy cant read 12:20 <+bridge> [ddnet] dont wanna bother anymore 12:20 <+bridge> [ddnet] youtube video xD 12:20 <+bridge> [ddnet] 12:22 <+bridge> [ddnet] is 0 ping a known issue? 12:22 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/779305765445042176/63ae9df0392ff4fb.jpg 12:46 <+bridge> [ddnet] sometimes when im lagging the server list shows like that 15:45 <+bridge> [ddnet] Thanks for releasing 15.2.3 16:04 <+bridge> [ddnet] Now I can tell my Steam players to update the client 17:36 <+bridge> [ddnet] @deen There is no entry in MD5 and SHA256 checksum files for latest release (15.2.3) 18:32 <+bridge> [ddnet] @RafaelFF thanks. that means I forgot to run the autoupdater script. doing so now 18:37 <+bridge> [ddnet] Hello, could someone help me? I was wondering how I can code tile layers, I wanted to check other tiles besides the "Game" (where there are entities) (sorry bad english) 18:40 <+bridge> [ddnet] code? 18:55 <+bridge> [ddnet] @deen program in c++ 18:59 <+bridge> [ddnet] I don't think I understand what you're trying to do 19:00 <+bridge> [ddnet] I'm making a teeworlds mod and wanted to know how I program tile layers 19:01 <+bridge> [ddnet] You can see how front and tele layers etc are implemented I guess 19:01 <+bridge> [ddnet] or you could just use one of them 19:47 <+bridge> [ddnet] @deen I've tried, but there are many things 19:49 <+bridge> [ddnet] @deen i think he bases on vanilla 19:55 <+bridge> [ddnet] What is the best Version to start building custom mods on? The newest DDNet Server, 0.6.5 TW or the newest TW? 19:55 <+bridge> [ddnet] Is there a huge difference in plain server without mod between ddnet and 0.6.5 tw? 20:00 <+bridge> [ddnet] @stnwtr According to @Pure_luck who tried both, it's better to base the mod on DDNet-Server, 20:01 <+bridge> [ddnet] @stnwtr 0.6.5 is only 16 players, ddnet is 64 and supports 0.6 clients and 0.7 clients 20:02 <+bridge> [ddnet] @stnwtr deen is right. But please read this first and feel free to ask anything from me 20:02 <+bridge> [ddnet] 20:02 <+bridge> [ddnet] https://www.notion.so/influck/Choosing-the-right-teeworlds-server-version-read-it-FIRST-116e42c219c34171a8b680b3c2f9be89 20:03 <+bridge> [ddnet] I've wrote this to publish somewhere but don't know where. Because DDNet forums don't have MODS subforum and teeworlds team will not be happy if I will publish this comparison strongly biased towards DDNet codebase and community. 20:04 <+bridge> [ddnet] 😄 20:05 <+bridge> [ddnet] https://forum.ddnet.tw/viewforum.php?f=16&sid=721356284d6c18add1bd6ba36f079ba3 sounds like the right category 20:06 <+bridge> [ddnet] Thanks deen & Pure_luck! 20:06 <+bridge> [ddnet] https://edgarluque.com/blog/intro-to-ddnet.html :yoo: 20:06 <+bridge> [ddnet] i should continue it 20:08 <+bridge> [ddnet] Thanks 20:09 <+bridge> [ddnet] May I ask you another question? 20:09 <+bridge> [ddnet] What is the difference between 0.6 and 0.7 Maps? Because I found a `map_convert_07.exe` 20:12 <+bridge> [ddnet] They are not compatible. And beware as this is one-way road. You can convert 0.6 to 0.7 but not back 0.7 to 0.6. If you will choose DDNet codebase for your server you should use DDNet client to edit maps and save them in DDNet/0.6 format. 20:15 <+bridge> [ddnet] @stnwtr what mod are you going to make? 20:17 <+bridge> [ddnet] ddnet got a custom format for maps or is it the same like tw 0.6.5? 20:17 <+bridge> [ddnet] It's mostly 0.6 with extensions. 20:18 <+bridge> [ddnet] No plan yet, I just want to get the source known and trying around 20:18 <+bridge> [ddnet] The main difference are game layers. DDNet have more of them and even game layer use more tiles. 20:18 <+bridge> [ddnet] https://ddnet.tw/explain/?layer=game 20:19 <+bridge> [ddnet] Those layers are mostly telling the server what to do if a character is passes trough them. So this is not about client compatibility. 20:19 <+bridge> [ddnet] Though clients will use game tiles to predict server reaction too. 20:20 <+bridge> [ddnet] Anyway I hope saying "0.6" you mostly mean "0.6 or DDNet format". I think you could load DDNet map in teeworlds 0.6 server but there is no really reason to use 0.6 server. 20:21 <+bridge> [ddnet] They're mostly compatible if you will not use DDNet special tiles in your map. 20:21 <+bridge> [ddnet] They're mostly compatible if you will not use DDNet special tiles in your map like: freeze tiles, teleports, speedup, custom tuning layers (antigravity/water) etc. 20:22 <+bridge> [ddnet] And DDNet server will load 0.6 maps with absolultely no problems. 20:22 <+bridge> [ddnet] but i can use less features with? 20:23 <+bridge> [ddnet] Yes, just I don't think you will start with DDNet code as a server and then you will switch to 0.6. 20:23 <+bridge> [ddnet] If you will choose DDNet codebase for your server you could use all DDNet features for your map and every client (0.6, 0.7 and DDNet) will "support" it as tiles are mostly for server logic. 20:24 <+bridge> [ddnet] If you will choose teeworlds 0.7 codebase you will just don't have DDNet features. And don't choose 0.6 teeworlds server as a base, there is no really reason to. 20:25 <+bridge> [ddnet] I have a map in infNext mod which uses DDNet tiles heavily (speedups, teleports, tune zones) and I play 0.7 client. And it works perfectly. Thanks to @Learath2 once you choose DDNet server you will have access to nice compatibility layer which make magic happen. 20:26 <+bridge> [ddnet] But I am mostly citing my guide which you should definitely read first 😄 20:29 <+bridge> [ddnet] so, the best thing is probably to use ddnet as codebase for everything? 20:29 <+bridge> [ddnet] and maps made with ddnet are best as well? 20:29 <+bridge> [ddnet] - 0.6 server/client is basically outdated and should not longer be used? 20:34 <+bridge> [ddnet] Yes. But if you want to make CTF/DM small modifications then you could start with 0.7, this is the only reason. 20:36 <+bridge> [ddnet] DDNet and teeworlds differs. I've ported 0.7-based infClass clone do DDNet and some things were lacking. 20:36 <+bridge> [ddnet] There are not rounds, and DDNet is mostly not about killing but about racing and timing and just have more code you will need. 20:36 <+bridge> [ddnet] Though it would be rather easy to add anything missing. 20:37 <+bridge> [ddnet] And still DDNet and 0.7 code, classes, internal logic for non-ddrace mod will be 95% the same. 20:38 <+bridge> [ddnet] If you just want to make CTF/DM mod with really slightly modification you could spend a day and it will be a CTF/DM. 20:38 <+bridge> [ddnet] If you just want to make CTF/DM mod with really slightly modification you could spend a day and it will be a CTF/DM with your changes. 20:38 <+bridge> [ddnet] Also you could join my server/mod to see what is possible regardless of codebase and to get feel of 0.6/0.7 compatibility. 20:39 <+bridge> [ddnet] My mod was a hell to port to DDNet, but that's not DDNet fault but my almost zero teeworlds/DDNet knowledge at all. I am ruby developer and had 0 C++ knowledge when I've started modding. It was just 4 months ago. 20:40 <+bridge> [ddnet] Well... my problems of porting were not about DDNet/teeworlds difference but about tons of complex logic in infClass (infection mod with classes) and yes, my inexperience. 20:41 <+bridge> [ddnet] you who developed the infclass? 20:42 <+bridge> [ddnet] No, infClass is really old mod. 20:42 <+bridge> [ddnet] It has tons of logic and classes and very complex comparable to CTF/DM or even DDNet itself. 20:42 <+bridge> [ddnet] It has tons of logic and classes and very complex compared to CTF/DM or even DDNet itself. 20:43 <+bridge> [ddnet] Many people made it in 6 years so a lot of game rules and code was accumulated. 20:43 <+bridge> [ddnet] breton, yavl, stitch... there are about ~20 people in credits 20:44 <+bridge> [ddnet] But then teeworlds has splitted to 0.6/0.7 and infClass began to die. Yavl tried to help situation porting infClassR (his variant) from 0.6 to 0.7 and mostly succeeded. 20:45 <+bridge> [ddnet] But then this community and playerbase splt got worse. Other mod owners never ported their mods to 0.6 and a tribe of "0.6 people" (aka "0.7 is a shit" tribe was created). 20:46 <+bridge> [ddnet] So 0.7 playerbase is still less. And yavl's infClassR after being ported to 0.7 started dying too. 20:46 <+bridge> [ddnet] Then I've came and ported it to DDNet codebase. After 4 months of fighting for live this mod is finally well alive. 20:46 <+bridge> [ddnet] And the main reason of success if 0.6, 0.7 and DDNet client compatibility. 20:46 <+bridge> [ddnet] And a great community support. 20:47 <+bridge> [ddnet] I'm creating a mod for 6.4, do you think I'd better do it using DDNet? 20:50 <+bridge> [ddnet] So, DDNet-Server and also Client are compatibel with 0.6 AND 0.7 protocol as well as the ddnet-server is compatibel with all maps? 20:51 <+bridge> [ddnet] @Spyry what mod and what is uour progress on that? 20:52 <+bridge> [ddnet] @stnwtr yes, but DDNet client is not compatible to 0.7 teeworlds vanilla servers. 20:53 <+bridge> [ddnet] yes, sure 20:53 <+bridge> [ddnet] @Pure_luck I'm making a city mod, it's in the beginning, I stopped now because you need to make the tile layers 20:54 <+bridge> [ddnet] Thanks @Pure_luck ! 21:00 <+bridge> [ddnet] And ddney server is not compatible with 0.7 maps. Use 0.6/ddnet format if you're not on 0.7 codebase. 21:00 <+bridge> [ddnet] And ddnet server is not compatible with 0.7 maps. Use 0.6/ddnet format if you're not on 0.7 codebase. 21:02 <+bridge> [ddnet] Also DDnet server will give 0.7 clients 0.7 map to make things work. 21:04 <+bridge> [ddnet] So I 0.6/ddnet is a primary format for DDNet server and it gives 0.6/ddnet clients this map natively. But there should also be maps07 folder for compatibility with 0.7 clients so they could take compatible version. 21:05 <+bridge> [ddnet] It's a bit complicated chunk of information for a starter but once it gets digested you will grasp it as something simple and logical. 21:05 <+bridge> [ddnet] @Spyry DDnet codebase is fitting overall for your mod. 21:07 <+bridge> [ddnet] If you're just cloning existing 0.7 if|city servers you could add your own 0.6 compatibility layer instead to make 0.7 server talk with 0.6 clients but this will require quite a lot low-level expertise and effort. 21:07 <+bridge> [ddnet] Why are there just a few maps in this directory? 21:07 <+bridge> [ddnet] So far 2 people done it: fokkonaut and noby. Both are experts in both teeworlds modding and C++ 21:08 <+bridge> [ddnet] @stnwtr you should add converting to your deployment pipeline. 21:08 <+bridge> [ddnet] Or do it manually before deploying maps alone. 21:08 <+bridge> [ddnet] With convert_07 script. 21:09 <+bridge> [ddnet] I mean here: https://github.com/ddnet/ddnet/tree/master/data/maps7 21:09 <+bridge> [ddnet] Why are there only a few= In maps are more than in maps7. What are this maps for? For the localhost server? 21:09 <+bridge> [ddnet] Sorry for so much, probably stupid questions .. I am pretty new :c 21:09 <+bridge> [ddnet] Cause there is no point in converting ctf and dm maps for a ddnet server 21:10 <+bridge> [ddnet] I am unsure why ctf and dm maps are even in maps/ folder in ddnet. 21:10 <+bridge> [ddnet] There are no gamemodes in DDNet 21:10 <+bridge> [ddnet] And this are just a few template maps for localhost server? 21:12 <+bridge> [ddnet] Yes those are just some sample ddnet maps and all vanilla 0.6 teeworlds maps. 21:12 <+bridge> [ddnet] Which I think should not be there. 21:13 <+bridge> [ddnet] As there is no ctf or dm gamemode implementation in DDNet server. Though it's not hard to mod DDnet to behave like that. 21:13 <+bridge> [ddnet] I have a lot of killing AND flag grabbing in my infNext mod. 21:14 <+bridge> [ddnet] So, they removed the default gamemodes from ddnet source? 21:14 <+bridge> [ddnet] Why would they? 21:14 <+bridge> [ddnet] Because it's just useless piece of code? 21:14 <+bridge> [ddnet] Cause their focus was on DDRace gamemode. 21:14 <+bridge> [ddnet] doesnt it have smth to with not having to download them on vanilla servers or is that in the appdata folder 21:14 <+bridge> [ddnet] And teeworlds teams was supporting vanilla modes. 21:15 <+bridge> [ddnet] And teeworlds team was supporting vanilla modes. 21:15 <+bridge> [ddnet] And teeworlds team was supporting vanilla mode. 21:16 <+bridge> [ddnet] CTF or DM modes logic is about 1% of all code. 21:16 <+bridge> [ddnet] And DDNet has about 30% more code than teeworlds to my estimations. 21:16 <+bridge> [ddnet] Sure, ddnet is way bigger than simple ctf 21:17 <+bridge> [ddnet] I've ported flag logic to DDnet in a couple of hours from 0.7 sources. 21:17 <+bridge> [ddnet] so it's not that hard to port the whole game probably? 21:17 <+bridge> [ddnet] could be a nice little exercise for beginning (with basic c/c++ knowledge) 21:17 <+bridge> [ddnet] It's not. Just nobody have reason to 21:18 <+bridge> [ddnet] Vanilla CTF are ok with 0.6 or 0.7 servers 21:18 <+bridge> [ddnet] Vanilla CTF and DM are ok with 0.6 or 0.7 servers 21:18 <+bridge> [ddnet] In fact there is some DDnet logic that you will turn off for the game to behave as teeworlds 21:18 <+bridge> [ddnet] But not too much and the process is mostly straightforward 21:20 <+bridge> [ddnet] Mostly related to taking damage instead of freezing 21:21 <+bridge> [ddnet] And commenting out "teams" and time scores. 21:21 <+bridge> [ddnet] And something else not very big, I don't remember now. 21:22 <+bridge> [ddnet] In fact FNG will be the first thing you will get trying to recreating CTF on DDnet platform as freeze effect will be so tempting to reuse :) 21:22 <+bridge> [ddnet] In fact FNG will be the first thing you will get trying to recreate CTF on DDnet platform as freeze effect will be so tempting to reuse :) 21:24 <+bridge> [ddnet] If you will port CTF or DM to DDNet it could also be the nicer repo to start DDNet modding than vanilla DDNet. I could contribute there too. 21:25 <+bridge> [ddnet] Are lasers and stuff like that changed globally and not per mod 21:26 <+bridge> [ddnet] There is no modes in DDnet. You will mod DDnet code directly. At first it's sounds intimidating but it's quite ok. 21:26 <+bridge> [ddnet] There are no modes in DDnet. You will mod DDnet code directly. At first it's sounds intimidating but it's quite ok. 21:26 <+bridge> [ddnet] ah okay 21:27 <+bridge> [ddnet] So you could add modes support to DDnet. But I would not recommend that for a beginner. 21:27 <+bridge> [ddnet] Just try to recreate DM instead. Then CTf if you fancy. 21:27 <+bridge> [ddnet] yeah sure, i want to get more familiar with the code first, thank you! 21:28 <+bridge> [ddnet] Np, I'd like to see more teeworlds and DDnet modders. 21:28 <+bridge> [ddnet] And to see DDnet platform to be widely adopted as a base for mods. 21:29 <+bridge> [ddnet] Most modders just abandoned their 0.6 projects and never updated to any other version. 21:31 <+bridge> [ddnet] And also recently new modders starting their mods on 0.7 codebase abandoning their projects fast as they could not get playerbase 21:32 <+bridge> [ddnet] My mod survives only because it has both player segments 21:33 <+bridge> [ddnet] And it will eventually "win" over 0.6 infClass and 0.7 infCroya servers even that many old players don't like some infNext novelties to infClass. 21:33 <+bridge> [ddnet] 🍿 21:34 <+bridge> [ddnet] I have 23 players top and 9 hours gameplay marathons recently and infClass survives mostly on regional servers like Persian and Chinese. 21:34 <+bridge> [ddnet] And mine is "winning" also by ping as most players are from Europe. 21:35 <+bridge> [ddnet] And because my mod is closed source sadly and it's not easy to clone 😅 21:36 <+bridge> [ddnet] nice nice 22:29 <+bridge> [ddnet] I keep getting this error `error C2338` with the Message `Windows headers require the default packing option. Changing this can lead to memory corruption. This diagnostic can be disabled by building with WINDOWS_IGNORE_PACKING_MISMATCH defined.` 22:29 <+bridge> [ddnet] I got Visual Studio 2019 Community installed and opened a fresh clone (recursive) with CLion (which uses the MSVC from Visual Studio) 22:29 <+bridge> [ddnet] This happens when I am trying to run the DDNet configuration but not for DDNet-Server 22:32 <+bridge> [ddnet] Why are you trying to run autoexec.cfg instead of autoexec_ddnet.cfg with appropriated DDNet commands? 22:33 <+bridge> [ddnet] Why are you trying to run DDNet-Server with autoexec.cfg instead of autoexec_ddnet.cfg with appropriated DDNet commands? 22:33 <+bridge> [ddnet] > This happens when I am trying to run the DDNet configuration but not for DDNet-Server 22:33 <+bridge> [ddnet] 22:33 <+bridge> [ddnet] Are you trying to run DDNet-Server with autoexec.cfg instead of autoexec_ddnet.cfg with appropriated DDNet commands? 22:33 <+bridge> [ddnet] Cannot help you much about error here, as I am using Linux + gcc + cmake + vscode. 22:34 <+bridge> [ddnet] I mean the Cmake run configuration 22:34 <+bridge> [ddnet] ah oka 22:34 <+bridge> [ddnet] ah okay 22:34 <+bridge> [ddnet] I use vscode with cmake plugin and it just worked from the start. 22:34 <+bridge> [ddnet] ill could try to use the WSL compiler 22:34 <+bridge> [ddnet] i could try to use the WSL compiler 23:09 <+bridge> [ddnet] @Pure_luck what version can i use ddnet to create my mod? 23:13 <+bridge> [ddnet] I have another great bug 23:13 <+bridge> [ddnet] If I click update, it just shuts down 23:14 <+bridge> [ddnet] I also get things like `[2020-11-20 22:13:31][console]: failed to chain 'cl_chat_tee'` 23:14 <+bridge> [ddnet] This is completely broken 😦 23:14 <+bridge> [ddnet] There is something very wrong with 15.2.2 23:20 <+bridge> [ddnet] @deen we really need to create and save debug info 23:32 <+bridge> [ddnet] @Learath2 isnt it just better to completly remove the autoupdater at this point 23:32 <+bridge> [ddnet] :monkalaugh: 23:32 <+bridge> [ddnet] latest is 15.2.3 btw 23:44 <+bridge> [ddnet] I tried it and autoupdater works for me on linux and windows 23:44 <+bridge> [ddnet] no it's not 23:48 <+bridge> [ddnet] It's completely broken for me, along with launching the game with double click 23:50 <+bridge> [ddnet] maybe an issue on your system? 23:55 <+bridge> [ddnet] I'm not quite sure what broke this badly