PazerOP / tf2_bot_detector

Automatically detects and votekicks cheaters/bots in TF2 casual.
MIT License
400 stars 55 forks source link

Auto kick anyone with the name OMEGATRONIC, or a known omegatronic bot #392

Closed MagnusStrom closed 2 years ago

MagnusStrom commented 2 years ago

A clear and concise description of what the problem is.

Omegatronic bots are rampant. I haven't seen more bots than Omegatronics. These bots join your server, chatspam, votekick(which sometimes works even), and overall are just annoying. I've also noticed even with this bot detector enabled, OMEGATRONIC bots are not marked as cheaters.

Describe the solution you'd like

Detecting all the bots with the name OMEGATRONIC, or bots with the name that also say the chat messages from the bot script, and adding them to the bot list, and votekicking/mentioning them, would be super helpful.

Describe alternatives you've considered

Sure, you can just find them and kick them easily. But it's annoying. This will get it done quickly. The bot host is also super fucking cheeky His youtube, and some players are dumb and will listen to his votekicks.

Additional context

Omegatronic host youtube channel

Tiagoquix commented 2 years ago

Official lists and rules are not currently updated with community contributions.

The official list that is included with the program is maintained by Pazer exclusively. No user submissions are accepted at this time and it is unlikely that they will be in the future. While this approach this may seem limiting, it is to avoid false positives and to maintain the integrity of the project as a whole.

You can make your own list via customizations, or mark each bot manually (a more user-friendly method).

From my point of view, "OMEGATRONIC" is a common name that can be used by any user, which can already be considered a false positive. The official list could even include avatar identification, but that does not seem to be an issue here.

MagnusStrom commented 2 years ago

Official lists and rules are not currently updated with community contributions.

The official list that is included with the program is maintained by Pazer exclusively. No user submissions are accepted at this time and it is unlikely that they will be in the future. While this approach this may seem limiting, it is to avoid false positives and to maintain the integrity of the project as a whole.

You can make your own list via customizations, or mark each bot manually (a more user-friendly method).

From my point of view, "OMEGATRONIC" is a common name that can be used by any user, which can already be considered a false positive. The official list could even include avatar identification, but that does not seem to be an issue here.

Find one real player called OMEGATRONIC and get back to me.

All OMEGATRONIC bots have the same profile pictures anyway, But a pfp checker could be lots of bloatware.

If he only adds the bots himself, He should open for a log of omegatronic submissions, and add them all to the list.

Tiagoquix commented 2 years ago

Find one real player called OMEGATRONIC and get back to me.

https://steamcommunity.com/id/nowr

But a pfp checker could be lots of bloatware.

TF2 BD has it included natively.

UAVXP commented 2 years ago

https://steamcommunity.com/id/nowr

What are the people in their minds would call themselves by the bot names? What the hell is this world. I think he deserves to be in a ban list just because of that name

MagnusStrom commented 2 years ago

Find one real player called OMEGATRONIC and get back to me.

https://steamcommunity.com/id/nowr

Thats 0megatronic

MagnusStrom commented 2 years ago

Closing because its helpless anyways, and if the 3 people with the name got into the game there would be confusion. I'll just grab steamids of bots

ClusterConsultant commented 2 years ago

I just straight up forgot about this issue.

Here's the deal:

Official rules do take submissions, I gently maintain that. I don't play as much as I used to so I am not in touch with what is hot. So if a PR for a rule comes in I ask around if it's a genuine bot. I've considered created a guide and pr template for how I would want this to happen but there seems to be little to no interest.

In regard to the actual topic here, OMEGATRONIC bots are not trivial to create rules for. Their actual in game names these days are typically a levenshtein distance of 2 away from OMEGATRONIC via random character insertion. I have implemented rules for a levenshtein distance of 1 but it is not amazing and each increase is exponentially more complex. I don't have time to implement it in cpp (I am not a cpp dev) so there just isn't a reasonable rule for them. Try the trusted playerlist, the vast majority are already in it unless there is a new round no one has gotten to marking.

Lastly, the stance of this project on people playing stupid games is that they win stupid prizes. However, due to a number of complaints and as a way to increase trust, transient marks are a thing and they should be used for most rules. Especially name based ones.

MagnusStrom commented 2 years ago

That's understood. I do rememmber that OMEGATRONIC is a little fucker who puts the characters in. The main reason I made this is because OMEGATRONIC bots were not picked up. I'll just do my steamID scanning, and make a list. Is there a feature for quickly copying ids?

ClusterConsultant commented 2 years ago

Is there a feature for quickly copying ids?

I don't understand the ask here. Copying ids from where? To where? SteamID scanning? I strongly recommend against trying to discern legitimacy from a SteamID alone.

MagnusStrom commented 2 years ago

Is there a feature for quickly copying ids?

I don't understand the ask here. Copying ids from where? To where? SteamID scanning? I strongly recommend against trying to discern legitimacy from a SteamID alone.

I can tell an omegatronic bot from a non. It would be nice to open the GUI, find the bot name in the player list, right click, an clicking "copy steamID"

ClusterConsultant commented 2 years ago

That has been a feature for quite some time. And if you are already doing that why not just mark them?

https://github.com/PazerOP/tf2_bot_detector#using-tf2bd

2l47 commented 2 years ago

These rules are a month old now, but should catch around 500 variants of the name. You'll have to rename the file extension to .json; GitHub wouldn't let me attach it unless it was a .txt.

rules.outdated_OMEGATRONIC.json.txt

UAVXP commented 2 years ago

should catch around 500 variants of the name

Oh god, why You can just target a special characters in their names. A few lines instead of 500...

2l47 commented 2 years ago

You can just target a special characters in their names. A few lines instead of 500...

Because TF2BD only has support for a list of regex patterns to match against a name. As of yet, nobody has written code that allows for rules which check for a list of inserted characters.

UAVXP commented 2 years ago

You can just target a special characters in their names. A few lines instead of 500...

nobody has written code that allows for rules which check for a list of inserted characters.

You don't need regex, just write down most of the Unicode chars that OMEGAs are using down in list. That's what I did in my set of rules, and they're working pretty fine, I haven't seen one false positive yet https://github.com/PazerOP/tf2_bot_detector/blob/70a0f6a2dfec5248193b757c8349f0ea05363ee7/staging/cfg/rules.official.json#L382

2l47 commented 2 years ago

just write down most of the Unicode chars that OMEGAs are using down in list

The issue with doing so is that legitimate Unicode characters can be used in names, as well as inserted randomly by bots. A list of some characters previously observed being used by bots can be found here.

Some characters are generally not found in names, such as bidirectional text control characters that allow for the mixing of left-to-right and right-to-left scripts. At least two of these characters are already in the official rules. However, other Unicode characters, such as those from other languages, are used by real people, but can also be used in bot names. As a result, a more complex match - including parts of the bot's name - is necessary to avoid marking real people whose names are simply in a different language.