[TF2] [Feature Request] Remove all code related to -textmode in TF2
This issue was closed before for no reason, so I'm creating this new issue. -textmode allows clients to run Source games without rendering any graphics to save memory. CS:GO used to have textmode compatibility, but it was removed at some point to stop users from abusing it. The same should be done to TF2.
There is no legit reason to use this parameter, not even for debugging. If you find "textmode" in Google you will only find cheat repos and forums.
Also, there may be some other parameters that needs to be revised.
-noshaderapi: Effectively disables shader and texture loading completely. Doesn't let you open CS:GO directly.
-small: Allows for resolutions smaller than 640x480. Very small values crashes the game.
I closed the previous issue as I became aware that removing textmode will not stop people from hosting bots in TF2. There will always be another way. Removing it won't really change much in the long run.
I closed the previous issue as I became aware that removing textmode will not stop people from hosting bots in TF2. There will always be another way. Removing it won't really change much in the long run.
The main issue is likely just-disable-vac-tf (which apparently works on other games too) And if cheats do use textmode, removing it will at least prevent bots from running for some time, which is always nice.
Edit: After gaining a year's worth of knowledge on game development, I doubt remove textmode would do anything meaningful, even if cheats used it.
@TF2CutContentWiki CS:GO also has trade bots and it doesn't support -textmode
legitfags crying clip: Number 6900.
you know you can literally host bots without fuckin textmode? and cathook doesnt even use the "-textmode" flag, it uses a fuckin' signature. Even if you remove the flag, it wont work :)
Its not a problem of whether or not bots can exist with/without textmode. It's the resources required to achieve the numbers bot hosts get when running without graphics. Forcing bot hosts to switch to hosting with graphics would be like Windows users trying to run 30 instances of TF2 in Sandboxie for bots. - Not too friendly for the CPU.
this suggestion isn't going to achieve what you think it will achieve
this suggestion isn't going to achieve what you think it will achieve
why are you so vague and obtuse
@compromisable Please learn about how game development works before sending childish comments in an issue tracker. If you think it's so easy to do, do it yourself then.
this suggestion isn't going to achieve what you think it will achieve
why are you so vague and obtuse
i already explained this
updating the game to remove features from it doesn't forcibly remove previous versions of the game from existing machines
like a common suggestion is removing linux support, but linux binaries will still exist and will still work fine even if valve stops officially serving them
textmode is also such a trivial feature for cheaters to replicate, it's literally just running the game without graphics, this is not the silver bullet that you think it is
this suggestion isn't going to achieve what you think it will achieve
why are you so vague and obtuse
i already explained this
updating the game to remove features from it doesn't forcibly remove previous versions of the game from existing machines
like a common suggestion is removing linux support, but linux binaries will still exist and will still work fine even if valve stops officially serving them
... But you can't play on newer servers with an older build version of the game. You have 8000 hours in gmod, shouldn't you know this?
textmode is also such a trivial feature for cheaters to replicate, it's literally just running the game without graphics, this is not the silver bullet that you think it is
If it's trivial give me an example on how it would be done
@compromisable Please learn about how game development works before sending childish comments in an issue tracker. If you think it's so easy to do, do it yourself then.
You need to learn how game development works before complaining about an issue that has needed attention for 6 years?
If it's trivial give me an example on how it would be done
Running the game without Vulkan presentation extensions, running the game without a display server, running the game with a modified DXVK, or your own DirectX/libX11/libwayland/etc implementation that just ignores any calls to it…
You need to learn how game development works before complaining about an issue that has needed attention for 6 years?
This person clearly does not know what they're talking about (suggesting solutions that make no sense or that are infeasible) and are continuing to do so after being told by a Valve employee to stop (see #5686)
They're even pinging the Valve issue tracker moderator on this after being told that they don't work on anti-cheat (again see #5686)
Edit: Just thought I'd talk about this too:
But you can't play on newer servers with an older build version of the game. You have 8000 hours in gmod, shouldn't you know this?
This whole conversation is pointless as Valve will not remove Linux builds considering how much efforts they've put into making Linux a viable competitor to Windows for gaming, but yes, if you're dedicated enough (which bot makers clearly are) you can make an old client connect to a new server.
Edit 2: And even if Valve did stop making Linux builds, Proton is so good it would be made compatible with TF2 (currently networking and VAC seem broken on Win32 TF2 running through Proton on Linux) not long after.
If it's trivial give me an example on how it would be done
Running the game without Vulkan presentation extensions, running the game without a display server, running the game with a modified DXVK, or your own DirectX/libX11/libwayland/etc implementation that just ignores any calls to it…
Sounds like it raises the bar for botters still. Which is a good thing in terms of lessening disruptive matches
Sounds like it raises the bar for botters still. Which is a good thing.
Yeah, it would make the bot makers have to work for like a good hour or two.
Sounds like it raises the bar for botters still. Which is a good thing.
Yeah, it would make the bot makers have to work for like a good hour or two.
It took botters more than a day to get back up and running after 64 bit was released, something tells me it will be a little bit more than just an hour or two for them to trivially do any of those (untested) options you presented
This whole conversation is pointless as Valve will not remove Linux builds considering how much efforts they've put into making Linux a viable competitor to Windows for gaming, but yes, if you're dedicated enough (which bot makers clearly are) you can make an old client connect to a new server.
Sounds like a bug valve would need to fix then
It took botters more than a day to get back up and running after 64 bit was released, something tells me it will be a little bit more than just an hour or two for them of trivially do anything
Patching cheats up to work with a whole new binary is way more work intensive than creating a script that goes through every DirectX or Vulkan functions no-ops and fixing it up to make TF2 think the functions actually worked. (that might even already exist, I didn't look into it)
Also, we don't even know if botters do use -textmode.
Yes maybe that people running the bots took a day to update, but I'm sure most botters aren't actually developing them.
Furthermore, patching up cheats to work with 64-bit is way more work intensive than the solutions provided.
Sounds like a bug valve would need to fix then
Why? It doesn't affect anyone.
Edit:
Yes my options are untested. I still know they will work, because they literally consist of just preventing the game from rendering to anything.
And again, bots might need even use -textmode, so they probably wouldn't even implement a fix anyway.
if you're even admitting that your proposed solution is very temporary, i don't understand why you still think it'd be a good solution
if you're even admitting that your proposed solution is very temporary, i don't understand why you still think it'd be a good solution
Oh, I didn't know I was competing with so many better solutions here. Anyway, My solution is very easy to implement, and will take away resources from botters.
<Link removed by moderator>
Here is a very popular botting software that supports textmode, for doubters earlier
<Link removed by moderator>
Here it is being used in helper scripts
Yes my options are untested. I still know they will work, because they literally consist of just preventing the game from rendering to anything.
Yeah because knowing is everything...
if you're even admitting that your proposed solution is very temporary, i don't understand why you still think it'd be a good solution
Oh, I didn't know I was competing with so many better solutions here. Anyway, My solution is very easy to implement, and will take away resources from botters.
That's not what they were saying?
Here is a very popular botting software that supports textmode
Great, you've shown that a bot software uses it, now what? You know botters can just not use it right? They only use it because it reduces the load on the GPU, but if Valve removes it they can again just reimplement themselves easily.
Yes my options are untested. I still know they will work, because they literally consist of just preventing the game from rendering to anything.
Yeah because knowing is everything...
Go ahead, explain why they wouldn't work.
Edit:
Looking at the code you sent, they use the tier0 CommandLine()->RemoveParm("-textmode") function, which actually as specified in the engine source code "Remove[s] specified string ( and any args attached to it ) from command line", instead of adding the argument.
I don't know how this software (a moderator removed the links so I assume they don't want me to mention it by name) bypasses bypasses VAC, but it seems it involves forcing textmode off.
And considering they can already hook into the game itself, they could also just reimplement textmode in the game itself without too much effort considering g_bTextMode is only mentioned 23 times in the game's source code and they disable VAC.
Edit 2:
-textmode seems to imply -insecure in some places so that's probably why they remove it from the arguments, along with -insecure.
@compromisable Please learn about how game development works before sending childish comments in an issue tracker. If you think it's so easy to do, do it yourself then.
Ah, a game developer arrives at the scene, oh thank heavens! I am hurt by your comment, but am immensely grateful to have your help. I do want to note that as a company with billions of dollars of resources and probably more developers under their belt then any other PC gaming company - I think it would indeed be very easy to do! I would do it myself if I had the power of hypnosis and a Valve employee in my armchair!
Well what would you do if you had the billions of dollars of resources, because even for massive companies, writing good anti-cheat isn't easy (see Counter-Strike 2).
Anyone else find it strange how much resistance there is to finding an ideal solution to this bot crisis?
Well go ahead, give us one.
if you're even admitting that your proposed solution is very temporary, i don't understand why you still think it'd be a good solution
Oh, I didn't know I was competing with so many better solutions here. Anyway, My solution is very easy to implement, and will take away resources from botters.
i am getting the impression that all you're interested in is scoring a short-term "victory" against bot hosters, so that the tf2 community can do its little celebration like what they do for every update that temporarily breaks bots as a side-effect
personally, i don't think sacrificing features, no matter how niche, is worth it just for scoring ultimately meaningless little victories
Wait... aren't you the one who proposed a "Cheat detecting Cvar"...?
I think you should stop holding this against them, as the following clearly isn't a serious suggestion:
i have come up with the ideal solution:
valve should simply add a userinfo cvar on the client called cl_cheating which defaults to a value of 0
then, cheat developers can just change its value to 1 to identify the client as non-legit
when a client with a cl_cheating value of 1 joins a vac-secured server, they will be promptly vac-banned
Update anti-cheat - perhaps Hardware/IP tracking?
Replace anti-cheat - perhaps Hardware/IP tracking?
Phone verification
Captcha verification
Remove -textmode
Enhance community power, perhaps after so many votekicks - a cooldown ban period?
these are out of scope of this issue, which is focused on the -textmode launch option
@compromisable, you were warned and have chosen to digress into name calling again. This has earned you a one day timeout.
@compromisable, you were warned and have chosen to digress into name calling again. This has earned you a one day timeout.
Thats what should be happening to the bots.
@compromisable, you were warned and have chosen to digress into name calling again. This has earned you a one day timeout.
Thats what should be happening to the bots.
personally, i would prefer the bots to be gone for longer than a day
Let's explain why each one of the solutions you proposed don't work:
- Update anti-cheat
Easier said than done, Valve has trouble doing it with CS2, which has higher priority than TF2
perhaps Hardware/IP tracking?
- You can spoof hardware, or just change it
- Dynamic IPs
- Replace anti-cheat
With what?
- Phone verification
Not effective, you can buy cheap phone numbers on dark markets for a few cents each, and use Android emulators. Also, do you really want to have to get your phone each time you join a casual server?
- Captcha verification
There are also services that allow you to hire people to solve CAPTCHAs for a few cents per thousand. And same thing as with phone verification, do you really want to have to solve a CAPTCHA each time you join a casual server?
- Remove -textmode
I think I've talked about this one enough already, and this is the only one you should be mentioning here, as the issue is about removing -textmode.
- Enhance community power, perhaps after so many votekicks - a cooldown ban period
Do you know how many Steam accounts botters can create in a single day? Most of them are thrown away after a week when they longer have access to the Hitman's Heatmaker trial from the Mann Co. store. Perhaps making Steam accounts harder to create would be a good place to start, but solving spam (because that's basically the same problem) is easier said than done.
I believe that the Overwatch system should be implemented, at least in Competitive mode for testing purposes. I know many would be against my idea because it is considered a dead mode, but compared to Casual mode, Competitive requires certain criteria for access, which would be ideal for identifying and ban cheaters, helping to clean up this mode.
As for bots, which btw, I have not encountered in Competitive mode (at least in my region), it would be even harder for them to access, and it could even become the best way to play without the influence of bots. (although this is just my opinion, the Competitive Matchmaking Pass should be removed if the Overwatch system were to be implemented)
Surprisingly, at least in the US-WEST, I rarely encounter cheaters in Competitive mode, unlike in Casual mode, where cheaters are becoming increasingly common.
A port of CS:GO's trust factor system could also be a good addition.
@compromisable You've been told multiple times that your behavior is inappropriate and that your hostility isn't welcome here. While I don't work at Valve (yet, my dms are open Gaben) and cannot ban you from these discussions, I would strongly recommend that you tone down the harsh remarks before someone who can ban you gets sick of it.
Anyways, I believe a mix of both CS:GO's Trust Factor, the neural network powered bot detector I discussed in #3477 and Overwatch could work to remove a sizable portion of bots, enough to discourage any future bot hosters and to make casual semi playable, while still chipping away at the existing bot population.