Skip to content

CodeNameTwister/GDAnti-Cheats

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GDAnti-Cheats

This is my version of anti-cheats adapted for Godot Engine as plugin, this plugin makes it difficult to use cheats locally.

Godot Engine 4.3 ToolHack Copyrights License

Table of contents

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

example Use case image

Supported

  • IntStream Integer values
  • BoolStream Boolean Values
  • FloatStream Float Values
  • StringStream String Values
  • VariantStream General purposes values

Example

# 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 += value

func get_total_cash() -> int:
	return secure_cash_wallet.value

Issues

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

Update flush single var

#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

#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

Update buffer single var

#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

#demo_d.gd

##Buffer global update for all use singleton
func _ready() -> void:
	GDAntiCheats.BUFFER_SIZE = 200 #(default 10)

Roadmap

  • 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

Copyrights (c) CodeNameTwister. See LICENSE.md for details.

About

My version of anti-cheats adapted for godot as plugin

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published