From Quake Wiki


"Goons with probes inserted into their pleasure centers; wired up so when they kill someone, they get a paroxysms of ecstasy. In essence, customized serial killers. Easy to kill, and they tote shotgun shells. It's like a little Christmas each time you kill one!"

Health 30
Gib threshold -35
Attacks Shotgun
Drop 5 shells
1st appearance e1m1
Game version Shareware
Death message Player was shot by a Grunt
† The data files for monsters that appear only in the registered version of Quake reside in pak1.pak rather than pak0.pak.

The Grunt is the first enemy you will encounter in Quake, alongside the Rottweiler. He moves fairly slowly, has particularly low health and packs a mere shotgun. Not only is his attack just a shotgun, it calls a FireBullets value of 4 rather than the players 6, and he also aims slightly behind the player. Despite these shortcomings, on death he will drop a backpack containing 5 shells, turning an ammunition profit for the accurate (or melee) player.

Grunts though easy, can pose quite a threat in large groups, which you see very little of in Quake itself, but is common in user made Base maps. Though inaccurate and weak, in groups the hitscan attack can catch a player off guard who is usually more concerned with the laser projectiles of the Enforcer.

The Grunt is one of a few Quake monsters who possesses more animation frames than the code makes use of. In this case, he has frames reloading his shotgun, which has been utilized by numerous mods where they keep track of how many rounds the grunt has fired, or to display a switching of weapons in that particular mod.


As one of the weakest enemies in Quake, Grunts do not pose any real threat to a player alone, but due to their hitscan attack, they can be a nuisance to players have not noticed the Grunt's presence. In groups, especially when scattered around an area and attacking from many angles at once, Grunts can slowly wear down the health of players who do not keep moving.

A good example of a stage where Grunts do actually cause quite a lot of trouble is e4m1, where the Grunts can easily snipe at the player from afar before the player has really had chance to notice them. This situation occurs quite frequently in custom maps, but less so in the stock Quake maps.

Grunts are extremely easy to deal with once the player is aware of them, with just about any weapon providing more than enough fire power to despatch them quickly. Grenades and rockets are great for taking down groups of Grunts, and also pack enough of a punch to take down any Enforcer unlucky enough to get caught in the blast.

Entity type point
Entity class monster
Dimensions 32 x 32 x 64
Quake-C soldier.qc
Precaches progs/soldier.mdl


Entity information[edit]

monster_army is the entity for placing Grunts in a level.


The Grunt is a monster entity normally associated with the Base themed setting although it has also been used in Quake to populate the early part of levels that the player has entered from a base themed level (see the start of e1m2 for an example of this).

Being a low health monster entity it's best usage is probably while the player still has minimal armor and weaponry which can allow for some overwhelming by sheer numbers in the harder skill settings.



targetname The targetname of the Grunt. When triggered, the Grunt will wake up if inactive.
target The targetname of the entity to be triggered when the Grunt dies.
killtarget The targetname of the entity to be removed when the Grunt dies.


The monster_army entity supports the following spawnflags:

Flag Common Name Description
1 Ambush The Grunt will not wake up from seeing other monsters wake up or hearing sounds.

It also supports the standard spawnflags for difficulty and deathmatch presence.

Flag Common Name Description
256 Not on Easy The Grunt will not spawn on Easy difficulty.
512 Not on Normal The Grunt will not spawn on Normal difficulty.
1024 Not on Hard The Grunt will not spawn on Hard difficulty.
2048 Not in Deathmatch The Grunt will not spawn in Deathmatch mode.


FGD Definition[edit]

This is the format used by TrenchBroom and Worldcraft. Note that the model(...) parameter is not supported by Worldcraft. This does not include the Monster base class definition, which is also required.

@PointClass base(Monster) size(-16 -16 -24, 16 16 40) model(":progs/solider.mdl")
    = monster_army : "Grunt" []

DEF Definition[edit]

This is the definition format used for most old Quake editors, including the original QuakeEd.

/*QUAKED monster_army (1 0 0) (-16 -16 -24) (16 16 40) Ambush