I think it'd be nice to make role-constraints based off the spawning of other roles customizable. The only examples I can think of to describe this is the fact Mason Leader cannot spawn unless there is a citizen or cult in the save already. What I'm suggesting is the ability to control things like this.
This would be good for ensuring, if there are doctors in my save, that no bodyguards will spawn. Or ensuring that if a jailor spawns a kidnapper spawns too to balance out the jailor.
I'm not 100% sure how this would look in the custom game setup interface, but what I imagined was something like 2 drop down boxes appearing below every role when it is clicked in the custom game setup interface. And from these drop down boxes roles can be selected to guarantee that if X role spawns, Y role must spawn too. Or that if X role can spawn, Y role cannot.
Something like this:
__________________________________________________ __________________________________________________
Sheriff
Randomizer: 0-----------10
Description: -----------------------------------------------------------
-----------------------------------------------------------------------
Detects mafia/triad: on/off
Detects arsonists: on/off
___________
[____framer__] - Guaranteed if this role spawns
___________
[__sheriff____] - Excluded if this role spawns
__________________________________________________ __________________________________________________
Oh, and another thing, this would stop certain role duplication problems too. As shown in the example if you only want 1 sheriff / 1 sheriff spawning randomly, then that is possible to do with this system. But stopping role dupes should be used sparingly as it limits potential false claims that can be made.
It would make it much easier to balance saves with a lot of random-ness in them, too. e.g. if I add 3 town protectives I can be confident they won't all end up being escorts or something silly. Or if you wanted to stop double jailor-opness but still have the possibility of 1 jailor and another town killing safely.
You could add these settings into the rolecard too, so it could allow for much more clever deduction in-game e.g. "I know doctors and BGs can't coincide in this save. So considering X doctor died 3 days ago, Y's BG claim must be false. But I know jester must spawn with disguisers. I know there is a disguiser in this game because 2 days ago a disguiser triggered his ability on a night mafia were shooting too. So even though I know Y's BG claim is false, I must be wary of jesters."
This would have a lot of possibilities, but I imagine it would be a nightmare to implement.
EDIT: Some people seem to think that using this confirms the existence / lack of existence of some roles immediately. Not necessarily. This has been talked about to greater detail below. But basically, the easiest way to explain this effect is if a randomly spawning cult forces a vigilante to spawn, the vigilante may not necessarily know about the cult, but the cult knows about the vigilante.
EDIT 2: I've made a change to this system so that it only applies to roles that existed as a result of randoms. In the example above, if your save has forced a sheriff in, and the spawning of sheriffs forces the existence of framers, the forced-framer will only trigger if a second sheriff spawns in randomly. The first sheriff that is forced in will not force a framer too, because the system only applies to roles that exist as of a result of randoms. This also means in the example above a second sheriff CAN spawn but no more than 2. because one spawned deliberately and only one can spawn randomly.