I have a secret.
But I’m going to tell you about it anyway.
I hate intra-party secrets.
I think a secret being held back from the rest of the party by a fellow PC should cause that PC to burn in the 18th pit of fire on the 147th layer of the Abyss while being stabbed with somewhat-dull pitchforks wielded by vrocks.
Phew. There. I said it. Secrets from fellow PCs suck. Big time.
So, how do we deal with them?
The GM Must Know Now
As soon as the campaign starts… Strike that… Before the campaign starts (as in, during session zero), the game master must know all character secrets. It is imperative to the story being told that the GM tailor hints and guidance on the plot line based on important character details. There are no more important character details than the secrets those characters are keeping. The secrets the players want to keep private from the other players are fine, but make sure the GM is in the know.
The Players Must Know Soon
While the GM has to know what’s what from the start, the players can come in on secrets a little later. Just a little later, though. The full nature of the secret needs to be revealed to the PCs before it affects the plot. This will prevent confusion and resentment on the part of your fellow players. Holding things too close the vest is okay for a while, but if you find yourself saying, “Oh. Yeah. By the way, the reason for XYZ is [insert secret here],” then you’ve waited too long to reveal your secret.
Of course, this will require some coordination with your GM. If they feel it’s time to trigger a secret for twisting or continuing the plot, then they need to loop you in on the decision. If they don’t, then they’re blindsiding you as much as the rest of the party. This is where you can drop ideas or hints to the GM during session zero (or early in the campaign) on when you want your secret to come forth to impact the plot.
Never Revealing Your Secret
A secret that is never revealed, doesn’t impact the plot. Or, if it does, it’ll impact the plot in a manner that is completely confusing to the rest of the group. They won’t know why the captain of the city watch has shown up to arrest the group for “harboring a fugitive” when the fugitive is one of their fellow players. At worst, this leads to a fight where the party injures/maims/kills some of the city watch. This will make them true fugitives from the law and on the run from the city and possibly the nation.
If the secret doesn’t come out ever, then it doesn’t impact the story being told by the group. This means the GM has not “invoked” the secret. This means the player has not played up their character’s secret. All-in-all, the secret should have never existed in the first place because it had zero impact. Any important detail drawn from a character’s backstory (secret or otherwise) should be part of the collaborative storytelling going on at the table or it’s a non-factor.
You can have a character secret that they don’t want the common populace of the world to know about, but the party should know. They are your lifelines. They have, at some point in the campaign, literally saved your character’s life. You have, most likely, literally saved their characters’ lives as well. These are deep stakes and should not be ignored.
In other words, keeping your character’s secrets from your fellow players is a poor choice that can either betray their trust in you or have zero impact to the game at all.