Ways to detect and punish idle players in PVP Games

PVP games rely on the fact that players will actually interact with the game and go against other players, however, you will always find some players hiding/camping or simply not playing which ruins the fun for other players in the match.

In my upcoming game, I reward players based on their performance in the round, where the player who has ranked #1 in the match earns the highest reward, and players placing ranks underneath get fewer rewards based on how far down their rank is. Making sure every active player gets a reward.

With that, I want to detect bad actors (AFK Players, Players that hide and generally not participate in the round) and punish them for such actions. Though I’m unsure of what would be the best way to do this and keeping it generalized so it would fit any game mode the game may have (so thinking of something with the core game mechanic).

Note: By “punish the player” I am not directly punishing them by making their experience bad on purpose, rather, for example, preventing them from being selected in an important role for game modes.

What are your thoughts on such systems?
Have you implemented something like this, or maybe know a game that does this in a decent manner?

1 Like

I think these systems are generally positive. It’s not to fun when you’re in the top 5 in a PVP game and one or more of the players are just afk. Kicking players after extended AFK-ness is alright, but generally just giving them warnings might get their attention.

1 Like

I don’t really know what your game is, so I can only make assumptions. But for general reference these are some ideas I have:

Honestly giving players rewards based on their performance is usually how I would deal with idle players. If they do nothing the whole round, they won’t get anything, or at least, nothing substantial. For the most part, you have got it right. You can also use their score, if there’s enough score determining factors, to determine whether or not they’re an active player. Often if they’re just AFK camping in a corner they won’t be making any or as much points. You can use this to detect whether or not a player might be AFK farming.

Another thing I would possibly do is potentially pull what Warframe did and just not reward them if they aren’t doing anything at all. This should outright persuade those AFK farmers to put in a decent amount of performance.

If you want to fill important roles that need an active player perhaps just track a certain activity/performance threshold and pick from that pool of players. If none are active then perhaps go further down from that and pick from a pool of everybody as a safety measure if it comes down to not being able to pick anybody. This should give priority to your active players.


That’s pretty interesting, I haven’t played Warframe before so I wasn’t aware of that!

After a lot of thought and discussion, I’ve come to a pretty solid solution, at least on paper… It probably needs balancing and adjustments though I can only find that out when put in use.

Previously I was trying to figure out a general solution that would fit the game’s core game-play idea, however due to the fact that the game can have a lot of different game modes, each having a different style mechanic it was pretty difficult to figure out a “one size fits all” solution.

Instead, I focused on creating solutions per game mode or per game mode type (as there could be a few game modes that share the same mechanic)

Ultimately, what I’m doing is only rewarding players based on performance, the better you do in the round, the better the reward you get at the end, however, it is critical that I identify those who don’t play or simply try and troll around and ruin other’s experience, to prevent them from having a chance to be put in an important role in the game (e.x, Juggernaut)

As mentioned above each game mode (type) has its own set of checks, though each one rates the player’s activity within the round based on several factors. If a player does a certain action that indicates they’re active they get +1 score, in total they can accumulate a certain amount of score points, though you need to have a minimum amount of points to be considered active.

Should you be considered inactive you will then receive +1 IdleRound score, or if you ARE active you will receive as normal, +1 Round score. Should the ratio between those two be bad then the game knows not to give you an important role, yet also giving you a chance to redeem yourself by playing more and getting a better ratio.

Now that’s cool n all, but this is only for the game logic, player’s will be unaware of all this. So another thing I needed to solve is,

“How can I demotivate players from becoming bad actors?”

Since I want the game to have a competitive nature I took that as an advantage and made a leaderboard for player scores. for every round you are active you earn +x points for that leaderboard, and for every round you AREN’T active you get deducted points (with a minimum of 0 points)

It’s been pretty fun to work out, and I have a lot more I can potentially do and play around with, though until the game is actually released I can’t get too crazy :sweat_smile: