Team Fortress 2 - Hat Fortress 2: America's #1 War-themed Hat Simulator

Best class(es) to play as?


  • Total voters
    1,133
lol, if anything they are trying to turn it into Overwatch, no self-respecting TF2 player would even consider playing this
I decided to give it a try maybe a year ago, went fully blind. I was greeted by some furry faggot with a moderator badge on the scoreboard (yes, they actually added badges for jannies) while some retard kept talking about "trans rights" on mic.

Gameplay wise the biggest thing that bothered me was the movement. It was more like Quake than TF2. I hated it. I don't know if it was like this on launch, but either way it's trash. And if they did want to port such off-putting changes for the sake of being true to original then why add those trash custom weapons? It's contradictory. I just wanted some classic tf2, not fanfic-tier additions.

Or have they changed the movement since then?
 
I’m not against the classic team trying to give optional play styles for the classes. I’m sure there’s plenty of medics that are bored af that the gameplay is just holding leftclick and jiggling around for 1000 hours. Similar to the huntsman or the nailgun, the ability to try out a new way to play a class might be a breath of fresh air - so I will remain optimistic.

Not super sure about the Uber tho, I’m pretty sure it’s gonna get nerfed pretty hard after it goes live. I think they underestimate how abusable a ‘Fuck You, you are not pushing’ button will be. Especially on maps like gold rush or something where the bubble basically fits over 75% of the chokepoints. I thought it might be more appropriate for it to give a haste buff to a player kinda like what the new civilian melee does.
The heal launcher gives medic the option to just spam heals from a relatively safe distance and unlike the crossbow you don't need a clear sightline, it overheals and semi-eliminates the need to aim because of the aoe. Idk how you would even attempt to balance this. Nothing is stopping the whole team from bunching up (specially on the payload cart) and you single handedly healing/ubering half the server. Also holy fuck, a direct hit heal on an unoverhealed teammate nets you 7-9% uber per hit and looks like you can just drop the bubble and keep it going basically forever with the ubersaw/uberspritze. This is full on brain damage.
 
I was greeted by some furry faggot with a moderator badge on the scoreboard (yes, they actually added badges for jannies) while some retard kept talking about "trans rights" on mic.
The TF2C server jannies are such flaming faggots.

I was playing some classic TF2 remixes and old Internet music in VC the last time I played before the update, most people enjoyed it and I was having a good time until a janny popped out of nowhere and had me globally muted. When the update dropped yesterday I hopped on again, playing for awhile having some fun only to have another janny pop up out of nowhere and kick me for having retard in my username. Mind you, not a single person had complained or made a mention of it beforehand; nobody cared.

Here's a video chronicling the numerous ban appeals on one of the major server hosters VaultF4's forum (which makes up the majority of posts lmao):
 
I suppose someone could set up a proper free speech server in TF2C, but a peek into the source code leak for 2.2 has shown me that they have a server blacklist in place:

File: src/game/shared/tf/blacklists.cpp
C++:
#ifdef TF_CLASSIC_CLIENT
#include "cbase.h"

#include <filesystem.h>
#include <blacklists.h>

// #define blacklists_debugging yep

#define badservers_url "https://tf2classic.com/api/bad.txt"

// I know this is ugly I hate C++ shut up
CBlacklists g_CBlackLists;

CBlacklists::CBlacklists()
{

}

void CBlacklists::InitInit()
{
    g_CBlackLists.GetBlacklist();
}

#define timeoutms 5000
void CBlacklists::GetBlacklist()
{

    SteamAPICall_t hCallServer;
    if (!steamapicontext->SteamHTTP())
    {
        Error("Couldn't get SteamHTTP interface! Try restarting Steam.\n");
    }

    HTTPRequestHandle httphandle = steamapicontext->SteamHTTP()->CreateHTTPRequest(k_EHTTPMethodGET, badservers_url);
    steamapicontext->SteamHTTP()->SetHTTPRequestAbsoluteTimeoutMS(httphandle, timeoutms);
    steamapicontext->SteamHTTP()->SendHTTPRequest(httphandle, &hCallServer);
    steamapicontext->SteamHTTP()->PrioritizeHTTPRequest(httphandle);

    BlacklistsCallResult.Set(hCallServer, this, &CBlacklists::BlacklistDownloadCallback);
}

