Rust Please Close Cheat Engine Before Starting The Game

Posted on

Wondering how you can fix ‘Steam Auth Timeout’ error in Rust?

It’s rare to find such a liberating and enjoyable sandbox game like Rust. Gathering resources and scamming younger kids, eventually killing them, is an oddly satisfying and fun part of the game.

Rust won't run, Anti Cheat engine issue? Question My Rust game won't launch because the Anti Cheat engine is causing some sort of unknown or unexpected error, I've seen multiple posts on the interwebs in the past 48 hours with people having the same issue, can anyone shed some light on the subject? Try find kprocesshacker.sys in the registry and delete all you can find about this or (a lil better solution) start processhacker - goto services tab in processhacker - find kprocesshacker.sys sys and stop that driver. Now you have to close processhacker2 because its no longer really working it should now possible to start the game. The echoes could probably be done with a memory editor (Cheat Engine would be my recommendation). 0 link: Dudleydino Posts: 7 7/3/2014: Thanks, I'll try Cheat Engine. I've used it before for flash games, hopefully it'll work here. 0 link: flux20 Posts: 1 7/3/2014: I used cheat engine and it's successful for changing echoes. This means they are detecting the Cheat Engine string or the debugger attaching. These are the first things to try if the game doesn't have a commercial anticheat. The first and easiest steps to attempt to bypass anticheat are: Use VEH Debugger in Cheat Engine (it's in options under Debugger) Try Undetected Cheat Engine; Try Cheat Engine.

But whenever you launch into the game, you’re greeted by a ‘Steam Auth Timeout’ error. What is this, and why does it happen? Well, there’re a lot of reasons for this, and we’ll go through all of them one by one.

Rust is an online multiplayer game and that implies there are is a high possibility that different players may be utilizing Rust Cheats to win the game through unreasonable methods. There can be a lot of potential outcomes to utilize Rust Hacks in the game against you and you probably won't understand it from the start. Try find kprocesshacker.sys in the registry and delete all you can find about this or (a lil better solution) start processhacker - goto services tab in processhacker - find kprocesshacker.sys sys and stop that driver. Now you have to close processhacker2 because its no longer really working it should now possible to start the game.

In this article, we’ve also compiled a list of methods that we’ve found online, from Steam’s support boards and other users who’ve submitted their personal solutions. Here’s how you can fix ‘Steam Auth Timeout’ error in Rust.

Let’s get started!

1. Check Rust’s Server Status.

First off, make sure to check Rust’s server status before anything else. There’s a lot of minimal but also major things you can do to your settings to try and fix this issue. Before proceeding with any of those changes, checking for Rust’s server status can save you a lot of time.

By checking for the server status, you’ll be able to make sure that Rust’s server is not down or under maintenance. If the servers are indeed down, then there’s nothing you can do on your side to fix this problem. Unfortunately, you’ll have to wait until the servers are fixed.

You can check for Rust’s server status in a variety of places, like an unofficial Steam Twitter page. However, our favorite place to check for server issues is on Downdetector. Not only are their servers specifically for Rust, but the feedback of this website is pretty quick.

Downdetector is a community-driven website where users submit feedback or reports whenever they have problems with a certain server. This way, since users won’t hesitate to report a problem, you’ll be able to see the number of reports displayed on their website every hour.

2. Join Or Leave Steam Beta.

The Steam beta program is a pretty cool feature that not a lot of people know about. By participating in the beta, you’ll be exposed to new features that have not been released to the general public.

Rust Please Close Cheat Engine Before Starting The Game Pc

Additionally, if you’re currently a part of the beta team then running into Steam-related errors like this is pretty common. Joining the steam beta, however, can also fix this server problem in the case that your Steam needs a refresh on network settings.

Here’s how you can join or leave Steam beta:

  1. First, open up the Steam program on your computer and click on the Steam button at the top-left corner of your screen.
  2. From there, navigate over to Settings and a new window should open up.
  3. By default, you’ll find yourself on the Account tab, if you aren’t there then click on Account from the list of settings to the left.
  1. Now, look for Beta participation and click Change. Either join or leave the beta program and click OK.

Steam will restart after these changes have taken effect. After restarting the program, go ahead and try to run Rust. Hopefully this method will help you fix ‘Steam Auth Timeout’ error in Rust.

3. Verify Integrity Of Game Files.

A really cool feature that was unique to Steam for a certain point is being able to verify the integrity of your game files. This works by letting Steam compare your local game files with the game files on their server.

All your files are compared one by one, and any missing or corrupted files are replaced and downloaded automatically from Steam’s servers. Since Rust is mostly played online, it’s important to have the latest authentic version of the game on your computer.

Here’s how you can verify the integrity of your game files.

  1. Start by opening up the Steam app again and then head to the Library section.
  2. A list of all the games you own on your Steam account should be displayed on the left side of your screen. Look for and right-click on Rust and then select Properties.
  1. That should open a window on your screen. Navigate to Local Files and click on Verify integrity of game files.

The process is pretty automatic, so let Steam do its thing and it’ll download any necessary missing files back to your computer. Once that’s done, go ahead and run Rust to see if the issue is still there.

4. Change Your Download Region.

This might pass the minds of most Steam users, but every time you download a game from Steam you’re actually accessing a server that’s physically close to you. This greatly decreases the download time than if you were in the Philippines and downloaded from America.

However, sometimes these servers are either under maintenance or have a compromised connection to your computer. To mitigate this, we’ll be relocating the server you’re downloading from with the next best thing.

Here’s how you can change your download region:

  1. Go ahead and open up the Steam app and go to the Steam button at the top-left corner of your screen.
  2. Now, move your mouse down and click on Settings then navigate to Downloads.
  1. Once you’re there, look for DownloadRegion and change the region to another location that’s close to you.

Before you click on OK and exit the setting, go ahead and proceed to the next method to figure out what else you can do on the ‘Download’ tab.

5. Clear Steam’s Download Cache.

Even for those of you familiar with how Steam downloads, the cache files made by Steam can still be quite a mystery. To shed light on the details, Steam’s download cache is a group of files that are incompletely downloaded or will be used to complete a download in the future.

Whenever you download games, it’s inevitable for there to be a single file that’s megabytes heavy. For this exact purpose, Steam keeps a cache file of the incomplete file until the file has been fully downloaded. Clearing the cache can sometimes help iron out any errors or files that mess with your online Rust experience.

Here’s how you can clear Steam’s download cache:

  1. If you’re still on the same page as the previous method, then go ahead and click on Clear Download Cache and confirm by clicking on OK.
  2. For those of you who are lost, don’t worry. Open up the Steam app and click on the Steam button so you can get to the necessary settings. You’ll find the button at the top-left corner of the Steam window.
  3. Next, move your mouse down and click on Settings and then navigate to the Downloads tab.
  1. Finally, click on Clear Download Cache and select OK.

With that out of the way, you can either verify your game files again or try to run Rust. We suggest verifying your files for good measure, but it shouldn’t be necessary.

6. Repair Your Anti-Cheat Engine.

Familiar with VAC? CS:GO, Dota, and other triple-A games are usually protected by VAC, an anti-cheat software. For Rust, this should be protected under the Easy Anti-Cheat engine, which is another popular alternative.

In this method, we’ll be repairing your anti-cheat engine in case there’s something wrong with the current version installed on your computer. Running an anti-cheat engine that isn’t compatible with the latest version can cause connection issues since older anti-cheat versions are susceptible to hacks.

Here’s how you can repair Rust’s Easy Anti-Cheat engine.

  1. First, open up the Start menu and type in ‘This PC’ to open up the File Explorer.
  2. Once you’re there, navigate to the directory displayed below. If you installed Rust elsewhere, navigate to that folder instead.

C:Program Files (x86)Steamsteamappscommon

  1. You should be on a folder with a list of all currently installed Steam games on your computer. Open up the Rust folder and look for and navigate to the EasyAntiCheat folder.
  2. From there, look for the EasyAntiCheat_Setup application and run it by double-clicking the program.
  1. When you open the EasyAntiCheat program, click on Repair service and proceed through the prompts to finish repairing your anti-cheat engine.

If your anti-cheat engine did repair anything on your computer, this should have the biggest chance of reconnecting you to Rust. Open up the game and see if the issue persists.

Unfortunately, that about ends this article with all the necessary methods available. As a last resort, you can always try to reinstall Steam. However, it does take a while to transfer your games back and forth, especially if you have a lot of games.

We recommend waiting this one out for a couple of days or by searching through the internet for users who are experiencing a similar problem. If you’ve exhausted all the methods above with no success, our strongest hunch is that there must be a problem with Steam’s servers.

Now that you’ve reached the end of this article, we hope to have helped you fix ‘Steam Auth Timeout’ error in Rust. If you have any questions, feel free to leave us a comment down below.

If this guide helped you, please share it. 🙂

Introduction to Lua using Cheat Engine: Beginner to Basic Script Writer! May 25, 2017

So you want to get started learning Lua and creating scripts, huh? Well you’ve come to the right place, so LET’S DO IT! =)

