Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
You are using an out of date browser. It may not display this or other websites correctly. You should upgrade or use an alternative browser.
Triggers
Anti-cheat_system1.05c.w3x
Variables
Anti-Cheat
F9
Disable Anticheat unit selection
Overview
INSTRUCTIONS
Initialization settings
^--- Fix the above trigger
Settings
Building set
Anticheat Loop
---------------------------
Gold Lumber cheat
Food cheat
Invulnerability cheat
Mana cheat
Fastbuild cheat
Visibility cheat
NoDefeat cheat
---------------------------
Troubleshooting
Additional Troubleshooting
Contact info
Examples
cinematest
Enter map-specific custom script code below. This text will be included in the map script after variables are declared and before any trigger code.
Name
Type
is_array
initial_value
Anticheat_building
unit
Yes
Anticheat_unit
unit
Yes
Anticheat_Unit_Type
unitcode
Yes
Cinematic_Mode
boolean
No
Point
location
No
|cffc0c0c0This system prevents cheating in single player.
Cheats disabled:
|c00B7B700Keysersoze|cffc0c0c0 <== Disabled from use
|c00B7B700Leafittome|cffc0c0c0 <== Disabled from use
|c00B7B700Greedisgood|cffc0c0c0 <== Disabled from use
|c00B7B700Pointbreak|cffc0c0c0 <== Benefits removed
|c00B7B700Warpten|cffc0c0c0 <== Punished with Defeat
|c00B7B700Whosyourdaddy|cffc0c0c0 <== Punished with Defeat
|c00B7B700Thereisnospoon|cffc0c0c0 <== Punished with Defeat
|c00B7B700Strengthandhonor|cffc0c0c0 <== Punished with Kick out of game
|c00B7B700Itvexesme|cffc0c0c0 <== Punished with Fatal Error
F9
Events
Map initialization
Conditions
Actions
Quest - Create a Optional quest titled Anti-Cheat System with the description |cffc0c0c0This system prevents cheating in single player.Cheats disabled:|c00B7B700Keysersoze|cffc0c0c0 <== Disabled from use|c00B7B700Leafittome|cffc0c0c0 <== Disabled from use|c00B7B700Greedisgood|cffc0c0c0 <== Disabled from use|c00B7B700Pointbreak|cffc0c0c0 <== Benefits removed|c00B7B700Warpten|cffc0c0c0 <== Punished with Defeat|c00B7B700Whosyourdaddy|cffc0c0c0 <== Punished with Defeat|c00B7B700Thereisnospoon|cffc0c0c0 <== Punished with Defeat , using icon path UI\Widgets\BattleNet\bnet-mainmenu-options-up.blp
Quest - Create a quest requirement for (Last created quest) with the description |cffc0c0c0Created by |cff80ff80Kitabatake|r
Quest - Create a quest requirement for (Last created quest) with the description |cffc0c0c0Get it from |cff80ff80www.clanx2o.org|r
Quest - Create a quest requirement for (Last created quest) with the description |cffc0c0c0Or from |cff80ff80www.hiveworkshop.com|r
Disable Anticheat unit selection
Events
Conditions
Or - Any (Conditions) are true
Conditions
(Unit-type of (Triggering unit)) Equal to Anticheat_Unit_Type[1]
(Unit-type of (Triggering unit)) Equal to Anticheat_Unit_Type[2]
(Unit-type of (Triggering unit)) Equal to Anticheat_Unit_Type[3]
Actions
Selection - Clear selection for (Triggering player) .
This Anti-Cheat system prevents the use of:
Keysersoze = Gold cheat <== Disabled from use
Leafittome = Lumber cheat <== Disabled from use
Greedisgood = Gold&Lumber cheat <== Disabled from use
Pointbreak = Food cheat <== Benefits removed
Warpten = Fast build cheat <== Punished with Defeat
Whosyourdaddy = Invulnerability cheat <== Punished with Defeat
Thereisnospoon = Mana cheat <== Punished with Defeat
StrengthAndHonor = No defeat cheat <== Punished with Fatal Error
How to put in your map:
1) Copy both Anti-cheat regions to your map
2) Copy the Anti-cheat_1, Anti-cheat_2 and Anti-cheat_3 units from the object editor to your own map's object editor
3) Copy this Anti-Cheat trigger folder to your map
4) Make sure the Settings and initialization trigger has it's settings correctly in your map (look at the trigger you copypasted, see the trigger comments)
5) Do not mess with the other triggers
Make sure that the Anti-cheat regions are somewhere hidden. For example in the corner of the map with some doodads around them to keep them hidden.
But remember that there must be space for the anti-cheat units. The system might not work if you set the region in deep water or too thick forest.
You could use some bushes and canopy trees to hide the region while still having enough space there.
Oh and the two AntiCheat Regions must be in SEPARATE places. I recommend placing one in another corner of the map and the other in another corner.
Remember that the player must not be able to see AntiCheat Region 2!
Also make sure that the Variables are like as follows in the Initialization settings trigger:
Set Anticheat_Unit_Type[1] = Anti-cheat_1 (Unit)
Set Anticheat_Unit_Type[2] = Anti-cheat_2 (Builder)
Set Anticheat_Unit_Type[3] = Anti-cheat_3 (Building)
If you have no custom units in your map, the variables should be like that.
But if you do have custom units, the variables might be set wrong and you must correct them.
Oh and DON'T modify any of the units or triggers unless you know what you're doing.
And I would appreciate if you gave credits when using this system.
Thank you.
- Kitabatake
This is an important setting trigger. Make sure the variables are set as following:
Set Anticheat_Unit_Type[1] = Anti-cheat_1 (Unit)
Set Anticheat_Unit_Type[2] = Anti-cheat_2 (Builder)
Set Anticheat_Unit_Type[3] = Anti-cheat_3 (Building)
Initialization settings
Events
Map initialization
Conditions
Actions
-------- Settings --------
Set Variable Set Anticheat_Unit_Type[1] = "h000"
Set Variable Set Anticheat_Unit_Type[2] = "h001"
Set Variable Set Anticheat_Unit_Type[3] = "h003"
After you have installed this system on your map, make sure the above trigger "Initialization settings" refers to correct unit types.
Settings
Events
Time - Elapsed game time is 1.00 seconds
Conditions
Actions
Player Group - Pick every player in (All players controlled by a User player) and do (Actions)
Loop - Actions
Set Variable Set Point = (Center of AntiCheat_Region_1 <gen>)
Unit - Create 1 . Anticheat_Unit_Type[1] for (Picked player) at Point facing Default building facing degrees
Set Variable Set Anticheat_unit[(Player number of (Picked player))] = (Last created unit)
Unit - Create 1 . Anticheat_Unit_Type[3] for Neutral Hostile at Point facing Default building facing degrees
Unit - Order Anticheat_unit[(Player number of (Picked player))] to Attack . (Last created unit)
Custom script: call RemoveLocation(udg_Point)
Set Variable Set Point = (Random point in AntiCheat_Region_1 <gen>)
Unit - Create 1 . Anticheat_Unit_Type[2] for (Picked player) at Point facing Default building facing degrees
Set Variable Set Anticheat_building[(Player number of (Picked player))] = (Last created unit)
Unit - Order (Last created unit) to build a Anti-cheat_3 (Building) at Point
Custom script: call RemoveLocation(udg_Point)
Trigger - Add to Disable_Anticheat_unit_selection <gen> the event ((Picked player) Selects a unit)
This is an important trigger. Don't touch!
Building set
Events
Unit - A unit Begins construction
Conditions
(Unit-type of (Constructing structure)) Equal to Anti-cheat_3 (Building)
Actions
Set Variable Set Anticheat_building[(Player number of (Owner of (Constructing structure)))] = (Constructing structure)
This is an important trigger. Don't touch!
Anticheat Loop
Events
Time - Every 0.30 seconds of game time
Conditions
Actions
For each (Integer A) from 1 to 12 , do (Actions)
Loop - Actions
Unit - Order Anticheat_unit[(Integer A)] to Night Elf Druid Of The Claw - Roar .
Unit - Set Anticheat_building[(Integer A)] construction progress to 5 %
|cffc0c0c0This system prevents cheating in single player.
Cheats disabled:
|c00B7B700Keysersoze|cffc0c0c0 <== Disabled from use
|c00B7B700Leafittome|cffc0c0c0 <== Disabled from use
|c00B7B700Greedisgood|cffc0c0c0 <== Disabled from use
|c00B7B700Pointbreak|cffc0c0c0 <== Benefits removed
|c00B7B700Warpten|cffc0c0c0 <== Punished with Fatal Error
|c00B7B700Whosyourdaddy|cffc0c0c0 <== Punished with Fatal Error
|c00B7B700Thereisnospoon|cffc0c0c0 <== Punished with Fatal Error
|c00B7B700Iseedeadpeople|cffc0c0c0 <== Punished with Fatal Error|r
Prevents gold, lumber, food, fast build, visibility, invulnerability and mana cheats
This trigger prevents the use of Gold cheat and Lumber cheats
Keysersoze
Leafittome
Greedisgood
All above cheats are disabled and of no use to the player
Gold Lumber cheat
Events
Player - Player 12 (Brown) 's Current gold becomes Greater than 1.00
Player - Player 12 (Brown) 's Current lumber becomes Greater than 1.00
Conditions
Actions
Player Group - Pick every player in (All players) and do (Actions)
Loop - Actions
Player - Add ((Player 12 (Brown) Current gold) x -1) to (Picked player) . Current gold
Player - Add ((Player 12 (Brown) Current lumber) x -1) to (Picked player) . Current lumber
Player - Set Player 12 (Brown) . Current gold to 0
Player - Set Player 12 (Brown) . Current lumber to 0
-------- Player 12 must not receive any income during game --------
This trigger prevents the use of Food cheat.
Pointbreak
All units that are created above the players food limits are removed.
No refund.
Food cheat
Events
Unit - A unit Finishes training a unit
Conditions
((Trained unit) is A structure) Equal to False
((Owner of (Trained unit)) Food used) Greater than ((Owner of (Trained unit)) Food cap)
((Owner of (Trained unit)) controller) Equal to User
(Supply used by (Trained unit)) Greater than 0
Actions
Unit - Remove (Trained unit) from the game
This trigger prevents the use of invulnerablity cheat
Whosyourdaddy
The cheater is punished with a Defeat
Invulnerability cheat
Events
Unit - A unit Dies
Conditions
Or - Any (Conditions) are true
Conditions
(Unit-type of (Dying unit)) Equal to Anti-cheat_1 (Unit)
(Unit-type of (Dying unit)) Equal to Anti-cheat_2 (Builder)
(Unit-type of (Dying unit)) Equal to Anti-cheat_3 (Building)
Actions
Trigger - Turn off (This trigger)
Player Group - Pick every player in (All players) and do (Actions)
Loop - Actions
Game - Defeat (Picked player) with the message: |cffff0000== Cheat Detected ==|r
Trigger - Run NoDefeat_cheat <gen> (checking conditions)
This trigger prevents the use of mana cheat
Thereisnospoon
The cheater is punished with a Defeat
Mana cheat
Events
Unit - A unit Starts the effect of an ability
Conditions
(Unit-type of (Casting unit)) Equal to Anticheat_Unit_Type[1]
Actions
Trigger - Turn off (This trigger)
Trigger - Turn off Anticheat_Loop <gen>
Player Group - Pick every player in (All players) and do (Actions)
Loop - Actions
Game - Defeat (Picked player) with the message: |cffff0000== Cheat Detected ==|r
Trigger - Run NoDefeat_cheat <gen> (checking conditions)
This trigger prevents the use of fast building cheat
Warpten
The cheater is punished with a Defeat
Note: For some reason this trigger can occasionally cause a fatal error instead of defeat
Well, it get's the job done as well...
If you know how to fix the fatal error from this trigger, let me know!
1) Private message Kitabatake @ www.hiveworkshop.com
2) Private message Kitabatake @ www.clanx2o.org
3) Send email to [email protected]
Fastbuild cheat
Events
Unit - A unit Finishes construction
Conditions
(Unit-type of (Constructed structure)) Equal to Anti-cheat_3 (Building)
Actions
Trigger - Turn off (This trigger)
Trigger - Turn off Anticheat_Loop <gen>
Player Group - Pick every player in (All players) and do (Actions)
Loop - Actions
Game - Defeat (Picked player) with the message: |cffff0000== Cheat Detected ==|r
Trigger - Run NoDefeat_cheat <gen> (checking conditions)
This trigger prevents the use of visibility cheat
Warpten
The cheater is punished with a Defeat
Visibility cheat
Events
Time - Every 2 seconds of game time
Conditions
Actions
Set Variable Set Point = (Center of AntiCheat_Region_2 <gen>)
For each (Integer A) from 1 to 12 , do (Actions)
Loop - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Point is visible to (Player((Integer A))).) Equal to True
Cinematic_Mode Equal to False
Then - Actions
Trigger - Turn off (This trigger)
Player Group - Pick every player in (All players) and do (Actions)
Loop - Actions
Game - Defeat (Picked player) with the message: |cffff0000== Cheat Detected ==|r
Trigger - Run NoDefeat_cheat <gen> (checking conditions)
Else - Actions
Custom script: call RemoveLocation(udg_Point)
Custom script: set udg_Point = null
This trigger prevents the use of No Defeat and No Win cheats that would disable other anti-cheat triggers
StrengthAndHonor - The cheater is kicked out of the game
Itvexesme - The cheater is punished with a Fatal Error
Note: Strengthandhonor cheat makes it impossible to "Defeat" a player.
That is why the player is simply given victory without dialogs and scores
Itvexesme cheat makes it impossible to give victory to the player.
That leaves Fatal Error as the only way to make the player leave the game.
Also: These cheats are NOT punished as soon as you type them in game because there is no way to detect them right away.
This trigger is here only to prevent those two cheats from disabling the other anti-cheat triggers...
NoDefeat cheat
Events
Conditions
Actions
Wait 2.00 seconds
Game - Display to (All players) the text: |cffff0000Cheater!|r
Player Group - Pick every player in (All players) and do (Actions)
Loop - Actions
Game - Victory (Picked player) ( Skip dialogs, Skip scores)
Wait 1.00 seconds
Game - Display to (All players) the text: |cffff0000Punishment: Fatal Error! [3]
Wait 1.00 seconds
Game - Display to (All players) the text: |cffff0000Punishment: Fatal Error! [2]
Wait 1.00 seconds
Game - Display to (All players) the text: |cffff0000Punishment: Fatal Error! [1]
Wait 1.00 seconds
Game - Display to (All players) the text: |cffff0000Punishment: Fatal Error! [0]
Wait 1.00 seconds
Player - Make (Player((Integer(Kitabatake)))) treat (Player((Integer(Cheater)))) as an Enemy
TROUBLESHOOTING
The Anti-Cheat System by Kitabatake
1) Does the system work?
Yes -> go to [15] No -> go to [2]
2) Did you mess with the system?
Yes -> go to [12] No -> go to [3]
3) Did you follow the Instructions?
Yes -> go to [4] No -> go to [12]
4) Do you have "Automatically create unknown variables while pasting trigger data" option on?
Yes -> go to [5] No -> go to [13] What? -> go to [13]
5) Did you copy ALL 3 units from the object editor to your map?
Yes -> go to [6] No -> go to [12]
6) Did you copy both red AntiCheat regions to your map?
Yes -> go to [7] No -> go to [12
7) Do you use Player 12 in your map?
Yes -> go to [8] No -> go to [12]
8) Did you fix the variables in the Initialization settings trigger?
Yes -> go to [9] No -> go to [12]
9) Are you having problems during cinematics?
Yes -> go to [10] No -> go to [11]
10) Make sure you set the boolean "Cinematic_Mode" to TRUE before a cinematic and FALSE after a cinematic
Then test the map and go to [1]
11) Is this the first time you got this far troubleshooting this system?
Yes -> go to [12] No -> go to [14]
12) Start over and follow the INSTRUCTIONS
13) Go to File -> Preferences and turn on "Automatically create unknown variables while pasting trigger data"
Then go to [12]
14) Contact me and explain the situation. OR go to [12].
15) No Problem!
Remember that you must copy the 3 units from object editor to your map
Also remember that you must copy the red regions from the lower right and lower left corner of the map to your map
If you can't see the regions, delete the trees above them.
THEN you can copy this trigger folder to your map
Don't forget to check the Initialization settings. The variables must refer to correct units
Also remember that the variables themselves must be pasted to the map. They will be copied automatically with the triggers if you have
"Automatically create unknown variables while pasting trigger data" option turned on. If not, turn the option on or copy the variables manually.
And don't forget that Player 12 must not receive income. I recommend not using Player 12 in your game at all.
Also don't forget to set Cinematic_Mode = True before a cinematic
Also don't forget to set Cinematic_Mode = False after a cinematic
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.