void CBlacklists::BlacklistDownloadCallback(HTTPRequestCompleted_t* arg, bool bFailed)
{
    if (bFailed || arg->m_eStatusCode < 200 || arg->m_eStatusCode > 299)
    {
        #ifdef blacklists_debugging
        Warning("REQUEST EXPLODED UH OH\n");
        #endif

        steamapicontext->SteamHTTP()->ReleaseHTTPRequest(arg->m_hRequest);
        return;
    }
    uint32 size;
    steamapicontext->SteamHTTP()->GetHTTPResponseBodySize(arg->m_hRequest, &size);

    unsigned char buffer[1024] = {};

    if (size > 0)
    {
        FileHandle_t filehandle = g_pFullFileSystem->Open("cfg/badips.txt", "w+", "GAME");
        if (!filehandle)
        {
            #ifdef blacklists_debugging
            Warning("FILE COULDN'T BE CREATED UH OH\n");
            #endif

            steamapicontext->SteamHTTP()->ReleaseHTTPRequest(arg->m_hRequest);
            return;
        }
        steamapicontext->SteamHTTP()->GetHTTPResponseBodyData(arg->m_hRequest, buffer, size);
        g_pFullFileSystem->Write(buffer, size, filehandle);
        g_pFullFileSystem->Flush(filehandle);
        g_pFullFileSystem->Close(filehandle);
    }

    #ifdef blacklists_debugging
    Warning("char %s, size %i\n", buffer, size);
    #endif

    steamapicontext->SteamHTTP()->ReleaseHTTPRequest(arg->m_hRequest);
}

// Return true if client should connect and false if they shouldn't
bool CBlacklists::CompareServerBlacklist(const char* ipaddr)
{
    #ifdef blacklists_debugging
    Warning("CBlacklists::CompareServerBlacklist->\n");
    #endif

    FileHandle_t filehandle = g_pFullFileSystem->Open("cfg/badips.txt", "r", "GAME");
    if (!filehandle)
    {
        #ifdef blacklists_debugging
        Warning("FILE COULDN'T BE CREATED OR OPENED UH OH\n");
        #endif
        return true;
    }

    char thisline[64];
    while (g_pFullFileSystem->ReadLine(thisline, sizeof(thisline), filehandle))
    {
        // ignore fake shit
        if
        (
                strlen(thisline) < 7    // smallest = "1.1.1.1\n"           = 8,  give it a bit of leeway just in case
            ||  strlen(thisline) > 17   // biggest  = "255.255.255.255\n"   = 16, ^
            || !strstr(thisline, ".")   // no period? it's not an IP address.
            ||  strstr(thisline, "#")   // comments!
        )
        {
            continue;
        }

        #ifdef blacklists_debugging
        Warning("strlen = %i\n", strlen(thisline));
        Warning("ipaddr = %s\n", ipaddr);
        Warning("thisip = %s\n", thisline);
        #endif

        // Strip newlines. Probably
        thisline[strcspn(thisline, "\n")] = 0;
        thisline[strcspn(thisline, "\r")] = 0;

        // Match!
        if ( Q_strcmp(ipaddr, thisline) == 0 )
        {
            #ifdef blacklists_debugging
            Warning("Uh oh! %s is a blacklisted server...\n", ipaddr);
            #endif

            g_pFullFileSystem->Close(filehandle);
            return false;
        }
    }

    g_pFullFileSystem->Close(filehandle);

    return true;
}
#endif

Granted, if we check their bad server IP list (which was found via being defined at the top of the above code block), it's just 4 servers designated as "malware". A Google search for the first IP on the list revealed reddit posts about those servers running anti-Ukraine "propaganda" via directory and file names for content it was making clients download.

The point of this entire post being, there's nothing stopping the current dev team from slapping the IP of a server, where people can call trannies the faggots that they are, onto their naughty server list and preventing clients from connecting to it.

So as it stands, VaultF4 has a bit of a monopoly on TF2C servers. Most players play VF4. Other servers run by other people are often entirely dead. If you run afoul of the tranny jannies on VF4 and find yourself banned, you're essentially locked out of playing TF2C with other people. VaultF4 tows the tranny line and has been the main server provider for TF2C since the start when the project wasn't trannies trannies and more trannies.