To note, this article will soon take the form of a video, so if that’s your preferred medium, then just know that’s coming soon and I’ll populate this article with it once it’s done.

I’ll spare you the details about what Lua is and how to generically learn the language in 0.013 seconds, and instead we’ll learn by doing. In Cheat Engine (aka CE). Which is an incredibly powerful tool–not only for purposes of hacking games and reversing software, but also for learning everything from Assembly, to reverse engineering concepts, to Lua, and much more.

If you don’t have Cheat Engine, go install it now (I won’t be blamed if you install bundled offers, so READ THE INSTALLATION PROMPTS CAREFULLY) so you can follow along. You can run all of the code examples I provide directly in Cheat Engine, but don’t just copy them over because CE won’t recognize some of the copied characters! If you do copy/paste, look for the characters you have to fill in.

Hello, World

You knew it was coming, but we have to do it! Let’s make CE’s Lua Engine output “Hello, World”. First, open Cheat Engine. Then, click on Table, then Show Cheat Table Lua Script. You should now see this window:

Now, enter the following:

print(“Hello, World”)

Then click the Execute script button. You should now see the Lua Engine window open with “Hello, World” in the output section, like so:

Success! You just ran one of Lua’s native functions, print(). If you want exact text to be printed, use quotes (double ” or single ‘ quotes work). You can also print numbers and all kinds of other stuff like the results of calculations (e.g. print(1 + 2)) and so on. Try playing around with print() to see what else you can do! Can you figure out what this does? (Don’t worry if not; I’ll fully explain it in a little bit.)

