Reflecting on 2024

Spending too much free time reflecting on my life, now in blog form!

posted 2024-12-30

I did a lot of things this year. In 2023, I had 2,556 contributions on GitHub, and I’ve only slightly undershot that this year. Last year, I wanted to reflect on the projects I made each year, but never got around to it. This time, I’m finally sitting down and doing it!

January

I spent New Years Day working on helper scripts for ReGenny, a reverse engineering tool. I had to write a bit of C++ to add some features into the project. I don’t write C++ a lot, so I was really nervous about doing this, but it turned out okay. It was a bit of an omen writing C++ on the first day of the year, as I had to spend a lot of time touching C++ projects this year, and I really hate C++.

On the 9th, I made htmlua, a shitty way to make websites with Lua. This kind of thing is demonstrated casually by people on how to build DSLs in Lua/Kotlin/similar, but I turned it into an actual library with component support. It was pretty fun to work on, but nobody’s ever actually used it. I did get a spam PR for it once, though!

On the 10th, I made OfDungeonsDeep (which is now maintained by Khayle), which was the first spiteware of the year. Spiteware is defined as software written for the express purpose of spite. I don’t actually like FFXIV Deep Dungeon - I just did it because I was annoyed at the developer of the existing Deep Dungeon plugin’s decisions and bugs.

On the 17th, I made a save editor for Bomb Rush Cyberfunk, written in React. This wasn’t a very good project, but it served as a useful reference for the WEBFISHING save editor later in October. I ended up not really liking the choice of React for this project, since I modeled the save as a class, and data binding the class with reactivity was very annoying (I ended up solving it with jank force refresh hacks that I shouldn’t have done).

I also made a Mastodon client that uses ImGui the day after (goes to show how fast I bounce around projects). This project was really unfinished and quite bad, but I ended up taking the idea further for ImSky with Bluesky.

On the 25th, I made decky-totp, a simple plugin for Decky Loader for the Steam Deck. I wanted to show my TOTP codes for FFXIV without having to get my phone every time I started it on my Steam Deck. While I was making this, I got upset at several aspects of the Decky ecosystem (for example, the C backend was extremely weird and unneeded).

On the 27th, I made a first person mod for Bomb Rush Cyberfunk because someone asked for it. The implementation was very janky, but it worked, and it was quite funny to play with.

On the 28th, I published 0.3.0 for skindl, a downloader for Bomb Rush Cyberfunk character mods. I wrote this late December because I needed a project to get used to my new keyboard with, so it doesn’t count as “made”, but I wanted to include it anyway!

On the 31st, I made PoloTweaks, a collection of tweaks for Bomb Rush Cyberfunk. This never went anywhere, but I wish it did - there’s a lot of fun stuff there for extending it!

February

On the 4th, I published my first blog post of the year - Converting Minecraft maps to Half-Life 1. If you haven’t read that post, go do it now! It was a blast to work on. I forgot to ever upload the map anywhere, though… Oops!

On the 7th, I started work on my Bomb Rush Cyberfunk VR mod. Like my other mod, Slop Crew, this one had a lot of trouble with Thunderstore’s malware filters. Thankfully, I didn’t deal with those filters when making GDWeave in October. I ended up losing interest before getting it into a complete state, but it’s still there on Thunderstore if anyone wants to try it.

On the 19th, I started playing on a friend’s Minecraft server, so I wrote a Discord to Minecraft bridge for that server. This server ended up consuming a lot of my time (even visible on my GitHub graph!), and I ended up shifting gears from Bomb Rush Cyberfunk to Minecraft for a bit.

On the 23rd, I made enderdragon, a shitpost adding Ghidra into Minecraft - my third most starred repository as of writing, but it deserves none of those compared to the top two.

March

March was a chiller month for me, in comparison. On the 6th, I started an XMPP client, but it went nowhere as the protocol sucks to work on. I’d like to revisit it someday, but I’m not convinced Tauri is a good choice for it anymore.

On the 17th, I made Temporal Stasis, a FFXIV network proxy library. This project hasn’t been useful for a while, up until this month, where my friend Asriel forked it to scrape FFXIV datacenter travel information.

On the 18th, FFXIV removed 32-bit support, so I made a PR fixing XIVLauncher for it. This PR was very sloppy because I was very tired, so the comments are a bit embarrassing to look at. I also got my Framework Laptop that day, which I’ve loved since - even installing a new screen for it this Christmas!

