https://github.com/codenametwister/gdanti-cheats
My version of anti-cheats adapted for godot as plugin
https://github.com/codenametwister/gdanti-cheats
anticheat godot
Last synced: 15 days ago
JSON representation
My version of anti-cheats adapted for godot as plugin
- Host: GitHub
- URL: https://github.com/codenametwister/gdanti-cheats
- Owner: CodeNameTwister
- License: other
- Created: 2024-10-23T07:23:27.000Z (6 months ago)
- Default Branch: master
- Last Pushed: 2025-04-01T18:38:50.000Z (21 days ago)
- Last Synced: 2025-04-01T19:42:13.633Z (21 days ago)
- Topics: anticheat, godot
- Language: GDScript
- Homepage:
- Size: 537 KB
- Stars: 3
- Watchers: 1
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
Awesome Lists containing this project
README
![]()
# GDAnti-Cheats
This is my version of anti-cheats adapted for [Godot Engine] as plugin,
this plugin makes it difficult to use cheats locally.[](https://godotengine.org/)  
## Table of contents
- [Description](#description)
- [Supported](#supported-)
- [Issues](#issues-)
- [Roadmap](#roadmap-)
- [License](#license-)## Description
This plugin was created to prevent any possible manipulation of values in programs or video games, such as increasing your character's stats in an unintended way.### Example

_Use case image_ [↑](#Example)## Supported [↑](#table-of-contents)
- **IntStream** _Integer values_
- **BoolStream** _Boolean Values_
- **FloatStream** _Float Values_
- **StringStream** _String Values_
- **VariantStream** _General purposes values_### Example
```gd
# my_logic_file.gd
## variable you want to protect
var secure_cash_wallet : IntStream = IntStream.new()func add_cash(value : int) -> void:
secure_cash_wallet.value += valuefunc get_total_cash() -> int:
return secure_cash_wallet.value
```## Issues [↑](#table-of-contents)
_Any bug or feature request you can make a Issue._- Sometimes values update too quickly as would happen with high scores, although I have optimized it to support updates of many variables, you may experience some issues with the flush technique at some point, for that you can **increase flush rate**.
## Flush rate updating [↑](#table-of-contents)
### Update flush single var
```gd
#demo_a.gd##Flush single var
var my_secure_var : IntStream = IntStream.new()
func _ready() -> void:
# If used in physics process, default 60 fps, in ≈5 seconds start flush the pointers data
my_secure_var.flush_rate = 60 * 5 #(default 30)
```
### Update flush for all
```gd
#demo_b.gd##Flush global update for all use singleton
func _ready() -> void:
# If used in physics process, default 60 fps, in ≈5 seconds start flush the pointers data
GDAntiCheats.FLUSH_RATE = 60 * 5 #(default 30)
```
## Also you can update the buffer if necessary [↑](#table-of-contents)
### Update buffer single var
```gd
#demo_c.gd##Buffer single var
var my_secure_var : IntStream = IntStream.new()
func _ready() -> void:
my_secure_var.buffer_size = 200 #(default 10)
```
### Update buffer for all
```gd
#demo_d.gd##Buffer global update for all use singleton
func _ready() -> void:
GDAntiCheats.BUFFER_SIZE = 200 #(default 10)
```## Roadmap [↑](#table-of-contents)
- ~~TrackerStream~~I am currently working on personal project and in the future I plan to create an anti-cheat API for online games, if you are interested you can follow me for future updates.
If you also expect me to create a native C++ module version of this project, please let me know.
## License [↑](#table-of-contents)
Copyrights (c) CodeNameTwister. See [LICENSE.md](LICENSE.md) for details.
[godot engine]: https://godotengine.org/