Editing MvM waves and robot attributes

Guide to basic MvM editing: Changing wave composition, making custom robots, doing cool stuff

Alrighty, the purpose of this is to give you a general overview of how to edit wave composition and the robot's attributes in your favorite MvM map. Bored of the default waves? Make your own. Want to play against a million spies? Go for it. Sadly as far as I know there's no way to randomize or loop anything so you can't do infinite-wave random-mob mode (but you can copy-paste stuff and have a trillion waves, so close enough).

First off download GCFScape, open 'team fortress 2 content.gcf' in your steamapps folder and extract tf/scripts/population to your regular TF2 folder. It should retain the same folder structure. So steamapps/username/team fortress 2/tf/script/population. Make a backup of all these files as well.

So open mvm_mannworks.pop in your favorite text editor. Scroll down to wave 1, and inside you'll see there a bunch of mini-waves that start with WaveSpawn. First off it'll throw 12 soldiers at you total (TotalCount), in groups of 6 (SpawnCount) and if there are 10 out already it won't spawn any more (MaxActive). If you just wanted to fight a million soldiers change all those variables to 982345 or something and have fun. If you want to change them all to heavies go into TFBot {... and change the Class variable from Soldier to Heavy.


Now we gon' get fancy. Let's say you hate yourself and want to fight 5 Giant Rapid Fire Soldiers at the same time. Let's also say you also think they don't fire quite fast enough. However, you don't want later waves to use the insane-rapid fire soldiers, just this wave. Open robot_giant.pop and find his bot definitions. In this case he's called:

T_TFBot_Giant__Soldier__Spammer. 

Copy+paste the whole chunk of code, and rename it:

T_TFBot_Minigun_Rockets

because he's practically gonna be shooting rockets as fast as a minigun. Change the Name field to whatever you want to show up in-game. Head down to fire rate bonus and see that it's 0.5. That means he's firing at twice his normal rate, or the gap between shots is 0.5 as long as normal. Let's change that to 0.1. Now we have our very own robot that fires super fast and is an entirely different entity than the original Soldier Spammer.

Head back over to the Mannworks pop file. Erase everything inside the TFBot brackets (Class, Skill, WeaponRestrictions). In their place type

Template T_TFBot_Minigun_Rockets

and change TotalCount, SpawnActive, and MaxActive to 5. Bam!

Now you play a bit and decide that wasn't hard enough. You think what they really need is a bunch of uber medics, two medics per soldier. Right after the first TFBot section add two identical ones, but this time type

Template T_TFBot_Medic_QuickUber

in each. Now enclose all three TFBot sections in a Squad {...} tag so it looks like this:

Squad
{
  TFBot
  {
    Template T_TFBot_Minigun_Rockets
  }
  TFBot
  {
    Template T_TFBot_Medic_QuickUber
  }
  TFBot
  {
    Template T_TFBot_Medic_QuickUber
  }
}

Awesome, now we have two ubering medics who will stay attached to your giant soldier. Now I want to send them out one at a time every 7 seconds. We just have to do some quick fixes to earlier variables and we're all good. TotalCount to 15, because we want five soldiers and ten medics, SpawnCount to 3 because we want three bots at a time, MaxActive to 15 because we want to send them out regardless of if the player has killed previous ones, and WaitBetweenSpawns to 7 because they are getting spawned every 7sec. Also, because we're so nice and this was a tough round, we'll give the players some more cash by changing TotalCurrency to 500 under WaveSpawn


SO GOOD. Now instead of the default first wave being twelve soldiers, we are sending out 5 squads in 7 second intervals, each squad consisting of our very own Way-too-rapid Fire Soldier with 2 pocket medics. That's the basics, everything else should be somewhat easily done through simple number changes and copypasting. Experiment on stuff and have fun!

Oh noes! You're not a Member!

Want access to cool stuff? As a member you can:

  • Post. Give the submitter your thoughts on this Tutorial.
  • Say Thanks. Show your appreciation by sending the submitter points.
  • Stamp Posts. Let other posters know what you think of their posts.
  • Rate. Give this Tutorial a rating out of 10.
  • Flag. Alert moderators and warn members of a problem with this Tutorial.
  • Vote. Vote the submitter for the Monthly Awards.
  • Subscribe. Get notified when this submitter submits again.

Interested? Register or Login