Towards the end of the month, I wanted to add Flash games to FFXIV, but it went nowhere because I didn’t know what I was doing with wgpu. A feature request that would’ve saved this project is still open today…

April

For April Fools, I only really helped with the Dalamud team’s joke - turning plugin icons into horses. It just involved a lot of Photoshop.

On the 7th, I made up for my failed Flash game project by adding emulators into it instead. This code was only possible because of karashiiro’s Simulacrum serving as good reference.

On the 10th, I was working on a FFXIV wiki that was 100% generated through data, but it didn’t go anywhere. Probably would be easier with boilmaster now existing.

Late on the night of the 10th, I started work on an unnamed FFXIV datamining project with some friends, in preparation for the Dawntrail benchmark that would be releasing soon. If you’re one of the few that helped me with that: thanks! You guys are the best.

On the 20th, I made benchtweaks, porting the features of some plugins to the benchmark (like removing letterboxing and a simple file replacer). It’s written in Rust, and I hated working in it, because Rust can’t do offsets in structs properly.

On the 22nd, I made Magia, a C# library for game modding. This never really went anywhere, but I still want to pick it up and make it fast someday. Right now it can randomly access violation for reasons I don’t understand. Whoops!

On the 28th, I made GobboCam, which you can read about in this blog post. I’ve fallen behind on posting there in recent months…

May

On the 2nd, I finally published my blog post about my Framework Laptop. It was sitting in my repository for months collecting dust, and I forgot to publish it until I just saw it one day when cleaning up the blog.

On the 3rd, I made moondust, a simple application to strip Luau type hints. This isn’t a great solution for writing typed Lua, because Luau has some extra language changes, but it’s nice for quick stuff.

On the 14th, I started playing Rabbit and Steel. I traversed through GitHub to find a GameMaker modding toolkit that wasn’t bad, until I stumbled upon YYToolkit. YYToolkit is the only good GameMaker modding tool I’ve seen so far, because they actually understand modifying a singular data file is not a feasible way to make mods. I made some mods for it, but eventually abandoned it in favor of writing my own using Reloaded II, because I didn’t like C++. Nowadays, that’s maintained by some other people, who I have endless thanks for keeping it going.

I also found a bug in a Reloaded library and was continually amazed by how fast Sewer56 merges pull requests.

June

June was a not-so-busy month for me due to the release of FINAL FANTASY XIV: Dawntrail. To prepare for a lack of plugins, I made a packet archiver with the Chronofoil format using Temporal Stasis. That’s some absurdly long text for a link.

Most of this time was spent playing FFXIV or datamining it, so there’s not much to talk about here. The two-day maintenance really threw me off time wise…

The one thing of note I did work on is rewriting my plugin Linkpearl to be nicer. A pull request I merged for a rewrite really messed up the code quality, so I did it but better.

July

I spent most of the beginning of July updating FFXIV plugins. I also switched to Binary Ninja as my decompiler, and wrote a signature scanner and added support to our FFXIV reverse engineering database for it.

I got a new server, which I named “electrope” after the new FFXIV expansion, and set it up using Rocky Linux and Docker. I go into this setup a bit more in my home server blog post.

On the 20th, I made a FFXIV damage overlay using FFLogs’ DPS parser. This upset FFLogs, understandably, and I ended up shutting the project down soon later. It was really fun to work on, though, and I’m thankful that people liked it while it lasted.

I closed off the month by working on GameNetworkingSockets bindings for C#, which I never finished. Whoops!

August

In August, I wrote another blog post about the PS3. This is my favorite blog post that I wrote this year - if you haven’t seen it yet, go check it out! I ended up making some friends in the PS3 scene from it, which was nice.

Beyond that, not much happened, as I was more focused on my girlfriend visiting me this month. We did end up going to a King Gizzard & The Lizard Wizard concert, though!

September

The 1st was my birthday! I turned 18, which was weird to think about, given I’ve known a lot of my friends since I was a wee little teen. Most people know me as the youngest person in the relevant community, and so I gave them a bit of a heart attack by saying that I can [insert boring adult thing here]. My friends celebrated my birthday by playing TTT in Garry’s Mod.

