portfolio

These are some things I’ve done over the years. Still trying to figure out if they were contributions to society. Keep in mind I’ve done more than’s listed here - some projects I’ve done over the years are still a bit of a secret.

I spend most of my time on the Internet tinkering with software. I’ve worked with multiple programming languages (with TypeScript, C#, Rust, and Kotlin being my favorites). I believe in learning by doing, and am always ready to throw myself at a new problem to tackle. I’m always looking for new things to learn and new projects to build.

I’ve written a countless number of projects and services, from small command line scripts to full stack programs handling hundreds of concurrent users. I’m proficient in server administration, managing multiple Proxmox hypervisors tightly integrated with the rest of my infrastructure. I’m a huge modder of both software and games, and you can find me in several modding communities (FINAL FANTASY XIV, Minecraft, Bomb Rush Cyberfunk, Rabbit and Steel, WEBFISHING, and more).


GDWeave

dateOctober 2024
tagsc#, godot
linkGitHub

I made a mod loader for Godot games, specifically for the game WEBFISHING. What started as a single set of patches for the game evolved into a full mod loader with several community mods. GDWeave was made as a response to the lack of runtime hooking in Godot games. It currently targets one bytecode version but could be extended for multiple engine versions (e.g. Godot 4).

For the WEBFISHING community, I manage the mod loader, some of my own mods with my girlfriend, a save editor, and helped make a Thunderstore page.

Statisfactory

dateSeptember 2024
tagsc++, javascript
linkGitHub

A mod for Satisfactory that adds HTTP API stats to the game. This uses the newly added HTTP API to register custom endpoints, along with a scraper node that forwards that data to Prometheus, and then finally a Grafana server showing the metrics.

To make this mod, I had to enter and learn about the Satisfactory modding community.

ImSky

dateSeptember 2024
tagsc#, bluesky
linkGitHub

A Bluesky client made with Dear ImGui. This is one of the first ImGui-based UIs I have designed that behaves less like a set of debug windows and more like a functioning app. It is written in C#.

SPRXPatcher

dateAugust 2024
tagsc#, playstation
linkGitHub

A modern PlayStation 3 ELF patcher to load SPRX files. I made this after frustration at the existing tools that do similar things in the PlayStation 3 modding scene. Writing about this again would do it a disservice, so I suggest you read the README on the GitHub page and the matching blog post to learn more.

RNSReloaded

dateMay 2024
tagsc#
linkGitHub

A set of mods for Rabbit and Steel with Reloaded II. It is a port of the old C++ projects RNSModding and Bouny. I wrote a library for interacting with GameMaker, as well as scripts for analyzing the game in IDA and Ghidra.

While in the process of making this, I found two issues in various Reloaded codebases and upstreamed fixes for them.

benchtweaks

dateApril 2024
tagsrust, ffxiv
linkGitHub

A DLL injected into the FINAL FANTASY XIV: Dawntrail benchmark that adjusts various things. I made it primarily because nobody else was looking into modding the benchmark.

Temporal Stasis

dateMarch 2024
tagsc#, networking, ffxiv
linkGitHub

A network proxy library for FINAL FANTASY XIV. Note that this isn’t any regular network proxy, as it can be scripted to record/modify/drop/replay packets, along with working on a vanilla game client with zero modifications. It can automatically decrypt and re-encrypt the lobby server traffic, as well as decompress and recompress game server traffic.

Ketamine Keep

dateFebruary 2024
tagsrust, python, c#, minecraft
linkGitHub

A set of tools I wrote to convert an old Minecraft world into a playable Half-Life 1 deathmatch map for my girlfriend’s birthday. It parses Litematica schematics and outputs a .vmf to be compiled. It required a lot of manual touchups later, but the majority of the world was automatically exported and optimized. While the code is very special cased and not ready for anyone else to use, it is still available on GitHub.

There is a blog post available about how I made this here.

htmlua

dateJanuary 2024
tagslua, web
linkGitHub

A small set of functions to convert Lua tables into HTML. It functions by having component functions return strings and collapsing tables of strings into a single string to return to the web server. It’s not perfect (especially with escaping data), but it was a small fun idea that gave me more reason to write Lua.

skindl

dateDecember 2023
tagsrust, brc
linkGitHub

An automatic one-click downloader for custom Bomb Rush Cyberfunk characters from GameBanana. It’s written in Rust using egui and is probably my best example of a small one-file utility. It was also the first project I ever wrote using my split keyboard. In order to make it, I had to learn the (not well documented) GameBanana APIs and handle multi-threaded UI with egui.

eightyeightthirtyone

dateDecember 2023
tagstypescript, rust, react
linkWebsite, GitHub

A distributed web scraper crawling the Internet for 88x31 badges, built with a few friends. I started the project and wrote most of the code. There are three components: a website rendering a force directed graph, a scraper that fetches websites and parses their HTML, and a server that manages the scrapers with a Redis database and exports a graph for the website.

moonlight

dateDecember 2023
tagstypescript, discord
linkWebsite

A Discord client mod I developed with my friends Cynosphere and adryd. I wrote most of the project structure, extension loading systems, the installer, the official extension repository, and GitHub Actions CI.

goalnet

dateSeptember 2023
tagsrust, c#
linkGitHub

is a wrapper around dll-syringe and netcorehost to allow easy .NET Core DLL injection into a process. It allows you to make a single config file describing your project & process, launch goalnet, and load your code into it.

bottomlesspit

dateSeptember 2023
tagstypescript
linkGitHub

A TODO list manager for Obsidian. I wrote it after being unsatisfied with my friend’s similar project and wanting to make my own. It hooks into your todo list and allows you to configure priority, due date, etc.

Slop Crew

dateAugust 2023
tagsc#, unity, networking, brc
linkWebsite

I made a multiplayer mod for Bomb Rush Cyberfunk. It hit over 10,000 downloads in just about a week. The game is made using Unity with the Mono scripting backend, so the mod is a BepInEx plugin that talks to a server and spawns player objects accordingly. The entire project is FOSS and there have been several contributors to it.

scraft

dateJuly 2023
tagsjava, kotlin, minecraft
linkGitHub

I was fascinated by the game Screeps (where the concept is to program bots and automate a world you can’t interact with directly) and wanted to make my own for Minecraft. I teamed up with a friend from Server Scanning Inc to modify Minecraft’s login flow to make a server only inhabited by bots. Authentication works by modifying the hostname you’re using to include an API key. While the project lost interest, it turns out other people continued to play on it.

blockbuild

dateJune 2023
tagsbash, java, minecraft
linkGitHub

blockbuild is a CI/CD system powered by GitHub Actions to automatically build and deploy Minecraft mods. Following my minor participation in decompiling the fractureiser malware, I wanted to find a way to host Minecraft mods built from source that can also be verified that they were not tampered with.

A GitHub Actions workflow calls a shell script which builds plugins and deploys it to GitHub Pages. Pages was picked over Actions artifacts because artifacts require an account to download (and cannot be linked to directly without an external service). The deployed website contains both the raw files and a Maven repository. These mods are checksummed and signed with two PGP keys - one proving the mods came from a build system under my control, and one proving the mods came directly from GitHub Actions.

The chain of trust is based off the fact that the output information can be cross referenced in the workflow logs. Tampering these logs would require either modifying the blockbuild source code (which would be visible), or an attack from GitHub itself. This means as long as you trust the source code of blockbuild/the built mods, you only have to trust GitHub to verify these mods are safe.

Gluestick

dateApril 2023
tagsweb, next.js, typescript
linkSource

Gluestick is a web app that uses Discord and GitHub OAuth to automatically create and manage accounts on NotNet’s LDAP server. It is written entirely in TypeScript using Next.js, and integrates with LLDAP’s API (with Tailscale & Migadu integration planned).

Gluestick was written over the course of a few weeks with Skip. I primarily led the backend code and authentication flow, while Skip designed the frontend.

Alpha

dateApril 2023
tagsc#, ffxiv
linkGitHub

Alpha is a GUI program for FINAL FANTASY XIV modding, datamining, and reverse engineering. It is designed to replace Godbert and FFXIV Explorer in my workflow.

Xande

dateApril 2023
tagsc#, ffxiv, dalamud
linkGitHub

Xande is a library for FINAL FANTASY XIV plugins that enables model and skeleton imports and exports. I no longer am involved with it, but I wrote most of the (now rewritten) early codebase.

PetoriaGPT

dateMarch 2023
tagspython, machine learning

Me and Luna trained GPT-J with messages from my Discord server. I learned a lot about how PyTorch functions, and more effeciently finetuning language models.

This expanded into the NotNet Machine Learning Laboratory, a server with an RTX 3060 in it specifically designed for making fun stuff.

There’s a blogpost about this here.

Linkpearl

dateMarch 2023
tagsc#, ffxiv, dalamud
linkGitHub

Linkpearl uses the Dalamud plugin API in FINAL FANTASY XIV to have Mumble positional audio in game.

GeezShade & DeezShade

dateFebruary 2023
tagsrust, c#, ffxiv
linkGeezShade, DeezShade

GeezShade and DeezShade were tools to download files for the ReShade fork known as GShade. This ended up spiralling into a petty fight that ended up with GShade implementing malware into its installer to spite me. GeezShade worked by fetching the URLs from the GitHub CDN, and DeezShade worked by using C# reflection to call the installer code. I also made about $200 in donations from my development of these two tools.

There are two blog posts here and here.

hugehugemassive

dateFebruary 2023
tagsrust, sysadmin
linkGitHub, Example usage

hugehugemassive is a Rust library to spin up and down servers using the Hetzner Cloud API. It was inspired by previous adventures with a friend group with a similar script known as “bigbiglarge”, written in Python.

bigcheese

dateJanuary 2023
tagsjavascript, node.js, python, ffxiv, discord
linkGitHub

The Big Cheese is a Discord bot for FINAL FANTASY XIV reverse engineers. It is connected to a Ghidra instance and has commands for decompiling functions without needing to open a decompiler. The bot is written in Node.js and shells out to Ghidra to run headless scripts.

Plogon.com

dateJanuary 2023
tagsweb, javascript, node.js
linkWebsite, GitHub

Plogon.com is an interactive website for when FINAL FANTASY XIV is under maintenance. It features lo-fi music with animated backgrounds, but the main gimmick is a synchronized “horse button” that displays emojis on every client’s screen.

It was written in vanilla HTML with a Node.js backend. At its peak, it sustained over 1000 WebSocket connections at once on a home server.

rockstar

dateDecember 2022
tagsrust, lua
linkGitHub

rockstar is a lua script evaluator written in Rust meant to provide helpful APIs for script automation, similar to Hammerspoon for macOS.

ftpfantasy

dateDecember 2022
tagsrust, ffxiv
linkGitHub

ftpfantasy is an FTP server written in Rust that provides access to the FINAL FANTASY XIV client filesystem. It uses the libunftp, vfs, and ironworks crates, along with ResLogger2, in order to build the filesystem.

Heliosphere

dateNovember 2022
tagsweb, javascript, react, svelte, ffxiv
linkWebsite

I worked together with Anna to build Heliosphere, a modding site for FINAL FANTASY XIV. I originally was working on the frontend, but I burned out and we rewrote it from React into Svelte. I am no longer involved with the project.

loremipsum

dateOctober 2022
tagsrust, minecraft
linkGitHub

loremipsum is a distributed system for finding and monitoring Minecraft servers. It takes in a list of IP addresses and periodically scans them.

loggy

dateAugust 2022
tagsweb, javascript, react, ffxiv
linkWebsite, GitHub

A log viewer for people providing support in the XIVLauncher & Dalamud Discord server. It parses zip files clientside and displays troubleshooting info extracted from log lines.

ReSanctuary

dateAugust 2022
tagsc#, ffxiv, dalamud
linkGitHub

After the release of Island Sanctuary in FINAL FANTASY XIV, I built a Dalamud plugin to improve the user experience. It contains multiple features like showing where to gather items, a to-do list, showing the required items to craft materials, all without having to open more UI windows. Because it uses ImGui, you can drag it off screen if you have multiple monitors.

packy

dateAugust 2022
tagsjava, minecraft
linkGitHub, Modrinth

Packy is a Minecraft mod that I submitted for ModFest: Singularity. It lets you store items in your ender chest through a backpack.

tistow

dateJuly 2022
tagsrust, windows
linkGitHub

tistow is a PowerToys Run/macos Spotlight/Alfred/Wox/ueli clone written in Rust, because I was unhappy with the options I had on Windows. It uses egui for the UI.

Plogon

dateJune 2022
tagsc#, docker, ffxiv, dalamud
linkGitHub

I helped build Plogon, the CI/CD system for Dalamud plugins. Mainly, I helped figure out GitHub Actions.

It powers all main repository plugins for Dalamud, providing plugins to a userbase of over 100,000 people (count sourced from Discord server as of May 2024).

Parachute

dateDecember 2021
tagsjava, minecraft
linkGitHub, Modrinth

Parachute is a quality of life Minecraft mod full of small client tweaks. After starting development in 2021, we rewrote and open sourced it in December, and worked on it throughout 2022.