An easy-to-use generic trainer for Linux, written in Rust.

Overview

TuxTrain

crates.io Documentation

An easy-to-use generic trainer for Linux written in Rust, with basic memory hacking features. Use it for your games or applications where needed, there is also the tuxtraind daemon which will probe for processes and apply matching trainers automatically.

Screenshot

Why?

Well at first I just wanted to run Elden Ring in fullscreen above 60hz, and without an FPS lock- I know, weird thing to say in 2022. But then I thought well why not make a generic trainer, can't be too difficult, so here it is.

Trainers

Trainers in TuxTrain consist of very simple and easily expandable TOML files, see below example. Make sure you also read the example trainer for a breakdown of each setting.

name = "My Trainer"
version = '0.0.1'
process = "someprocess"
enable = true

[daemon]
delay = 2000 

[[feature]]
name = "FPS Unlock"
region = [7123045, 9124418]
pattern = "FF __ CB 00 7F __ __ D0"
replace = "__ __ 9F 5C __ 58 88 __"
enable = true 

[[feature]]
name = "Infinite Ammo"
region = [52030, 73204]
pattern = "FF 00 __ 00 __ __ 7F 58 D0"
replace = "__ __ __ __ 0B 4C __ __ __"
enable = true

Installation

Arch Linux

Will be distributed to Arch AUR soon, unless someone else does it before me.

Manually

Clone and run:

cargo install --path .

This will by default install tuxtrain and tuxtraind to ~/.cargo/bin. You can add this to your PATH if you wish.

Running TuxTrain

Since accessing and writing memory in foreign processes require certain permissions, TuxTrain must almost always run as root, unless you manually take ownership of the process.

