Team Fortress 2

Team Fortress 2

101 ratings
Attributes for MvM Popfile Writers
By Lamiiku
THIS GUIDE IS OUT OF DATE. It is useful for basic use but there may be attributes that don't work properly after the Jungle Inferno update and I'm sure there's plenty of good ones I have missed. Sadly I do not have time nor motivation to update this guide. Please use it as orientation for the most basic attributes.

This guide will detail many of the weapon and character Attributes that can be used by MvM template and mission writers. This is not a guide for learning to write popfiles, and assumes the reader has a basic understanding of the ItemAttribute and CharacterAttribute systems within popfiles.

(This guide has not yet been updated for the Jungle Inferno update. The attributes mentioned here relating to flamethrowers may not work.)
   
Award
Favorite
Favorited
Unfavorite
Introduction
This guide is specifically intended for popfile writers. It does not bother to list the Attribute ID number, only the name of the Attributes in question as those are used in popfiles. Plugins such as TF2Items use the Attribute ID number. As such this guide will be of limited use to someone seeking out a broader understanding of TF2's Attribute system for other purposes. I intentionally ignored a large number of Attributes that are useless for MvM bots, aren't useful in this context, or are redundant to existing attributes. If you would like a particular Attribute to be mentioned in the guide, feel free to ask in the comments!

Attributes such as damage bonus / damage penalty are both listed since most attributes will be displayed on the item card in the Deathcam. There is no mechanical issue with just using one of these attributes; you could simply set damage bonus to a reverse value and achieve the same effect as using damage penalty. This can mess with the stats listed on the item card and lead to confusion among players concerning the bot's capabilities. You are encouraged to use the appropriate attribute to avoid this issue. That being said, if the only attribute referencing the intended effect is the opposite of what you want, feel free to use it in reverse.

Each section of this guide will detail Attributes pertaining to a certain subset of weaponry. Several sections will be dedicated to class-restricted Attributes; for example, Attributes that can only be applied to Heavy primary weapons. Many Attributes will have notes included describing their function, as well as any special notes pertaining usage or restrictions. Special attention will be given to Attributes that are known to cause crashes or performance issues under certain circumstances. Attributes that are non-functional or functionally useless in MvM will be ignored.

This guide borrows heavily from the TF2 Wiki page about Item Attributes.
https://wiki.teamfortress.com/wiki/List_of_item_attributes
All-Class Attributes
These Attributes can be used by a wide variety of classes and weaponry. If an Attribute doesn't work on a certain weapon type, it will be noted.

damage bonus / damage penalty
percentage

clip size bonus / clip size penalty
percentage
Many weapon types, such as Miniguns, Flamethowers, Sniper Rifles, and Melee weapons cannot use this.

clip size upgrade atomic
additive
An alternative to "clip size bonus / clip size penalty". Rather than being a percentage, this attribute will additively change clip size. For a standard Rocket Launcher, "clip size bonus" 2 and "clip size upgrade atomic" 4 would have the same effect.

fire rate bonus / fire rate penalty
inverted percentage
This attribute will not affect the function of Flamethrowers. It is still useful even with single-shot weapons such as Flare Guns and Sniper Rifles, as it affects the speed of the firing animation. In other words, fire rate changes don't affect the time between each projectile fired, but the time in which the bot is in a state of "firing" the weapon.



It's a good idea to run an occasional sanity check on fire rate.

faster reload rate
inverted percentage
Flamethrowers, Miniguns, and Melee weapons cannot be reloaded.

heal on hit for rapidfire
additive
Grants health regain on hit.

crit vs burning players / minicrit vs burning player / crit vs stunned players / crit vs wet players
additive

damage bonus vs burning / dmg penalty vs nonburning
percentage

dmg bonus vs buildings
percentage
Really good if you want to favor/punish Engineer players.

dmg penalty vs players
percentage
Unlike most other damage modifiers, this attibute will modify damage done by the Flying Guillotine, the Sandman's Baseball, and DoT effects such as Bleeding.

dmg penalty vs nonstunned
percentage

