Payload Delivered: How Team Fortress 2 Modders Did What Valve Wouldn’t
When Team Fortress 2 player Frozenstate hopped into a match of Granary back in 2010 on PS3, he was more interested in one player who was messing around than he was in actually winning the game. The lone wolf was spawning inside walls and storage containers. Sometimes you could hear his gunfire and taunt in the distance, but you couldn’t actually see him. “I thought that was neat,” Frozenstate, a modder and dedicated Engineer main, told me over Discord. “So I started looking into how I can do that on console.”
Valve’s colorful team-based shooter was in something of a sorry state when it launched on PS3 and Xbox 360 in 2007. The console port, released in partnership with EA as part of the multigame collection The Orange Box, didn’t receive patches, bug fixes, new content, or any of the updates that the PC version had gotten. Yet a small group of players still found a home on the laggy PS3 and Xbox 360 servers. P
“I had a PC at the time I started modding on the PS3 [but it] wasn’t the greatest… By the time that I managed to get a better PC, [that version of] TF2 had become what I like to call monetized… More emphasis was placed on cosmetics and acquiring variations of weapons, rather than improving core gameplay aspects,” Frozenstate said. “The console versions of TF2, although outdated, provide a truly vanilla experience without giving players who played longer than you an unfair advantage via unlocked weapons.”
Frozenstate is part of a handful of modders who’ve been working on the console versions of Team Fortress 2, implementing minigames, modes of their own creation, and new content that never came to what Valve itself considered the inferior versions of Team Fortress 2. “Source Engine games have an extremely flexible scripting system—it’s just not too intuitive or well documented,” Netham45, a Demoman main and Xbox 360 modder, told me over Discord. “You can manipulate almost all of the in-game entity logic using it. Everything done on the consoles, including implementing Payload, was done using the in-game scripting language.”
Modders like Frozenstate and Netham45 wanted a little bit more than the vanilla experience and they were willing to tinker around with the game in order to get it. One of the first significant updates to the PC version brought a new mode called Payload, in which players would need to protect and push a bomb-laden cart across the map into enemy territory.
“Team Fortress 2 came out on the 360 and PS3 quite a while before Payload was added to the PC. Valve never released the promised updates to the 360 version that would have included it,” Netham 45 said. Console players knew they’d never get it, so Netham45 decided to take matters into his own hands. “The PC payload is implemented using proper engine logic. It uses the game’s built-in track system, which was unavailable to us, for the cart. It doesn’t just take over an existing mode/map and modify it on the fly.The Payload Dust Bowl was about 900 lines.
“My goal was to emulate it as close as possible, though. Basically, our mod is different because it’s implemented as a script, not as a part of the game.”
Netham45’s work with Team Fortress 2 didn’t start with Payload though. He and four other modders experimented on Xbox 360 servers, creating commands they used to design their own game types. They used an exploit that Valve had never fixed so they could run scripts uploaded through console game saves. “Dust Bowl was the last real script I worked on due to Valve patching the exploit we were using to run scripts on the Xbox 360,” Netham45 says. “I also wrote scripts for Arena Mode, Roll the Dice, Flag Football, and worked with someone else making a Zombie Fortress script for the consoles.”
While Netham45 was building PC-only game modes on the Xbox 360 version of Team Fortress 2, Frozenstate was just getting into the game and its modding scene on PS3. “After some research, I found that it was actually pretty easy to trick the game into running a configuration file with any command that I want to test,” Frozenstate said. “I initially started out just using the usual commands that would be considered annoying to most, including god mode, flying through walls, spawning props to block people. But after a while I found a server running Zombie Fortress.”
Zombie Fortress, originally co-developed by Netham45, was an unofficial fan-created game mode where a living Blue team takes on a zombie Red team. Redshirts can only use melee weapons but when a Blue-belly dies, they turn into a zombie. “It was a simple concept,” Frozenstate added, but the production value grabbed his attention. “[It had] many different effects such as overlaying textures for the Red team and on-screen text notifications. It made me want to learn how it was done.”
Frozenstate, who did have some experience poking around in the Counter-Strike mod scene, eventually found Netham45’s work in the form of a script for Zombie Fortress on a Team Fortress 2 forum. “When I first saw the full script, it honestly looked like hieroglyphics to me. I didn’t know what each section did,” he said. “It was around this time that I became determined to recreate and learn how this script was made.”
The Payload mode came to the PC version of Team Fortress 2 in 2008, and Netham45 and crew started the effort to bring it to 360 a little later. The official version of the mode brought new maps along with it, and represented a significant new way to play the cartoony shooter. Players on the console version of the game had no way of checking it out if they didn’t have a PC.
“We had been scripting and modding TF2 on the 360 for a couple of years by this time so we were pretty familiar with the scripting language,” Netham45 said. “Payload was thrown around a few times as a joke suggestion, then once I realized we had figured out enough to do it I started taking a serious look at it.”
Netham45, and the modders that would follow in his footsteps on PS3, had the challenge of designing an entire mode and all the intricacies that came with it on platforms that were unsupported by Valve and EA.
“Payload on PS3 works on the basis of using multiple Source Engine entities to try and recreate a similar version to the PC,” Frozenstate says. “To get the mode working, we would initially spawn about 100 or so entities on the map and then connect them together in a way that each one interacted with one another. Complicated to explain and even more complicated to code, especially factoring in the optimizations I made for the PS3 version.”
Payload mode is, on the surface, simple. At least one member of the attacking team needs to remain near the cart for them to push it along a track, whoever is nearby is healed by the cart’s built-in dispenser. The cart stops moving if the defending team goes near it or the entire Blue team gets pushed back. In order to win, the attacking team needs to push the cart all the way through the map, while the defending team needs to beat out the clock. (If you’ve never played TF2 and this still sounds familiar, that may be because Overwatch’s Escort mode is a pretty close copy.)
“For the cart, I found an entity that I could set velocity on and attached a prop to it,” Netham45 said. “I used a point_proximity_sensor logic entity to tell when it reached its next point. When it reached its next point the angle of travel would be adjusted allowing it to go down the track. I would add additional events to happen when certain points got hit to trigger things like ending the round or adding time to the clock [when the team hits a checkpoint].”
Netham45 used a trigger to let the cart know if a Blue or Red player was nearby. If it was someone from the attacking team it would move, and “from there I was able to use the comparison entities to check if the cart was blocked by defenders or pushed by attackers, as well as adjust the speed [if more people are near it].” He used similar language to tell the game when a team won and to heal players near the cart.
Frozenstate and a couple of other modders took Netham45’s script and ported it over to the PS3, but not without its own intricacies, quirks, and bugs. “The PS3 version does not have a dispenser attached to the cart, but still heals players that get close to the cart,” Frozenstate said. “It also doesn’t allow the [defending] team to push the cart backward, as I feel that they already have a big enough advantage against the [attacking] team on most rounds anyway.”
Frozenstate and his PS3 crew also had to navigate the rusty PS3 servers that Team Fortress 2 ran on. “Ask any veteran of the game and they will tell you that the servers were much better years ago,” he said of how the quality of the TF2 servers has worsened. “If one line of code was not executed, chances are that the whole mode would be ruined and not load properly. The only way around this was to intentionally crash the server and try again.”
It’s a lot of effort to get a classic mode running on a now-free-to-play PC shooter (Frozenstate and Netham45 still play TF2 today), but it was worth it to this group of ragtag modders. Only a small group of players got to take it for a test run, but it may have been a reason they stuck around.
“Most of the players that currently play TF2 on PS3 are veterans of the game and have played for years,” Frozenstate said. “Physical copies of The Orange Box are starting to get rare, and there was never a digital download offered like on the Xbox 360. I don’t really think the mod brought in more people. I think that it gave players a fun twist on an existing classic map.”
For Netham45, modding Team Fortress 2 on Xbox 360 was less about the playing and more about the creating. “There were dozens of people running around with stuff ranging from beginner level code to map-sized puzzles to people just experimenting,” he said. “You could join people’s games and see them trying to do all kinds of different stuff. It was really cool seeing everyone’s creativity exposed like that. We were able to demonstrate what we could do.”