print(string.upper(string.format(“%x”, 1 + 0xA)))

As an aside, for those of you who want to dive in a bit deeper right off the bat, click here to check out other native Lua functions.

For those of you who are beginners, functions are just blocks of code that do something for you. Sometimes, a function will just perform a task where you don’t expect anything as a result. Other times, a function needs some data with which to perform its task(s). The print() function takes arguments you provide, then does its magic. If you just ran print(), it wouldn’t do anything because print() is like, “I mean…you didn’t tell me WHAT to print, so I can’t do anything, dawgs.”

More on that in a bit, but let’s shift gears and talk about variables.

Variables

Put simply, variables are just things you store values in (numbers, characters, words, functions, other variables, etc., etc.). First, you think of a name for your variable, then you typically assign it a value. There are rules for how you can name your variables, so you might want to check them out to prevent making a naming error that might confuse you later.

Using our “Hello, World” example from above, let’s modify it slightly to print the same result to the screen, except from a variable instead of directly:

theNameOfYourVariable = “Hello, World”
print(theNameOfYourVariable)

Notice that I didn’t put quotes around the variable name I passed through print(). If I did, then you would have seen that exact variable name printed to the screen as a string of text. Try it for yourself and see:

theNameOfYourVariable = “Hello, World”
print(“theNameOfYourVariable”)