critboost on kill / minicritboost on kill
additive
The number you plug in determines how many seconds of damage boost the bot will receive.

backstab shield
additive
Grants the user immunity to the specified number of backstab attacks. Once depleted, the item shatters and is discarded by the bot.

mod minicrit airborne
additive
"Mini-crits targets launched airborne by explosions, grapple hooks or enemy attacks"

weapon spread bonus / spread penalty
inverted percentage / percentage
Affects the accuracy of hitscan weapons.

projectile spread angle penalty
additive
Used for Rocket Launchers, Grenade Launchers, and Stickybomb Launchers. Inflicts the weapon with the "degrees random projectile deviation" of the Beggar's Bazooka.

panic_attack_negative
inverted percentage
Weapon accuracy is reduced as the bot loses health. Has no positive counterpart; to increase accuracy as health is lost simply set this to a decimal value.

turn to gold / ragdolls become ash / ragdolls plasma effect
additive
These attributes affect the remains of a bot's victims.

bominomicon effect on death
additive

bullets per shot bonus
additive
Used for Scatterguns and Shotguns to increase their pellet count.

deploy time decreased / deploy time increased / single wep deploy time decreased
inverted percentage / percentage
Attributes related to weapon switch speed.

minicrits become crits
additive

heal on kill
additive
Specify how much health the bot gets back on kill. This Attribute cannot be used in reverse; you can't set a negative value and cause the bot to lose health on kill. The game engine will simply treat it as a positive value.

restore health on kill
additive
Rather than the "heal on kill" method of specifying a set health regain, this Attribute grants the bot a percentage of its health on kill. Unlike heal on kill, this attribute CAN overheal. This Attribute does not work as a decimal or negative value.

speed_boost_on_kill / speed_boost_on_hit
additive

apply z velocity on damage / apply look velocity on damage
Additive
Forcefully chucks the victim on hit.

boots falling stomp
additive
Okay, I haven't tested this one, but it'd be great if it works.

melee bounds multiplier / melee range multiplier
percentage
Increases how far away a melee weapon can hit an enemy, and how wide the weapon's hit detection range is.

projectile penetration
additive
Of limited utility since there are only a few players to penetrate, but it is functional.

effect bar recharge rate increased
percentage
Affects the recharge rate for Mad Milk and Jarate.

crit forces victim to laugh / crit does no damage
additive
Attributes from the Holiday Punch.

damage all connected
additive
A nasty attribute pulled from the Third Degree. Also allows status effects such as bleeding and uber drain to be applied. Good for busting a Medic-heavy meta.

subtract victim medigun charge on hit
additive
Removes a percentage of a Medic's Ubercharge when they are struck.

energy weapon penetration
additive
This not only allows projectile penetration for hitscan weapons, but also grants bullets the ability to pierce the Medic's Projectile Shield.

energy weapon no deflect
additive

mod stun wait high airborne
additive
Hitting an enemy above their belt while they're airborne will stun them. Of limited utility, but can be very effective when paired with attributes that can launch players into the air.

attack projectiles
additive
This attribute enables the bullet weapons the projectile destruction upgrade.

lunchbox adds minicrits
additive
This attribute is very useful. It triggers the set_weapon_mode attribute, which can drastically change how a weapon works. It is used by a number of weapons in-game to change their function from the typical function of that weapon type. For example, it is used by Crit-a-Cola to induce its mini-crit function and the Phlogistonator to change its particle type. Documentation of different weapon modes can be found here, thanks to sigsegv:
https://gist.github.com/sigsegv-mvm/f72e3047c58dc2674493

override projectile type
additive
Plugging in a number will change the type of projectile the weapon fires. A list of projectile types can be found here:
https://forums.alliedmods.net/showthread.php?t=285982
Note that projectiles may fail to function properly if put on a weapon type they aren't normally assigned to.

