Factions are easy to make, you can make NPCS not attack certain players depending on their factions, but you can't stop PLAYERS from attacking other players depending on their factions.
Basically, you can with NPCS, you can't with PLAYERS.
Maybe someone else has an idea but that's my reasoning, good luck!