Fun tip for harassing people on the Knockout custom weapons servers, if they still have these cosmetics up: go Engineer, equip the female Engineer model swap, then equip the custom weapon that makes you the buff muscular Engineer. You'll look like a tranny.
 
Last edited:
Nothing beats the level of faggotry from Uncletopia. One time, when there were no mods around, I casually called something gay as a joke. Suddenly a deep raspy male voice starts lecturing me. It was an obvious troon with a trans username and flag pfp. I called him gay too. So he got most of the server to gang up on me and I was reported for transphobia on the Discord server.

Anyway, I'm an EU player and I've heard people say nigger and micspam on TF2C, but that was a while back. Played again today and it seems the spirit of old TF2 was there, at least as long as a janny isn't around (sprays included). Everything feels much more fleshed out than it was a few years ago. I like the new content since it fits the game and isn't overdone. We'll see if it stays this way.
 
Played again today and it seems the spirit of old TF2 was there, at least as long as a janny isn't around (sprays included).
I havent touched TF2C for a few years, but trying it out now it definitely feels better to play compared to Casual and regular community servers

People talk shit, dont ragequit when losing and a lot of features, like sudden death on cp maps or timer on ctf maps make previously annoying gamemodes much more tolerable. Hell, people even play stuff like arena and have fun with it

Still, as others have mentioned, its held back by all the "unique custom weapons" they keep adding, many of which introduce mechanics that make gameplay feel a lot less coherent. Take, for example, Dynamite Pack or Mine Layer for Demo, both of which are "spam it on choke and let it automatically explode for you" type of weapon. What this means, is that you sometimes just get an entire team of niggers constantly throwing shit at objective until the round runs out. I think they added Cyclops and Rejuvenator specifically to deal with that constant area denial, but if former is a nothingburger, the latter is going to introduce even more problems to the game in long term. Because guess what, giving Medic the ability to heal multiple people at the same time at medium/long range and also uber multiple people makes entire team nearly unkillable with proper coordination. It gets even worse with multiple rejuv Medics, as they can just heal each other and avoid dying as well, that thing is actual AIDS
 
Last edited:
Still, as others have mentioned, its held back by all the "unique custom weapons" they keep adding, many of which introduce mechanics that make gameplay feel a lot less coherent. Take, for example, Dynamite Pack or Mine Layer for Demo, both of which are "spam it on choke and let it automatically explode for you" type of weapon. What this means, is that you sometimes just get an entire team of niggers constantly throwing shit at objective until the round runs out. I think they added Cyclops and Rejuvenator specifically to deal with that constant area denial, but if former is a nothingburger, the latter is going to introduce even more problems to the game in long term. Because guess what, giving Medic the ability to heal multiple people at the same time at medium/long range and also uber multiple people makes entire team nearly unkillable with proper coordination. It gets even worse with multiple rejuv Medics, as they can just heal each other and avoid dying as well, that thing is actual AIDS
Everyone here is overreacting imo. The Demo weapons are better than stock in some cases, but not to the point of total replacement. Not that many players go around spamming them.
The Rejuvenator seems broken, but once I tried it out I realised it's not viable for pocketing teammates, or keeping anyone alive under some half-serious gunfire. Its highlight is the Uber, but that's not Medic's sole purpose. In the next update it'll probably get nerfed anyway so I don't see it becoming the meta. I survived Jungle Inferno Pyros so nothing spooks me anymore.

Also I was right about EU servers having less degenerates. NA servers are plagued.
Screenshot 2025-01-28 100653.png
 
Nothing beats the level of faggotry from Uncletopia. One time, when there were no mods around, I casually called something gay as a joke. Suddenly a deep raspy male voice starts lecturing me. It was an obvious troon with a trans username and flag pfp. I called him gay too. So he got most of the server to gang up on me and I was reported for transphobia on the Discord server.

Anyway, I'm an EU player and I've heard people say nigger and micspam on TF2C, but that was a while back. Played again today and it seems the spirit of old TF2 was there, at least as long as a janny isn't around (sprays included). Everything feels much more fleshed out than it was a few years ago. I like the new content since it fits the game and isn't overdone. We'll see if it stays this way.
Hilarious that they can't even handle middle school tier bants. Been playing the game on and off on casual and I still occasionally run into people who ain't afraid to say edgy shit in text or on mic. Though I notice all the ones who go on mic are eastern euros lol. Nothing is as funny as playing the game and then randomly hearing a deep slav accent shout "WHITE MAN GOOD NIGGER BAD!"
 