Now, if you were to really want this as part of a program or script, you’d probably want to make your variable name more reflective of what it’s storing. Take these examples for instance. Can you figure out what each of them do?

Example 1: String

helloWorld = “Hello, World”
print(helloWorld)

Example 2: Math

addTwoNumbers = 2 + 2
print(addTwoNumbers)

Example 3: More Math and More Variable Names

numberOne = 1000
numberTwo = 1674
numberThree = 2
threeNumberMath = (numberOne + numberTwo) / numberThree
print(threeNumberMath)

(Can you figure out how to remove that trailing .0?)

Example 4: Tables

table_iLoveCheatEngine = {“I”, “love”, “Cheat”, “Engine”, “!”}
print(table_iLoveCheatEngine[1] .. ” ” .. table_iLoveCheatEngine[2] .. ” ” ..
table_iLoveCheatEngine[3] .. ” ” .. table_iLoveCheatEngine[4] ..
table_iLoveCheatEngine[5])

(Don’t worry if you don’t know what tables are; however, if you want to look into them, here you go!)

Example 5: Functions

func_iLoveCheatEngine =
function (a, b, c, d, e)
concatStuffs = a .. ” ” .. b .. ” ” .. c .. ” ” .. d .. e
return concatStuffs
end
print(func_iLoveCheatEngine(“I”, “love”, “Cheat”, “Engine”, “!”))

(We’re diving into functions next, so come back to this example after that and see if you can figure out what’s going on.)

Example 6: Nil

local emptyVariable
print(emptyVariable)

(Not assigning a value to a variable means that its value will be “nil”, basically meaning there’s nothing in it. Prefixing a variable name with “local” has to do with something called “scope.” Don’t worry about it for the time being, but just be aware that you’ll likely see it used. For those who DO want to worry about it now, here you go.)

The point of those examples is to show that you can store just about anything you want in variables. You might decide to make significantly shorter variable names, or find more elegant ways to write a function, etc., etc., etc. In Lua, there are many ways to achieve the same thing, so just have fun!

Functions

Up to this point, we’ve used a function (print()) and we’ve written our own function (example 5 above). For this section, we’re only going to focus on using functions, so if you want to delve deeper into creating your own functions, take a look at this tutorial.

Again, functions are just blocks of code that do something. Just like Lua has a bunch of its own functions (like print()), so does Cheat Engine! You can find most of them here on the CE wiki; however, it isn’t updated as frequently as CE’s development pace, so you can check out celua.txt on the official CE Github repository for ALL the goodies (like executeCode()).

Remember a little bit ago when I asked if you could figure out what this does?

print(string.upper(string.format(“%x”, 1 + 0xA)))

There’s a lot going on there, so let me break it down another way.

numOne = 1
numTwo = 0xA
toHex = string.format(“%x”, numOne + numTwo)
toUpperCase = string.upper(toHex)
print(toUpperCase)

There, I’ve assigned 4 variables:

numOne contains the number 1.

numTwo contains the hexadecimal number A (the 0x prefix lets Lua know that you intend for that number to be treated as a hexadecimal number).

toHex makes use of another Lua function called string.format() through which we’re passing two arguments: “%x”, which tells Lua to treat your other arguments as hexadecimal values (you can read about other formats here), and the variables numOne + numTwo.

toUpperCase is using yet another Lua function called string.upper(), which converts lower-case characters to upper-case. For our use, we’re passing it the variable toHex, which is taking the result of our string.format() statement and upper-casing the result if it’s A-F. This is just a matter of personal preference; I hate seeing hexadecimal values represented in lower-case. 😉

