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

Best class(es) to play as?


  • Total voters
    1,133
On the earlier topic of nospread Im not a fan. Its a direct nerf to spread weapons to appease people who make it out to be much worse than what it is. I've never once died to a scout and thought to myself "I only died because of bullet spread rng".

Random crits I can understand. I'm indifferent to them but I can see where people come from when hating on them
 
Paying one troon contractor for just working on fixing random shit and long term support features, releasing the source code, and even allowing people to have their mods on Steam, that's more than 99.9% of developers do for their 18 year old games. While not perfect, they still are kings of PC gaming. I really respect their commitment to meaningfully upgrading their ancient games. We can't have it all, that's reality. But still, good on them.
 
coping because I got buck broken
1740072221576.png
 
Reporting is for fags, this thread isn't Uncletopia or Skial.

To make matters worse the anti bot ban wave is probably only temporary too. Once the contractor responsible for the ban wave fucks off from working on TF2 as a temporary part time job (if he already hasn't that is) I have no doubt the bots and hackers will slowly pile back into Valve servers with a vengeance. If only there were servers that allowed players to do their own moderation to ban bots. Like a community of sorts. A community of servers if you will. What a fucking concept.
Despite being blackpilled on the general state of TF2, I'm hopeful about this one thing. Hosting bots is done at the cost of incredibly slow game performance, making the movement and general nav path fuckery from a 1-2 fps bot stand out from legit players. The systems are already in place and they are probably going to work against specifically bots for the foreseeable future. Even if people develop completely headless bots that don't utilize graphics, they can still be identified.

One of the things I think Valve could do is really streamline the ability to donate to server hosters in much the same way you can buy ingame currency for games through Steam. I think that, combined with Valve leveraging their servers to allow for hosting of community servers, would help with getting community servers off the ground since the tech literacy of the average gamer has been heavily retarded from over a decade of smartphones.
It's already pretty easy to convert TF2 items a server receives as donations into crypto/cash through Mr. Footrest Enabler and his Marketplace, among other websites.
 
It's already pretty easy to convert TF2 items a server receives as donations into crypto/cash through Mr. Footrest Enabler and his Marketplace, among other websites.
I never said it wasn't possible. I said to make a system that is as streamlined as possible. Not to mention such a system can be used for other games.
You could mention how money launder could be an issue. I would counter with it's likely already happening with skins.
 
Last edited:
I never said it wasn't possible. I said to make a system that is as streamlined as possible. Not to mention such a system can be used for other games.
You could mention how money launder could be an issue. I would counter with it's likely already happening with skins.
Trading an item to a bot is about as streamlined as it gets. If you mean a system with Valve actively in charge of it, incredibly unlikely. People who want to contribute will regardless, it's just that the attitude of keeping a good thing going is not as popular as before.
 
I'm hoping Valve actually follows through with the release of the SDK and implements a lot of the fixes into TF2.
I can't be completely cynical when there *is* some clear goodwill from Valve.
Agree and disagree. Stuff like the SDK is very nice and, as much as we can meme on Valve going "you're so smart, you do it", I know a lot of people have been asking for this since they added fixes to the Steam Workshop. At the same time, it is within Valve's best interests to keep TF2 going given it's micro economy and, as a result, the micro economies of DotA2 and CS2. I guess years of seeing Ubislop and EA Gays barging into the room, screaming "you ain't from Michigian if you ain't done this before" and yanking the fucking cord is why.
If you mean a system with Valve actively in charge of it, incredibly unlikely.
A man can dream...
 
  • Like
Reactions: Chick in Jockey
I have questions but I don't know if I want answers
"It costs $400 000 to eat this minigun... for 12 seconds."
I think they are going way beyond the minimum to just keep the market chugging.
If Valve adds github merge requests into TF2, than I agree that it's more than the bare minimum.
 
  • Like
Reactions: Chick in Jockey
If Valve adds github merge requests into TF2, than I agree that it's more than the bare minimum.
Didn't Valve at one point mention how they were looking to get the community to give them things to put into game updates? I recall the option to disable sprays and deleting temporary files being one of the things that came out of that request. Granted this was probably done out of an obligation towards TF2C and OpenFortress, but it would be a nice side effect. Especially if the community can find a way to clean up and optimize the codebase.
 
Didn't Valve at one point mention how they were looking to get the community to give them things to put into game updates?
They've been doing this for a while, actually, since they updated the Workshop to allow for community fixes. Hell, most of the fixes you've seen for well over a year have been the result of said community efforts. That said, the SDK gives the community to access parts of the game previously untouched that allows for more fundamental fixes.
 
  • Like
Reactions: Chick in Jockey
Don't actually give the community power. Give them the illusion of power but keep them on a tight fucking leash otherwise you're going to be welcoming an army of troons to start adding shit to the game that nobody wants, or adding features to the game that prevent free speech (i.e. a slur blocker in chat). Let them make fixes to inconsequential shit, like "fix the player gibs", "fix the player invuln base textures", "fix BLU Scout pants", etc. That's all fine and dandy if they want to do that.

I guarantee you we'll one day see a custom TF2 client on Steam with a built in slur blocker that checks every message you send, and if you send any kind of "wrongthink", they'll add your Steam ID to a blacklist so the client refuses to work for you.

A similar thing happened in the 2010s with Minecraft when World of Minecraft was the largest early infdev MP server hoster. They released a client that had cheats (like flying) on it (there was no survival at the time, just creative) but if you got banned from a World of Minecraft server for ANY reason no matter how stupid, the client would refuse to enable cheats for your account. So you'd lose the ability to fly around and use other cheats in the client. Made creative building harder if you were banned from a WoM server by a dickhead admin or something.

Also, don't forget that mods like TF2C with only one popular designated server network are highly likely to ban any perceived wrong thinkers, meaning you're essentially excluded from playing multiplayer in that mod if they ban you:
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.
 
Last edited:
Last edited:
Granted, that is already in the game. It's a client-side Steam feature that can be configured, so it only affects you and can be disabled entirely.
https://store.steampowered.com/account/preferences#:~:text=community content preferences
You can even add custom words to it. So honestly it should be up to the discretion of the player to filter that out client side.
if you send any kind of "wrongthink", they'll add your Steam ID to a blacklist so the client refuses to work for you.
This reminds me of what the Half-Life 2 Overcharged mod tried doing. It was taken off ModDB for malware as a result of their SteamID checks that block YouTubers who criticized the mod.
https://www.reddit.com/r/HalfLife/comments/1h4dv1w/the_halflife_2_mod_halflife_2_overcharged_checks/
 
Back