On the 4th, I published my rewrite of Alpha, which was sitting unstaged since last Thanksgiving. I lost motivation to work on it, but I ended up finding it, which I’m happy about.

On the 18th, I started work on a personal desktop wallpaper program tool in the style of Wallpaper Engine, but never finished it. It had a lot of fun features like a media player, todo list viewer, calendar, and system usage graphs.

I got into a bit of a Satisfactory kick this month (with its 1.0 release), and made a mod for it to send statistics to Grafana. Someone ended up making a “better” version of this plugin, but it was still fun to work on, and I got to farm like 10 Reddit upvotes. While working on it, I had to debug an issue with the Satisfactory modding toolchain, which luckily involved C# (my favorite language). Did I say I hate writing C++ yet?

I reinstalled Windows this month, after several years of using the same Windows install, and ended up getting new drives. There’s a lot more I would’ve added to this post if I had all the source code to recount dates, but unfortunately they’re on hard drives that aren’t connected anymore, so it’s a bit of a pain.

On the 23rd, I redesigned my website (you’re probably reading this post on that design), and wrote a blog post as tradition.

October

October was my most active month by far. I’m not really sure why, but it sure was fun!

There’s so much action here that I won’t even bother dating it. I released not one but two major releases for my Discord client mod moonlight. This was a very nice speedup from the lack of updates over the month, and I now use moonlight on my main Discord client to force myself to fix things if they break.

I also made GDWeave - a modloader for Godot games - for WEBFISHING. I spent a lot of time in that community making mods and save editors and mod packagers and wikis and such. The game now sits on Thunderstore, where the moderators were very kind to me this time around.

I also found remote code execution in WEBFISHING (with the help of my friend Katie), which I had a blog post and everything written for, but scrapped it due to the developer’s request. I accidentally published a draft of this through my RSS feed, so if you got to read it, I hope you liked it (lol).

November

Continuing the WEBFISHING trend, I added support for GDWeave into r2modman. This was really fun to work on, and I have a lot of thanks for the developers of r2modman/Thunderstore for being so patient and helpful with me. Working on r2modman required me to touch ancient Node.js versions, so now I use Volta.

I wrapped up my hyperfocus on moonlight with RoboJules, a tool to review pull requests for moonlight extensions.

On the 16th, I made a pastebin but never did anything with it because I realized hosting pastebins on the internet without any access controls is kind of a bad idea.

On the 19th, I made a (really barebones) FFXIV server emulator in C#. This never went anywhere because of concerns matching retail, but it had a lot of cool features - including supporting multiple versions in one branch! I’d love to continue work on it someday, but server emulators are hard to work on and I don’t really want to work on it in general given it’s a bad idea to have stuff like that for the retail game client.

Towards the end of the month, I began work on reviving Twitch Plays FFXIV (that was me by the way), but I haven’t set it up fully yet. Maybe soon!

To close the month off, I made rogue, helper scripts for FFXIV in Binary Ninja that were much better than the original ClientStructs PR I made earlier this year.

December

I got a new home server, and expectedly, wrote a blog post about it. This project took up several weeks of my time, so it’s a good explanation of what I did during December.

I also spent Christmas at home with family, and got new monitors for my main computer. My only pet project this month has been Steam Timelines support for FFXIV, which is an excellent break from the chaos of October and November.

I spent the last week of the year getting into Old School RuneScape, for some reason. I completed every free to play quest!

For 2025

I want to do a lot more in 2025, and hopefully build more software that makes people happy. In 2023, my biggest project of the year was Slop Crew, and this year’s project was GDWeave. Maybe I can do something better for next year? In any case, this year was definitely worse than last year, but not by much.

People tell me my work ethic is a bit unusual, and I never really got it until after writing this blog post. Reflecting on the things I’ve done, it kind of demonstrates that I never really sit down and focus on something (haha ADHD go brrr), I just bounce between what makes me happy. Burnout doesn’t really seem to exist for me as much as breaks - after all, it’s been about three years of building software actively and I still love it. This’ll probably change when I get a job, because right now this is all hobby stuff.

Thanks to all my friends and family for supporting me this year and giving me so many opportunities. Thanks to everyone who donated to me this year on GitHub Sponsors. And, most of all, thank you for reading and caring about what I’ve been up to this year! I hope it’s been an interesting read seeing all I’ve done.