Comments

  • Brixmon's Levels
    • P1: Beggar
      Points: 202
    • C1: Member
    • A2: Tenderfoot
      Account Age: 9 months
    Posted 3 months ago

    What minimum scale value does a robot have to be at to be considered giant? I have the health down, but it just won't be 'giant' even when I set its scale to 2.

    Chunk of Meat
  • Techno_Lad97's Levels
    • P1: Beggar
      Points: 427
    • C1: Member
    • A2: Tenderfoot
      Account Age: 9 months
    Posted 8 months ago

    Posted by kami7k

    So If I edit it and let's say join some server it will then make that madness there?

    I tried, and no it doesn't. It only works when you create a MVM server.

    User Title
    BLU vs RED
  • Skydash's Levels
    • P2: Drudge
      Points: 2,784
    • E1: Helper
      EF: 3
    • C1: Member
    • A4: Graduate
      Account Age: 3 years
    Username
    Skydash
    Posted 8 months ago

    So If I edit it and let's say join some server it will then make that madness there?! :O

    Keyboard is broken...againn :(
  • petere16's Levels
    • P1: Beggar
      Points: 2
    • C1: Member
    • A5: Veteran
      Account Age: 4 years
    Posted 9 months ago

    The .pop files are binaries for me wtf? This isn't normal is it?

    EDIT: nevermind, had an old gcfscape that even said the files are corrupt. Latest version extracts just fine.

    Bananite
  • uda34's Levels
    • P1: Beggar
      Points: 15
    • C1: Member
    • A2: Tenderfoot
      Account Age: 12 months
    Posted 9 months ago

    I copy pasted a couple waves, changed the wave number so it isnt 1, 2, 3, 4, 5, 6, 7, 1, 2 and so on, and it still doesn't seem to work did I do something wrong? , thanks!

    Bananite
  • Dorkster's Levels
    • P2: Drudge
      Points: 1,279
    • E1: Helper
      EF: 1
    • C1: Member
    • A4: Graduate
      Account Age: 3 years
    Posted 9 months ago

    Overall well-worded tutorial. Although there are things I like to point out about modifying the template of an already existing robot, you don't necessary have to create another template in the robot_giant.pop . You only need to add in the changed attribute to the wave file, like for your changed rapid fire Soldier, you can simply have this in the wave file:

    TFBot
    {
    Template T__TFBot_Giant_Soldier_Spammer
    CharacterAttributes
    {
    "fire rate bonus" 0.1
    }
    }

    This method also works with changing its name, health, skill, etc. It will only override the ones you put in, and it's all going to apply to that one wave only. (I don't really know how to do the code boxes things... There's no buttons available for that.)

    • Helpful x 1
    • Interesting x 1
    Animation Dork
  • IceColdFreezie's Levels
    • P2: Drudge
      Points: 1,295
    • C1: Member
    • A5: Veteran
      Account Age: 5 years
    Posted 9 months ago

    Posted by uda34

    And after i'm done editing the .pop file, where do I place it in so it works on a server? Thanks!

    Just throw it in Steam\steamapps\username\team fortress 2\scripts\population if you're running an in-game server or orangebox\tf\scripts\population if you're running dedicated

  • uda34's Levels
    • P1: Beggar
      Points: 15
    • C1: Member
    • A2: Tenderfoot
      Account Age: 12 months
    Posted 9 months ago

    And after i'm done editing the .pop file, where do I place it in so it works on a server? Thanks!

    Bananite
  • leetnoobify's Levels
    • P1: Beggar
      Points: 728
    • C1: Member
    • A3: Apprentice
      Account Age: 1 year
    Posted 9 months ago

    Very helpful, thanks!

    User Title
    A Real Piece of Work

Credits

Submitter
IceColdFreezie's Levels
  • P2: Drudge
    Points: 1,295
  • C1: Member
  • A5: Veteran
    Account Age: 5 years
IceColdFreezie (Creator/Co-creator)
Key Authors
IceColdFreezie
President

Rating

10.0/10
Based off 4 rating(s)

Additional Info

Genre
Coding/Scripting, Mapping, Other/Misc
Difficulty Level
Beginner

Stats

Post Count
9
ViewCount
8,619
Date Added
9 months ago
Date Modified
9 months ago

Share

Embed Code
Code to use:

More embeddable images

Bookmark and Share