Finally, we take all of that and print the result to the screen. Now, remember when I said there are multiple ways to do things in Lua? Those are two different representations of making the same thing happen. But there’s a shorthand way to get the same results still by making one little change to toHex and removing the toUpperCase variable and its assignment altogether! See if you can spot the difference:

print(string.format(“%X”, 1 + 0xA))

Or:

numOne = 1
numTwo = 0xA
toHex = string.format(“%X”, numOne + numTwo)
print(toHex)

There’s no right way here, but there are more readable and sometimes performant ways. It’s just whatever you choose to do. Sometimes, less code means less time spent writing that code, but more time trying to go back two months later and figure out what exactly that code does. Other times, a little more time spent writing or refactoring your code can spare you a headache later. That, or just add a comment about what your code is doing. Here’s how you make comments in Lua, which are essentially lines that are ignored by Lua, but that you can read (copying/pasting single-line comments from here into Cheat Engine won’t work, so I’ll only be using the multi-line format for code examples from here, forward):

‐‐This is a one-line comment. Write whatever you want on this line!
‐‐You can do this for as many lines as you like; however, there’s the next option.

‐‐[[
This is a multi-line comment, so we can do this all day and
it’s just one comment. This keeps us from having to keep adding
the ‐‐ to the beginning of every line we want to specify as a
comment. w00t!
]]

We’ve learned a lot here so far!

A. How to print a string. For those of you who are new to this concept, the reason it’s called a string is because it’s a string, or a strand, of individual characters grouped together. Imagine you’re making a necklace for your mother that’s going to have her name on it. The necklace is like a string that you’ll slide individual letters onto. So a string is just a collection of characters. There’s more to it all, but that’s the basic gist.

B. How to create variables and assign values to them.

C. How to do math with Lua, how to specify a value’s format, and how to print that result.

D. How to write comments.

E. How to use functions: print(), string.upper(), and string.format().

Rust Please Close Cheat Engine Before Starting The Game Free

F. How to write in camelCase!

Rust Please Close Cheat Engine Before Starting The Game

This is great, because it means we can now start using Lua functions that are native to Cheat Engine–functions like readByte(), writeInteger(), playSound(), pause(), unpause(), and tons more. So with that said, let’s dive into Cheat Engine and roll through an example of how you could use what you now know about Lua to create a script!

Creating a Lua Script in CE

Everyone should be able to follow along from here regardless of their exposure to CE, but if you have no idea how to use Cheat Engine in even the most basic of ways (like how to scan for values), then you might want check out my Cheat Engine Tutorial Series on YouTube!

First, let’s consider a scenario in game where we have a player that has health. The player’s maximum health value is 100. Let’s say that player isn’t at full health, so their current health is at 43. It’s not uncommon that these two values are stored in two memory addresses close in distance.

So, one memory address would have the player’s maximum health value, and another address would have their current health value. Then, you have instructions that look at the values in both addresses so that it knows what to do in various situations. For instance, say you pick up a health vial that gives you 20 points of health. Well, if you’re at 99 of 100, then the game will know not to take your health up to 119. It knows this by saying something like, “Well, I see the player has 99 health in that memory address, and I see the max health that player should be capable of having is 100 in that other memory address, so I’ll only give the player 1 point of health from that vial.”

With that in mind, a very common cheat to create is to find those two memory addresses, then the instruction that updates the player’s health when they lose health, and finally make it to where instead of taking away health, you make the player’s current health equal maximum health. We’re not going to worry about finding that instruction for the time being, though. That’ll be in a future tutorial.

What we want to do now is create a Lua script that will make the player’s current health equal their max health value. Let’s loosely visualize this by creating those variables, assigning values, and simulating the cheat (this is all part of something called “pseudocode,” which is noting small bits of what you want your code to do, then writing actual code to realize those bits).

‐‐[[Get current health and maximum health values]]
maxHealth = 100
currentHealth = 43

