Jump to content

Announcing Sim-Monsters Anti Cheat


DannyMackey

Recommended Posts

Sim-Monsters has been a community built around competing online in Rigs of Rods.  Being as Rigs of Rods is a vehicle simulator and not a "video game" it hasn't always supported competitive gaming features.  However with race timer support, there is an opportunity for more than just timed races.  Using a hash generated by Rigs of Rods when a lap time is sent, I can verify if a truck file has been edited in any way.  If you don't know what a hash is, let me explain.  A hashing algorithm is a function that generates a fixed length result (the hash) from a given input.  Basically you supply some input, say the text from a truck file, and the algorithm produces a "random" combination of letters and numbers.  You can play with it yourself here: https://gchq.github.io/CyberChef/#recipe=SHA1()

So what purpose does this serve?

Let's see what the contents of a truck file look like when hashed:

ccny0ju.png

Okay, but what if we made a change to the truck file, something inconsequential like renaming the truck.

mcxEBCp.png

The output is unrecognizable from the previous without even doing something like adjusting the suspension settings.

Now how does this relate to an "anti cheat"?  Well whenever you record a time on a track with a timer, there is information sent to the Rigs of Rods website so it can be posted on their list of race times (https://forum.rigsofrods.org/multiplayer/races).  Along with the lap time, the truck you used, the track, and some other bits of data, a hash for the .truck file and a hash for the race script file are sent.

For anyone that competed in the fun run I hosted a few weeks ago, you will remember the RoR API Swapping Tool I had you all use.  By using the API Swapping Tool, this information was sent to a server I hosted and was comparing the hashes that everyone was sending to hashes made by the server, thereby allowing me to verify that no one had changed their truck files in any way.  Don't worry, no one was cheating by the way.  However this provides a way to ensure that no one is editing their truck.

How does this work from a league owner's perspective?

As a league owner, you are in charge of what your drivers can and cannot do to their trucks and as such you would be approving or denying trucks before drivers can use them.  All you would need to do is take a copy of the exact truck file you approve for a given driver and have it uploaded to the server that I am hosting.  If at any time the server reports a truck file as being modified it would be on the judgment of the league owner to decide what they want to do, whether its a ban or a warning.  Also keep in mind that if you want to allow for a change to a truck, that the exact truck file for that change needs to replace the file hosted on the server, otherwise the server will still think the previous truck file is what it should be checking against.

How does this work from a competitor's perspective?

You have to be very aware of what you do to your truck file.  If you so much as remove a prop to gain some FPS or rename the truck, the server will recognize that as a change to the truck file.  There is no way for the server to know what you did to a truck file.  If you have a suspension setup for racing and want to change it for freestyle, you better be sure that the league owner knows what you are doing or you will be detected as modifying your truck file.

Remember, there is no way to see how you changed your truck file, we can only see that you did something to it.  Because of this, if you do something that isn't technically cheating, there is no way for a league owner or official to know if you are or are not cheating.

What does everyone need to have for this to work?

Everyone will need to be using the RoR API Swapping Tool I have been working on.  I will get a final version released on the site for easy downloading.  Anyone who used it for the test fun run I held can attest that it is easy to use and understand, though I will be sure to make it as easy to use as possible.

What does this mean going forward?

Currently, the server I am hosting is not running at all times, however I could commit to hosting my server all the time for anyone to make use of.  Currently, I have the results post directly into a Google Sheets so that everyone can see when times are sent and when modified trucks are detected, but I may build it into a more robust system.

Moreover, this means we can better insure the integrity of our events and leagues and also explore more options for what options we allow or restrict for events and leagues.  Events with modified engines, stock settings, or even event specific settings could be used without the worry that people may just ignore what rules are put in place.

The plan for this is to pilot it in the upcoming TMB Truck Fest special event and continue using it for NAMT.  After NAMT, I will look into building the server up so it can be used for other leagues without needing me to directly control it.

  • Like 7
Link to comment
Share on other sites

  • DannyMackey changed the title to Announcing Sim-Monsters Anti Cheat
  • 3 weeks later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...