projects
this is not a complete list, you can see my other projects on my GitHub.
BONEWORKS Mods

From the release of MelonLoader in 2020, I've spent many hours learning about C#, Unity, and internals of BONEWORKS.
In that time, I've made 21 fully released code mods, worked on mods with other people, as well as many other random mods that I either never released or only uploaded onto Discord for certain people.
BoneTome Archive (code mods only)
Thunderstore (code mods, maps, items, etc)
BoneTome Archive (code mods only)
Thunderstore (code mods, maps, items, etc)
BONELAB Mods

While I've spent much less time directly working on BONELAB mods, I've still spent a lot of time decompiling the game, figuring out internals and learning about the changes from BONEWORKS.
On top of that, I used it as a testing dummy for my work on LemonLoader.
I've also worked on a fork of Fusion, a multiplayer mod for BONELAB which added a secondary networking layer that communicated with a PC to send data over Steamworks
and fixed various issues which allowed people playing the game on Quest 2 to play multiplayer and with people on PC.
mod.io (maps, spawnables)
Thunderstore (code mods)
mod.io (maps, spawnables)
Thunderstore (code mods)
IEYTD bHaptics

In 2021, I worked with VR company bHaptics to bring unofficial support for their various haptics devices into I Expect You To Die.
This involved decompiling the game and figuring out what triggers what and injecting my own haptics code into it.
bHaptics Integration on GitHub
bHaptics Integration on GitHub
DawnVR

DawnVR is a MelonLoader mod for Life is Strange: Before the Storm (and Remastered!)
that gives the game full VR support. I turned the third person story game into a fully playable first person VR game with working motion controls
and many other features to make the mod as smooth as possible. This mod involved decompiling obfuscated assemblies and working with those until
I found unobfuscated assemblies which I then used to write various scripts to assist with working with those obfuscated assemblies.
DawnVR on GitHub
DawnVR on GitHub
BoneTome Archiver

This was a tool I wrote in a day in order to semi-automatically backup all public mods on the defunct modding website BoneTome.
The output of this was used to create the BoneTome Archive which was commonly downloaded from until the release of BONELAB.
BTArchiver on GitHub
The BoneTome Archive
BTArchiver on GitHub
The BoneTome Archive
LemonLoader

LemonLoader is a fork of MelonLoader originally made by SirCoolness, but after a while it stopped getting updates which led to me attempting to fix it.
During those attempts, I got it working and continued to make it more suitable for the average end user. It is now a commonly used tool by BONELAB players on Meta Quest.
I've made various improvements over the original fork, mainly being much more updated, supporting newer Unity versions, a rewritten installer with split APK support, improved patching methods, and more.
With the MelonLoader 0.6.0 update, which rewrote many parts of the mod loader and replaced the runtime with CoreCLR, I re-implemented Android support somewhat from scratch with the updated MelonLoader source code.
This involved a complete rewrite of the Android side of the bootstrap in the mod loader which was remade in Rust, rather than C++ like the original.
I also dealt with the upgrade to the CoreCLR runtime on Android, which involved dealing with many weird edge cases with the runtime and the Android environment.
In addition to the native side, I also had to add Android support to many portions of the C# side of the loader such as JNI and reading the APK asset manager, implenting ARM64 support into tooling used by the mod loader, and generally fixing many weird bugs with Android.
LemonLoader on GitHub
LemonLoader on GitHub
BlenderUMap

BlenderUMap was originally a Fortnite specific tool written by Amrsatrio in Java that could take the maps from the game and load them into Blender.
My version of BlenderUMap has been entirely rewritten in C# and is now using the CUE4Parse library which allows for a much larger supported version range compared to the original.
The output of the tool is often messy, but depending on the scenario, can be very useful.
BlenderUMap on GitHub
BlenderUMap on GitHub
MusicBee Plugins

Throughout my use of MusicBee, I've written or have modified a few plugins in order to improve my experience.
My currently released MusicBee plugins are mb_CopySpotify, which allows you to quickly copy the Spotify URL to a song in your library, assuming it's available on Spotify.
mb_ScrobbleItem, which allows you to add a single scrobble of a track (or a selection of tracks) to your Last.fm tracking, this plugin involved some decompiling of MusicBee's obfuscated code in order to reuse it's internal scrobbling code.
And lastly, my fork of mb_DiscordBee which is a plugin that interacts with Discord's Rich Presence API that I modded to show album art that is accessed via the Last.fm API to fix the broken method implemented by the original author.
MusicBee Plugins on GitHub
MusicBee Plugins on GitHub
trev.app

I am not a frontend developer or a web designer but I made this to learn more about web design and just generally see what I could put together.
The image used is the original version of the website, it has since been redesigned.
Unity Mesh Decombiner

Mesh Decombiner is an editor tool for the Unity game engine intended for use with ripped scenes from games, usually retrieved with other tools such as AssetRipper or UTinyRipper.
When exporting games, Unity will combine meshes into a single mesh to improve performance, however, it also can cause issues in ripped scene, such as being unable to bake lighting.
This tool was made to accurately split meshes into their original pieces, fixing baking and other issues.
Unity-MeshDecombiner on GitHub
Unity-MeshDecombiner on GitHub
MComp

MComp is a tool I wrote in C# for personal use which is designed to very quickly copy music files from a PC to an Android device.
It utilizes a custom dummy file system as the representation of both the PC and the Android device, allowing for very fast comparison and searching of files.
It also utilizes ADB for moving files and reading the file system of the Android device, as well as FFMPEG for the conversion of FLAC files to MP3 to conserve space.
MComp on GitHub
MComp on GitHub
Just Ads!

Just Ads! is a recreation of a fictional TV channel from the game Cyberpunk 2077, intended to only loop ads for fictional companies in that game's universe.
The videos were ripped from the game using the tool WolvenKit, then converted from their compressed format using RAD Video Tools. I also ripped the audio from the game files and added it to the videos using custom scripts.
As the original files are very compressed, I used Topaz Video AI with a Python script to mass-upscale them, as well as re-encode all the videos into WEBM with the VP9 codec.
With the videos together, I designed a front end based around Cyberpunk's UI, and recreated some elements in Figma, primarily the Just Ads! logo and the toggle buttons used in the Preferences tab.
I wrote a script that randomizes the order of videos and plays them in a loop, with the bumper/channel identifier playing every five ads, as it does in the original game.
Just Ads! on GitHub
Just Ads! (may display objectionable content due to the nature of the original media)
Just Ads! on GitHub
Just Ads! (may display objectionable content due to the nature of the original media)
fujsu

fujsu is a mod loader for the Unity game engine built in Rust. Unlike LemonLoader, fujsu uses native code injection to load mods into games, rather than using a Mono runtime, which allows for a much more stable and reliable modding experience.
This was created for my work with the YouTuber ProjectJamesify to allow for a smoother modding experience than LemonLoader could provide.
It uses a custom replacement for Unity's native loader, which allows for fujsu to load before Unity, allowing for a full assembly replacement rather than doing an awkward patch of the game's code.
It's designed around being used fully embedded into a game's APK, allowing the user to simply install a patched APK and have the mod loader and mods already installed.
fujsu on GitHub
fujsu on GitHub
DeezNET

DeezNET is a partial port of the Python library Deemix to C# for use in .NET applications.
It acts as a wrapper around the public and internal Deezer API.
It allows for developers to download music from Deezer into standard FLAC or MP3 files, as well as downloading metadata and album art.
It also has a parser for standard and short Deezer URLs which allows them to be read into a list of track IDs for easy downloading.
This was made for use in a project I was working on that required the use of Deemix, but I didn't want to use Python for it.
DeezNET on GitHub
DeezNET on NuGet
DeezNET on GitHub
DeezNET on NuGet