‐‐[[Print the value of current health so we can see it before it’s changed]]
print(currentHealth)

‐‐[[Make current health equal maximum health]]
currentHealth = maxHealth

‐‐[[Print current health with its new value so we can verify]]
print(currentHealth)

If you run that in CE, your results should look as follows (I used single-comment lines initially, as you’ll note):

Let’s now apply this to a game! I’ll use Terraria as an example. If you’re following along, go ahead and open Terraria’s process with CE.

First, let’s find current player health. I’m starting with current health being full, then scanning for exact value changes after taking damage. Here’s the result:

Then, view that memory region to see if something resembling other values like max health are anywhere nearby (using the data/structure dissector is another option, but I’ll cover that in another tutorial). To do that, right-click on the value you found, then click Browse this memory region. Once that window pops up, right-click on any of the bytes in the bottom pane of the memory viewer (the top pane is the disassembler), hover over Display Type, then click 4 Byte decimal. Now scroll up a tiny bit to see values above and below the current health value.

Because I’m familiar with the game, I know certain numbers I’m looking for. As you can see, the max health value I’m interested in is in very close proximity to my current health value.

Now let’s make note of the memory addresses those values are in. You can right-click on any value there in the memory viewer and select Add this address to the list. It’s also sometimes worth bearing in mind the distance (aka the offset) between the current health and max health addresses. In the right scenario, it’s a great way to reference one memory address from another that you find.

We now have what we need to create our script! We’ll be using a couple of CE’s Lua functions as well. Let’s start by looking at the value type of our values.

As you can see, they’re 4 bytes, so we can use CE’s functions that are related to integers. (Technically speaking, a float is a 4-byte value as well, but that’s part of a lesson for another day.) Click here to see some of CE’s memory-related functions. We’re going to use readInteger() and writeInteger(). I’m going to use comments in the script below to explain what’s going on throughout it.

‐‐[[
Store the memory address for max health
]]Game
maxHealthAddress = 0x20B496E8

‐‐[[
Store the memory address for current health, which is 0x4 bytes
away from the max health address. That means we can specify
current health as being maxHealthAddress – 0x4 (resulting in
0x004587C0 being the value in currentHealthAddress)
Note: 0x4 is the same as saying 0x00000004 in this case
]]
currentHealthAddress = maxHealthAddress + 0x4

‐‐[[
Store the value found inside the max health memory address
]]
maxHealthValue = readInteger(maxHealthAddress)

‐‐[[
Store the value found inside the current health memory address
]]
currentHealthValue = readInteger(currentHealthAddress)

‐‐[[
Print both values
]]
print(“Max health is: ” .. maxHealthValue)
print(“Current health is: ” .. currentHealthValue)

‐‐[[
Write the value from the max health memory address
to the current health memory address
]]
writeInteger(currentHealthAddress, maxHealthValue)

‐‐[[
Refresh the value of health stored in the currentHealthValue variable
]]
currentHealthValue = readInteger(currentHealthAddress)

‐‐[[
Print the new value residing in the current health memory address
]]
print(“Current health is now ” .. currentHealthValue)

After running that script, voila! The player’s current health is now the same value as max health, and the Lua Engine output reflects our change (click/tap the image for full size).

Now, unfortunately, this isn’t really a reusable script due to the fact that the memory addresses will change after the game is restarted (and if you followed along, your memory addresses were most likely different from mine). That’s something I’ll focus on in another tutorial, but for the time being, this script touches on most of the points I wanted to touch on.

You now know just enough to be somewhat dangerous. Go looking through other CE Lua scripts out there, and don’t freak out if you don’t know something you see! It takes time.

Also of note, you may run across people saying that, comparatively, a Lua script is slower than an Assembly script; however, don’t worry about that. Technically, it’s true, but most of you will never, ever, ever get to a point where you need to worry about eeking out performance on that level. So play around, have fun, and get your learn on! =)