Implement/custom logic

I will update the wiki with these changes. I forgot to add the new server files to the .gitignore so this diff is too large to review. Merging.