Coded like, 96% of this myself, just because i didn't want to make a encoder/decoder because that's tedious