This will run all trainers from /etc/tuxtrain/* once. Naturally, nothing will happen if the programs the trainers look for aren't running. Also, you can run a single trainer from /etc/tuxtrain/* or even specify a file, see --help for other options.

sudo tuxtrain

Running TuxTrain daemon

This will probe all trainers from /etc/tuxtrain/* every second, which is also the default rate. Once a program is discovered, the trainers matching it will execute. The same trainer will not run again while the program is still running, but once it is stopped and started again the same trainer will trigger.

sudo tuxtraind --rate 1000

Running as a service

This is probably what most people want, starting it automatically at boot and whenever you launch your favorite game or program, the matching trainer(s) are automatically applied. Even if you don't want something like "Infinite Ammo" all the time, you should instead disable this in the trainer, because having an FPS unlocker apply automatically is quite nice.

There is an example service here.

Contribute

Trainers

I urge anyone with useful hacks or features to contribute with trainers in order to have a good set of official trainers in this repository making sharing and redistribution a cakewalk. It could be almost anything; application automation, FPS unlockers, mouse acceleration patches, or even infinite ammo or infinite health etc. However, make no mistake- I completely abhor cheating, but as long as it's for singleplayer experiences it's perfectly OK.

Code

There may be important features missing for certain trainer operations, I am in no way an expert on trainers so if there's something important in which the current search/replace functionality cannot cover, please reach out!

DISCLAIMER

Memory hacking is fragile, I bear no responsibility if something either doesn't work or if something breaks. Thankfully memory is also temporary, so in most cases a simple restart of the program or a reboot will fix it.

Anti-Cheat

TuxTrain is always going to be intended for offline use, so this is never about cheating. But, if you intend to use the Elden Ring trainer, I ADVICE YOU TO NOT RUN THIS WITH EAC ENABLED. The same goes for any future trainer in this repository, whether it be EAC or BattleEye or something else.

I bear no responsibility whatsoever for any potential bans, remember this is memory hacking after all and it could be seen as nefarious even when it's not. In fact in this particular case, it kind of is nefarious (thanks to FromSoftware) since other players in Elden Ring are limited to 60 FPS.

TuxTrain is generic and it doesn't care what you are doing, therefor it does NOT care about something like EAC. I've not yet heard anyone neither try nor getting banned for unlocking their FPS, but I don't think you'd want to be the first either.

You might also like...
VVVVVV autosplitter for macOS and Linux

Vitellary Vitellary is a work-in-progress autosplitter for VVVVVV v2.3.6 on macOS and Linux systems. More notes here soon when it’s done. Thanks / See

Nostr Vanity Address Generator (Windows, Linux and macOS)

Nostr Vanity Address Generator CLI tool to generate vanity addresses for Nostr Usage Download the latest release built by GitHub CI from the releases

Usable, easy and safe pure-Rust crypto

orion About Orion is a cryptography library written in pure Rust. It aims to provide easy and usable crypto while trying to minimize the use of unsafe

Usable, easy and safe pure-Rust crypto

orion About Orion is a cryptography library written in pure Rust. It aims to provide easy and usable crypto while trying to minimize the use of unsafe

Simple rust library for NFT metadata w/ an easy server

NFT Server Simple rust lib for NFT Metadata, and a basic axum server for delivering it $ cargo build $ cargo clippy $ cargo run --bin example Usage I

a simple rust service for Scheduling commands execution on time basis, an easy alternative to cron

Tasker A Simple crate which provides a service and a configuration API for genrating commands based tasks ,on time basis. Installation build from sour

Easy Fiat-Shamirization using Meow
Easy Fiat-Shamirization using Meow

Magikitten A system for making public-coin protocols non-interactive, using Meow. This library is also heavily inspired by Merlin, and provides a simi

📦+🦀=♥️ A tool that helps wrap binary releases for easy distribution

Rustwrap A tool that helps wrap binary releases for easy distribution. Currently supporting: npm - npm install -g your-tool will make your binary your

A simple self-contained CLI tool that makes it easy to efficiently encrypt/decrypt your files.

cryptic A simple self-contained CLI tool that makes it easy to efficiently encrypt/decrypt your files. Contents Features Building Usage License Featur

Comments
  • Elden Ring Trainer Not Finding Patterns

    Elden Ring Trainer Not Finding Patterns

    Running tuxtrain after launching Elden Ring or as a daemon prior, either as my user or root results in:

    ==> Elden Ring Trainer 0.0.2 FPS Unlock - Error: Unable to find pattern. Hz Unlock - Error: Unable to find pattern. Custom Resolution - Error: Unable to find pattern. Aspect Ratio Unlock - Error: Unable to find pattern.

    opened by Larsenist 5
  • Add a trainer for Sekiro: Shadows Die Twice

    Add a trainer for Sekiro: Shadows Die Twice

    Trainer for Sekiro: Shadows Die Twice

    • Wrote a trainer for Sekiro which sets the framelock to 165Hz and the accompanying game speed fix.
    • Haven't tightened the regions yet since GOTY editions might be different

    Credits:

    Patterns taken from the following projects:

    opened by EQuioMaX 0
Releases(v0.0.4)
Owner
null
Simple to use CLI tool that makes encryption easy! Written in Rust.

?? eme: Encryption Made Easy an extremely simple AES-256 encryption tool written in Rust Usage: # To encrypt: eme --encrypt secret.png # To decrypt: e

null 5 Jan 3, 2023
Minimal flashloan borrower contracts with an extensible rust sdk to abstract wrapping generic onchain calls (similar to multicall3) with flashloans.

flashloan-rs • Minimal flashloan borrower contracts with an extensible rust sdk. Getting Started Flashloan-rs is published to crates.io as flashloan-r

White Noise 71 Apr 15, 2023
Simple node and rust script to achieve an easy to use bridge between rust and node.js

Node-Rust Bridge Simple rust and node.js script to achieve a bridge between them. Only 1 bridge can be initialized per rust program. But node.js can h

Pure 5 Apr 30, 2023
egui: an easy-to-use immediate mode GUI in Rust that runs on both web and native

?? egui: an easy-to-use GUI in pure Rust ?? Click to run the web demo ?? egui is a simple, fast, and highly portable immediate mode GUI library for Ru

Cronus Diamond 7 Aug 13, 2022
Easy to use cryptographic framework for data protection: secure messaging with forward secrecy and secure data storage. Has unified APIs across 14 platforms.

Themis provides strong, usable cryptography for busy people General purpose cryptographic library for storage and messaging for iOS (Swift, Obj-C), An

Cossack Labs 1.6k Dec 30, 2022
A modern, portable, easy to use crypto library.

Sodium is a new, easy-to-use software library for encryption, decryption, signatures, password hashing and more. It is a portable, cross-compilable, i

Frank Denis 10.7k Jan 3, 2023
An easy-to-use CLI tool to recover files from zfs snapshots

zfs-undelete an easy-to-use cli tool to recover files from zfs snapshots Usage Use zfs-undelete <file-to-restore>. Works for file and folders. By defa

null 9 Dec 15, 2022
MyCitadel Wallet app for Linux, Windows & MacOS desktop made with GTK+

MyCitadel Desktop Bitcoin, Lightning and RGB wallet MyCitadel is a wallet for bitcoin, digital assets and bitcoin finance (#BiFi) smart contracts. It

My Citadel 88 Jan 2, 2023
Clipboard Capture for Linux, it can capture the contents of clipboard (or primary selection)

Clipboard Capture for Linux, it can capture the contents of clipboard (or primary selection), as it changes when the program is running and print it to stdout. You can also choose to run some command on each capture.

Zero 5 Aug 6, 2022
Manage lockfiles in PKGBUILDs for upstreams that don't ship them, `updpkgsums` for dependency trees (Arch Linux tooling)

updlockfiles Manage lockfiles for packages that don't ship any upstream. Like updpkgsums but for 3rd party dependency trees. If you're not actively ma

null 11 Oct 27, 2022