The usual, you can find the previous parts on my profile!
credit to morpekodacat for help with the coding!