TF2 PSA

View attachment 6916633
In case you didn't know, you can replace the ugly post-MYM match HUD with the original timer with this command:
Code:
tf_use_match_hud 0

There's a Steam guide that delves further into this for anyone interested.
I'm legitimately surprised that there are people who don't know about this convar. This has been a usable convar for...god I don't know how long. At least since 2019 if not earlier? Isnt there an options menu entry for this too?

I mean, there are tons of convars in total in the game, I don't expect everyone to have the same level of knowledge of the engine as me, obviously there's going to be some things that most people don't find out about...but a quick google pulls up plenty of hits of people spreading this around for years. Just surprised me to see this old convar being passed around in CURRENTYEAR.
 
  • Like
Reactions: Patrick Bait-man
I'm legitimately surprised that there are people who don't know about this convar. This has been a usable convar for...god I don't know how long. At least since 2019 if not earlier? Isnt there an options menu entry for this too?

I mean, there are tons of convars in total in the game, I don't expect everyone to have the same level of knowledge of the engine as me, obviously there's going to be some things that most people don't find out about...but a quick google pulls up plenty of hits of people spreading this around for years. Just surprised me to see this old convar being passed around in CURRENTYEAR.
I had no idea you could revert it until last year. I had seen "Use the team status display in the HUD" in Advanced Options before but didn't fully understand it's purpose, and thus ignored it.

Ever since I found out you could bring back the old timer my enjoyment of TF2 has gone up by 10%. I missed that timer.
 
Last edited:
That Steam guide reminded me - there are audio versions of sprays. You can spam a custom sound byte in-game, just like how you can import an image and spray it. These "sound sprays" are a lot more obscure than regular sprays, since you have to use "cl_customsounds 1" to even hear them at all, THEN you need to bind one of your keys and use even more commands if you want to spam your own sounds, AND be playing on a non-Valve server that allows players to upload sounds or sprays. I'd say it's worth it, especially when you forgot you had sound sprays enabled and you suddenly hear something like this coming from an invisible spy

Guide 1 (old, but simple and to the point)
Guide 2 (newer, more in-depth and tells you how to make it loop in GoldWave)
there's also a way to use the Source Faceposer to add facial flexes to your sounds so that you can actually have your characters lip-sync and scream out your loud nigra rainbow ride magic missile BEES earrape sound spray, but that is mega autistic and I couldn't find a good guide to do it
 
That Steam guide reminded me - there are audio versions of sprays. You can spam a custom sound byte in-game, just like how you can import an image and spray it. These "sound sprays" are a lot more obscure than regular sprays, since you have to use "cl_customsounds 1" to even hear them at all, THEN you need to bind one of your keys and use even more commands if you want to spam your own sounds, AND be playing on a non-Valve server that allows players to upload sounds or sprays. I'd say it's worth it, especially when you forgot you had sound sprays enabled and you suddenly hear something like this coming from an invisible spy

Guide 1 (old, but simple and to the point)
Guide 2 (newer, more in-depth and tells you how to make it loop in GoldWave)
there's also a way to use the Source Faceposer to add facial flexes to your sounds so that you can actually have your characters lip-sync and scream out your loud nigra rainbow ride magic missile BEES earrape sound spray, but that is mega autistic and I couldn't find a good guide to do it
Yeah sound sprays are a weird little feature of the Source Engine that not many people knew about.

Caveats: If I remember right, other players need to have the same convar enabled to hear the sprays. And I believe the facial flex thing would only be visible to yourself since other players would need the same modified model flexes in their mods folder to see it.

Allow me to continue the "odd things" train. There's a command you can bind to a key called "pda_click". When playing as Spy or Engineer and wielding the Disguise Kit or the Build/Destroy PDA, if you use the keybind your character will tap it like they're pressing a button.

Last I remember, it was only visible in thirdperson (there is no first person animation for it), and due to a bug, was only visible to other players. They can see you do it, but you can't see yourself do it. They may have fixed the bug in recent years so you can see it in thirdperson, but I'm not 100% sure about that. Here's a fun little video showing it off:
The video description explains everything better than I can, and there's even sound spray usage in the video!
 
Back