What is the difference between Non-Player Characters (NPCs) and bots in video games?

The key distinction is that a Bot represents an automated player; an NPC, by contrast, isn't playing the game at all.

In general, an NPC is a part of the game; a placed object which is designed by the creator and exists to interact with the player. Examples would include vendors, quest givers, or enemies. In some games, (particularly RPG's), the term is also used to refer to characters under the control of, but not generated by the player. They are often distinguished by having distinct personalities and dialog, whereas a "Player Character" is meant as more of an extension of the player themselves. Think of the companion party members in the Mass Effect series for an example.

A Bot, by contrast, is essentially a player of the game controlled by a computer. This can be populated within a single instance, as a feature in some games (i.e. AI opponents in a normally multiplayer game), or, in some cases, actually represents a separate instance of the application running on a networked computer and being controlled by some manner of AI script (as is common in many MMO's, much to the dismay of the communities playing the game). The term 'Bot' is also often used to refer to software used to enhance or replace the skills of a human player of the game; for example, an 'Aim-Bot' that handles targeting, or a 'Farming Bot' in an MMO that performs tedious or menial tasks. Such bots are usually (though not always), considered cheating and a violation of the Terms of Service of the game in question.


The term "NPC" comes from tabletop role-playing games. In tabletop RPGs, one player is designated as a kind of referee (often called the "Game Master" generically, or "GM" for short, though many systems have their own names for this role). The GM's purpose is to direct events within the game world: in this sense, his or her role is not unlike that of the computer in a video game.

All of the other players (who are often just called "Players", even though technically the GM is a kind of player too; for this reason I will capitalize "Player" to refer specifically to non-GM players) control one or more characters in the game. These are called "Player Characters," or "PCs". Any character that isn't controlled by a Player -townsfolk, enemies, historical figures, allies of the PCs, and so on- falls under the GM's control, and these are called "Non-Player Characters." This last term is what "NPC" stands for.

Video games and bots blur the lines a little bit, because both NPCs and bots are AI-controlled in this context. The big difference comes back down to the question of whether the AI is acting as a Player, or as the GM: a bot plays the game, while an NPC presents the game (or some facet of it).

If you really want to blur the lines, consider fighting games, where a Player could choose to play as almost any of the characters (or sometimes any of them, even the boss). In this case, a given character might take on any of the roles: a PC when being controlled by a human, an NPC when being fought in a single-player campaign, or a bot when being fought in practice rounds or deathmatches. Thanks to mirror matches, it's even possible for a character to be in multiple roles at once.


In short, a Non-Player Character is a character that is a non-player. That is to say a character that isn't "playing" the game. So this usually accounts for game vendors, or story tellers etc. Characters in the game that help make the game what it is.

A bot is a character that plays the game, and is controlled by AI. These are other characters that do what you do in the game. This could be opponents or teammates in a shooting game, like squad members to make up for a lack of real players.