Code by @Virbius. (Took a tutorial by @griffpatch, so if you want to say, this entire project is by @griffpatch.)