custom projectile model
additive (really it's a string attribute)
This attribute will change the projectile model on an array of non-hitscan weapons such as Grenade Launchers and Stickybomb Launchers. This will not work on Rocket Launchers... :( An example:

ItemName "tf_weapon_grenadelauncher"
"custom projectile model" "models/weapons/w_models/w_flaregun_shell.mdl"


IMPORTANT NOTE: a vast number of models in the game will cause the server to crash if you use them. Any weapon w_models, projectile models, human/robot player models, and the MvM tank model are fair game. It's safe to assume that if a model is a prop anywhere in the game, it WILL crash the server. Unless you want it to become a total clusterfu*k/crashed server, you're best off sticking to weapon projectile models.







Character Attributes
There are a number of Attributes that work best when assigned as CharacterAttributes. While Attributes such as health regen or damage vulnerability CAN be nailed to a weapon, it's better to leave those in CharacterAttributes for the sake of organization. Delineating what is a function of a weapon and what is a funciton of the bot itself can help you keep your ideas straight. It also gives you a way to keep your list of Attributes for more complex bots from becoming a wall of text.

fire retardant
additive

health regen
additive

dmg taken from <source> reduced/increased:
bullets
blast
fire
crit
melee
ranged (increased only)
dmg taken increased (global damage increase)

percentage/inverted percentage



We might not have Melee Damage Resistance, but at least Robots don't have Bread Resistance.

health from healers increased / health from healers reduced / reduced_healing_from_medics / healing received bonus / healing received penalty
percentage
Health from healers will affect Medic healing and Mad Milk health regain. Healing from Medics only affects healing from Medics. Healing received is universal, though slightly redundant in MvM since bots cannot use health packs.

move speed bonus
percentage



These Heavies will stare at you judgmentally until you give them a move speed bonus.

increased jump height
percentage

gesture speed increased
percentage
Increases taunt speed.

damage force reduction
percentage
Decreases push force form taking damage.

airblast vulnerability multiplier
percentage
Changes how much a bot is affected by a Pyro's Airblast. Setting this to a decimal value will decrease the effect Airblast has on a bot.

override footstep sound set
additive
Used by Giant Robots to determine the set of footstep sounds they use.

cannot be backstabbed
additive
Used by Sentry Busters. Use wisely since this direclty hinders a Spy player's ability to harm the bot.

player skin override
additive
Enables zombie skins when Halloween/Full Moon is on.

scale / head scale / hand scale / torso scale
percentage
Change the size of the bot and various body parts.

rage giving scale
percentage
Changes how much Soldier/Heavy rage a player will earn by damaging the bot. Many bosses have this set to a decimal value to reduce how often players can use buffs and special attacks against them.



It's a bit less indimidating when you realize that it can't move.
Status Effects
Attributes that inflict some sort of effect other than direct damage on hit: Status Effects, DoT, and Debuffs.

Set DamageType Ignite
additive
Turning this on will enable the standard Afterburn damage and time.

weapon burn dmg increased / weapon burn dmg reduced / weapon burn time increased / weapon burn time reduced
percentage
Affects any weapons that natively induce burn damage, as well as any forced to do so via Set DamageType Ignite.

slow enemy on hit
additive

applies snare effect
percentage

mark for death
additive
Marks a target for death for a specified number of seconds. Target takes mini-crit damage from all sources while debuff is active.

jarate backstabber
additive
A really good way to piss of Spy players.

damage causes airblast
additive
Can be modified with "airblast vertical pushback scale" to increase the potency of the effect.
Scout
Most attributes related to the Sandman and Wrap Assassin don't work on other weapons.

scattergun has knockback
additive
Force 'a Nature's signature effect.

scattergun knockback mult
percentage
Soldier and Demo
There are several Attributes that work exclusively or almost exclusively for Soldier and Demo weapons.

projectile speed increased / projectile speed decreased / blast radius increased / blast radius decreased
percentage
Used with Rocket Launchers, Grenade Launchers, and Stickybomb Launchers. Cannot be used by hitscan weapons (bullets and melee weapons) or Flare Guns.
Be careful not to slow down the Projectile Speed on Rocket Launchers too much. Doing so could flood the server with rockets and cause it to crash when it hits its edict limit.



Let this be a warning to moderate how many rockets you have flying around at once.

no self blast dmg / blast dmg to self increased
additive/percentage

use large smoke explosion
additive
Sentry Buster explosion effect. Be careful with this one, it can severely impact framerate.



mp_decimateplayerframerate 1
Soldier
mod shovel damage boost / mod shovel speed boost
additive
The Equalizer and Escape Plan effects. Only works for Soldier melee weapons.

rocket jump damage reduction
percentage
Gunboats effect.

rocket specialist
additive
The Rocket Specialist upgrade. This upgrade can be assigned to wrenches and is fully functional on Sentry Rockets (kudos again to sigsegv for figuring that out)

health on radius damage
additive
Variable health regen mechanic of the Black Box.
Demo
max pipebombs increased / max pipebombs decreased
additive
Reducing this number can make Stickybomb Launchers more effective for MvM bots. They don't know to set the Stickies off, so they just fire continuously. Reducing their number means they'll detonate sooner once the bot reaches the maximum number allowed.

sticky air burst mode
additive
Loch 'n Load's penalty that causes grenades to shatter harmlessly on surfaces.

charge impact damage increased / charge recharge rate increased / full charge turn control /attack not cancel charge
percentage/percentage/additive
Tweaking Demoman shield function.

grenade not explode on impact / cannonball push back
additive
Loose Cannon attributes.

grenade damage reduction on world contact
percentage
Changes the damage a grenade does once it hits the ground.

grenade no bounce
additive
Iron Bomber "grenades don't roll around" function.

grenade detonation damage penalty
percentage
"damage on grenades that explode on timer"

fuse bonus
percentage
Changes fuse time on grenades.
Pyro
flame size bonus / flame size penalty / flame life bonus / flame life penalty
percentage
Changes the size of / distance covered by flame particles. These can drastically impact the Flamethrower's ability to hit an enemy. The visual effects of the Flamethrower will NOT change to reflect the tweaked particles. These attributes are best used when messing with the flamethrower particles themselves, whether by using set_weapon_mode (via "lunchbox adds minicrits") or changing "hand scale" to change the visual effects of the flamethrower. You can use tf_debug_flamethrower to see the changes you're making to the flame particles and adjust them accordingly.



A normal Flamethrower.



A Flamethrower using the Giant Flame effect via "lunchbox adds minicrits" 2. Setting "flame life bonus" to about 1.5 should suffice to match the particle effect. The actual flame particles will travel a bit higher than the particle effect, but it works well enough to pass a "this doesn't look too buggy, go ahead and add it" test.

mod flamethrower back crit
additive

mult airblast refire time / airblast vertical pushback scale
percentage
Useful if you want to make a Pyro with a powerful Airblast ability.

airblast disabled
additive
Use this if you want to prevent a Pyro from using Airblast but don't want to do so by having them use AlwaysFireWeapon.
Heavy
minigun spinup time decreased / minigun spinup time increased
inverted percentage/percentage

minigun no spin sounds
additive
Silent Killer function of the Tomislav.

ring of fire while aiming
additive
Huo-Long Heater Ring of Fire effect. This Attribute determines how much damage the Ring of Fire does every time it fires. This Attribute is set to 12 on the Huo-Long by default.

spunup_damage_resistance
percentage
"damage resistance when below 50% health and spun up"

aiming movespeed increased
percentage
Changes a Heavy's movement speed when its primary weapon is spun up.
Engineer
Bear in mind that changing fire rate bonus / fire rate penalty on a Wrench will also affect the rate at which the Engineer can repair their buildings, since their Wrench can strike the buildings more often and Engineer bots have unlimited ammo.

Construction rate increased / Construction rate decreased
percentage/inverted percentage

repair rate increased / repair rate decreased
percentage/inverted percentage
Affects how much health a building will regain upon being struck with a Wrench.

engy building health bonus / engy sentry damage bonus / engy sentry fire rate increased / engy sentry radius increased
percentage



Concept art for the Mecha-Engineer.
Medic
heal rate bonus / heal rate penalty
percentage

ubercharge rate bonus / ubercharge rate penalty
percentage

overheal decay bonus / overheal decay penalty
inverted percentage

overheal bonus
percentage

uber duration bonus
additive (seconds)

overheal expert / mad milk syringes / healing mastery
additive
Mvm upgrades.

generate rage on heal
additive
Medic Projectile Shield. Use wisely, as it can easily overwhelm the Defenders if overused.

bot medic uber health threshold / bot medic uber deploy delay duration
additive
Determines the health level at which Medics whill activate their ubercharge and how long they'll wait to do so. Should be left in CharacterAttributes.

ubercharge overheal rate penalty
percentage
Changes Ubercharge rate derived from Overhealed pateints.

Sniper
SRifle Charge rate increased / SRifle Charge rate decreased
percentage/inverted percentage
How evil a Sniper do you want to make?

sniper full charge damage bonus
percentage
Machina full charge effect.

dmg bonus while half dead / dmg penalty while half alive
percentage
Shahanahananahnnanahananaha effect. Only works for Sniper melee.

explosive sniper shot
additive
I've seen this one used before, but I can't verify how well it works. Use great caution with this one since Explosive Headshot will 1-shot many classes regardless of damage resistance.
Spy
disguise on backstab / slient killer
additive
Eternal Reward cloaking effects.

disguise no burn
additive
Burn damage immunity while disguised.

damage bonus while disguised
percentage
Can be used with Spy Revolvers to enhance the first shot they take while still disguised.

sapper damage bonus / sapper damage penalty / sapper health bonus / sapper health penalty
percentage
Who wants to get on an Engie's nerves?

Conclusion
Did you really think a guide like this needed a proper Conclusion? :P



Huge thanks to the folks over at Potato's MvM Servers for helping me learn to write popfiles and helping to keep me interested in MvM! https://steamproxy.net/groups/potatomvmservers

Thanks for reading! If you have any questions about any attributes listed in here or want to see one added, please leave a comment! I suspect this guide will be a work-in-progress for a while so any suggestions are welcome. <3
73 Comments
BlazingDiancie 19 Jan @ 2:39am 
Its "attack projectiles", and it only works on Miniguns. Value can be 1 or 2, corresponds to the two points of projectile deflection in MvM Upgrades.
Καλησπέρα ⛥ 14 Jan @ 3:39am 
This is old but does anyone here know the attribute for deflecting projectiles? I could only find the "energy weapon no deflect" one and "aoe_deflection" which is unused, but I don't think either are responsible for this
(I'd like to make a custom weapon with tf2attributes that can deflect)
saximaphone 8 Jan, 2022 @ 3:03am 
Thanks for the tip!
Lamiiku  [author] 2 Jan, 2022 @ 2:55pm 
I'm not aware of anything that could force a bot to perform a specific taunt, no. I would strongly recommend asking around on the Potato's MvM Discord for more information about getting bots to do weird things like that - they know a lot more than I do.
saximaphone 2 Jan, 2022 @ 1:48pm 
Sorry for the questions but I'm pretty facinated by these things.
Is there a feasible way to force them to taunt?
I was thinking of trying replacing the tank in a wave with a tank taunt soldier.
I don't see any taunt overrides or force taunting stuff tho.
BlazingDiancie 1 Jan, 2022 @ 5:53pm 
Cow Mangler soldiers can work if theyre set in Sniper Missions, though they are a little buggy.
Lamiiku  [author] 1 Jan, 2022 @ 5:13pm 
Anything related to the medic AI is probably class-specific. Sadly i doubt it'd help you there. You would probably need some pretty complicated server mods to make that happen - think something like sigsegv's mods.
saximaphone 1 Jan, 2022 @ 3:49pm 
That's unfortunate.
What is the range that they start aiming at ememies with it? Maybe increasing that will have them just do it constantly. A cheap workaround.

Nothing attached to the medic AI we can salvage eh?
BlazingDiancie 1 Jan, 2022 @ 10:51am 
Believe me, Ive tried many times lmao
Lamiiku  [author] 1 Jan, 2022 @ 1:34am 
I've never heard of a way to do that, no.