Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Hydra AntiCheat from the developers of WASP AntiCheat know as _LkZ#9628
- # Detections: Killaura, Fly, Speed, Reach, SelfHurt, NoFall and AirWalk, WaterWalk, HighJump, FastBow (More Coming Soon)
- # Main Developer: _LkZ
- # Other Developers: MikkelOnTop, MrStompy
- # find our terms of use and more updates at: https://hydra-anticheat.carrd.co
- # the guy who like fixed all the lag and added 3 new epic detections: dnadany (https://discord.gg/6RFZYxt)
- options:
- version: 1.4
- NoPermission: &c&lHydra &8>> &4Invalid Permission!
- chat_cooldown_seconds: 3
- eula: false
- kick_10_alerts: true
- KickMessage: &C&lHydra &8>> &cCheating
- command /hydra [<text>] [<offline player>]:
- permission: hydra.command.command
- permission message: {@NoPermission}
- trigger:
- if arg 1 is not set:
- send "&c&lHydra &8>> &c/hydra help"
- if arg 1 is "help":
- send "&c&lHydra AntiCheat. &fMade by _LkZ, and MikkelOnTop"
- send "&c/hydra help"
- send "&c/hydra freeze <player>"
- send "&c/hydra alerts <player>"
- send "&c/hydra addons"
- send "&c/addbannedword <word>"
- send "&c/bannedwords"
- send "&c/clearbannedwords"
- send "&c/report <player> <reason>"
- send "&c/reports <player>"
- send "&c/clearreports <player>"
- if arg 1 is "addons":
- {hydrApi::addons::*} is set:
- send "&c&lHydra AntiCheat Loaded Addons."
- send "&c&l--------------------------------"
- loop {hydrApi::addons::*}:
- send "&c%loop-value%"
- send "&c&l--------------------------------"
- stop
- send "&4&lERROR &cNo addons loaded"
- if arg 1 is "freeze":
- if arg 2 is set:
- if player has permission "hydra.command.freeze":
- if {freezed::%arg 2%} is false:
- set {freezed.%arg 2%} to true
- send "&c&lHydra &8>> &c%arg 2%&f is now frozen!"
- else:
- set {freezed::%arg 2%} to false
- send "&c&lHydra &8>> &c%arg 2% is no longer frozen!"
- else:
- send "{@NoPermission}"
- if arg 1 is "alerts" or "logs":
- if arg 2 is set:
- if player has permission "hydra.command.logs":
- send "&cAuto Clicker Logs: %{autoclickerlogs::%arg 2%}%"
- send "&cFlight / AirWalk / NoFall Logs: %{flightlogs::%arg 2%}%"
- send "&cKillaura logs: %{killauralogs::%arg 2%}%"
- send "&cSpeed / Flight Logs: %{speedalerts::%arg 2%}%"
- send "&cReach Logs: %{reachalerts::%arg 2%}%"
- send "&cAnti Knockback Logs: %{antikbalerts::%arg 2%}%"
- send "&cFast Bow Logs: %{fastbowalerts::%arg 2%}%"
- send "&cWaterwalk Logs: %{waterwalk::%arg 2%}%"
- send "&cHigh Jump Logs: %{highjumplogs::%arg 2%}%"
- send "&Spider Logs: %{spiderlogs::%arg 2%}%"
- else:
- send "{@NoPermission}"
- else:
- send "&c&lHydra &8>> &cPlease specify a player!"
- command /report [<offline player>] [<text>]:
- permission: hydra.report.use
- permission message: {@NoPermission}
- trigger:
- if arg 1 is set:
- if arg 2 is set:
- if arg 1 does not have permission "hydra.report.bypass":
- "%arg 1%" != "%player%":
- add 1 to {reports::%arg 1%}
- set {report::%arg 1%::%{reports::%arg 1%}%} to arg 2
- add {report::%arg 1%::%{reports::%arg 1%}%} to {reports::%arg 1%::*}
- send "&c&lHydra &8>> &fYou have reported &c%arg 1%&f for the reason &c%arg 2%."
- send "&c&lHydra &8>> &c%player% has reported &c%arg 1% for the reason &c%arg 2%." to all players where [player input has permission "hydra.logs"]
- else:
- send "&c&lHydra &8>> &fYou cant report yourself, silly!"
- else:
- send "&c&lHydra &8>> &fYou cannot report that player!"
- else:
- send "&c&lHydra &8>> &f/report <player> <reason>"
- else:
- send "&c&lHydra &8>> &f/report <player> <reason>"
- command /reports [<offline player>]:
- permission: hydra.report.see
- permission message: {@NoPermission}
- trigger:
- if arg 1 is set:
- set {e} to 1
- send "&a---------------------"
- loop 20 times:
- if {reports::%arg 1%::%{e}%} is set:
- send "%{reports::%arg 1%::%{e}%}%"
- add 1 to {e}
- send "&a---------------------"
- command /clearreports [<offline player>]:
- permission: hydra.report.clear
- permission message: {@NoPermission}
- trigger:
- delete {reports::%arg 1%::*}
- delete {reports::%arg 1%}
- delete {report::%arg 1%::*}
- every 30 seconds:
- delete {alerts::*}
- on left click:
- if {@eula} is true:
- player does not have permission "hydra.bypass.autoclicker":
- add 1 to {killaura::%player%}
- if {killaura::%player%} >= 20:
- set {_ping} to player's ping
- alert(player, "Auto Clicker")
- add 1 to {autoclickerlogs::%player%}
- execute console command "auratest %player%"
- add 1 to {alerts::%player%}
- if {alerts::%player%} >= 10:
- if {kick_10_alerts} is true:
- hydrApi_kickPlayer(player)
- on left click:
- if {@eula} is true:
- add 1 to {clickauratest::%player%}
- player does not have permission "hydra.bypass.killaura"
- if {clickauratest::%player%} >= 13:
- execute console command "auratest %player%"
- every 1 second:
- delete {clickauratest::*}
- delete {killaura::*}
- on damage:
- attacker is a player:
- if attacker's targeted entity is not set:
- if {@eula} is true:
- if attacker does not have permission "hydra.bypass.invalidtarget":
- set {_ping} to attacker's ping
- alert(attacker, "Invalid Target")
- add 1 to {killauralogs::%attacker%}
- add 1 to {alerts::%attacker%}
- if {alerts::%attacker%} >= 10:
- if {kick_10_alerts} is true:
- hydrApi_kickPlayer(attacker)
- on damage:
- add 1 to {hits::%attacker%}
- on left click:
- add 1 to {leftclicks::%player%}
- on death:
- if {@eula} is true:
- if player does not have permission "hydra.bypass.killaura":
- if {hits::%attacker%} = {leftclicks::%attacker%}:
- execute console command "auratest %attacker%"
- command /auratest [<player>]:
- permission: hydra.command.auratest
- permission message: &c&lHydra >> No Permissions
- trigger:
- if {auratest.%arg 1%} is false:
- set {loc} to location behind arg 1
- set {attacker} to arg 1
- set {auratest.%arg 1%} to true
- spawn a zombie at {loc}
- set {bot} to last spawned entity
- wait 5 ticks
- set {auratest.%arg 1%} to false
- delete last spawned entity
- on damage:
- if attacker is {attacker}:
- if victim is {bot}:
- delete {bot}
- alert(attacker, "Killaura")
- add 1 to {killauralogs::%attacker%}
- add 1 to {alerts::%attacker%}
- if {alerts::%attacker%} >= 10:
- if {kick_10_alerts} is true:
- hydrApi_kickPlayer(attacker)
- else:
- if victim is {bot}:
- cancel event
- on any move:
- {@eula} is true
- player's gamemode is not creative
- player does not have permission "hydra.bypass.fly"
- difference between {log.%player%} and now is more than 0.3 seconds
- player is on ground
- block below player is air
- block north below player is air
- block south below player is air
- block west below player is air
- block east below player is air
- block north east below player is air
- block south east below player is air
- block north west below player is air
- block south west below player is air
- add 1 to {fly::%player%}
- if {fly::%player%} >= 3:
- alert(player, "Groundspoof")
- teleport player to {rubberband.%player%}
- add 1 to {alerts::%player%}
- add 1 to {flightlogs::%player%}
- if {alerts::%player%} >= 10:
- if {kick_10_alerts} is true:
- hydrApi_kickPlayer(player)
- on any move:
- player does not have permission "hydra.bypass.fly"
- player's gamemode is survival or adventure
- player's flight mode is false
- set {_y1} to y pos of player
- wait 2 ticks
- set {_y2} to y pos of player
- difference between {_y1} and {_y2} is less than 0.4
- difference between {log.%player%} and now is more than 0.5 seconds
- difference between {reload.%player%} and now is more than 5 seconds
- add 1 to {fly::%player%}
- if {fly::%player%} >= 3:
- alert(player, "AirWalk")
- teleport player to {rubberband.%player%}
- add 1 to {alerts::%player%}
- add 1 to {flightlogs::%player%}
- if {alerts::%player%} >= 10:
- if {kick_10_alerts} is true:
- hydrApi_kickPlayer(player)
- on any move:
- player does not have permission "hydra.bypass.fly"
- player's gamemode is survival or adventure
- player's flight mode is false
- set {_y1} to y pos of player
- wait 2 ticks
- set {_y2} to y pos of player
- difference between {_y1} and {_y2} is more than 0.3
- {_y1} < {_y2}
- difference between {log.%player%} and now is more than 0.5 seconds
- difference between {reload.%player%} and now is more than 5 seconds
- add 1 to {fly::%player%}
- if {fly::%player%} >= 3:
- alert(player, "Fly")
- teleport player to {rubberband.%player%}
- add 1 to {alerts::%player%}
- add 1 to {flightlogs::%player%}
- if {alerts::%player%} >= 10:
- if {kick_10_alerts} is true:
- hydrApi_kickPlayer(player)
- on any move:
- player does not have permission "hydra.bypass.fly"
- player's gamemode is survival or adventure
- player's flight mode is false
- set {_y1} to y pos of player
- wait 2 ticks
- set {_y2} to y pos of player
- wait 2 ticks
- set {_y3} to y pos of player
- difference between {_y1} and {_y2} > difference between {_y1} and {_y3}
- difference between {log.%player%} and now is more than 0.7 seconds
- difference between {reload.%player%} and now is more than 5 seconds
- player's flight mode is false
- add 1 to {fly::%player%}
- if {fly::%player%} >= 3:
- alert(player, "Glide")
- teleport player to {rubberband.%player%}
- add 1 to {alerts::%player%}
- add 1 to {flightlogs::%player%}
- if {alerts::%player%} >= 10:
- if {kick_10_alerts} is true:
- hydrApi_kickPlayer(player)
- on any move:
- if {@eula} is true:
- #player does not have permission "hydra.bypass.highjump":
- player is not flying
- player is not riding
- set {_pos} to player's location
- set {_loc} to player's y coordinate
- wait 1 ticks
- set {_loc1} to player's y coordinate
- wait 1 ticks
- set {_loc2} to player's y coordinate
- wait 2 ticks
- set {_loc3} to player's y coordinate
- wait 2 ticks
- set {_loc4} to player's y coordinate
- difference between {_loc} and {_loc1} > 0.2
- difference between {_loc} and {_loc1} = difference between {_loc1} and {_loc2}
- #difference between {_loc1} and {_loc2} = difference between {_loc2} and {_loc3}
- #difference between {_loc2} and {_loc3} = difference between {_loc3} and {_loc4}
- block below player is not a stair
- block south below player is not a stair
- block east below player is not a stair
- block west below player is not a stair
- block north below player is not a stair
- block below player is not a slab
- block south below player is not a slab
- block east below player is not a slab
- block west below player is not a slab
- block north below player is not a slab
- teleport player to {_pos}
- add 1 to {spiderlogs::%player%}
- add 1 to {alerts::%player%}
- alert(player, "Fly")
- on unload:
- loop all players:
- set {reload.%loop-player%} to now
- every 5 ticks:
- loop all players:
- set {_loc} to location of loop-player
- loop all blocks in radius 2.5 around {_loc}:
- if loop-block is not air:
- set {log.%loop-player%} to now
- set {rubberband.%loop-player%} to location of loop-player
- the gliding state of loop-player is true:
- loop-player's chestplate is elytra:
- set {log.%loop-player%} to now
- loop-player is flying:
- set {lastflying::%loop-player%} to now
- on any move:
- player does not have permission "hydra.bypass.speed":
- if {@eula} is true:
- player doesn't have speed
- set {_loc::%player%} to the x location of player
- set {speedsetback::%player%} to location of the player
- wait 5 ticks
- set {_loc1::%player%} to the x location of player
- wait 1 tick
- set {_diffyx::%player%} to difference between {_loc::%player%} and {_loc1::%player%}
- if difference between {_loc::%player%} and {_loc1::%player%} >= 3.7:
- player's gamemode is not creative
- player is not flying
- add 1 to {speed::%player%}
- if {speed::%player%} >= 3:
- teleport player to {speedsetback::%player%}
- alert(player, "Speed")
- add 1 to {speedalerts::%player%}
- add 1 to {alerts::%player%}
- if {alerts::%player%} >= 10:
- if {kick_10_alerts} is true:
- hydrApi_kickPlayer(player)
- on any move:
- player does not have permission "hydra.bypass.speed":
- if {@eula} is true:
- player doesn't have speed
- set {_locz::%player%} to the z location of player
- set {speedsetback::%player%} to location of the player
- wait 5 ticks
- set {_loc1z::%player%} to the z location of player
- wait 1 tick
- set {_diffy::%player%} to difference between {_locz::%player%} and {_loc1z::%player%}
- if difference between {_locz::%player%} and {_loc1z::%player%} >= 3.7:
- player's gamemode is not creative
- player is not flying
- add 1 to {speed::%player%}
- if {speed::%player%} >= 3:
- teleport player to {speedsetback::%player%}
- alert(player, "Speed")
- add 1 to {speedalerts::%player%}
- add 1 to {alerts::%player%}
- if {alerts::%player%} >= 10:
- if {kick_10_alerts} is true:
- hydrApi_kickPlayer(player)
- on damage:
- attacker does not have permission "hydra.bypass.reach":
- if {@eula} is true:
- attacker is a player
- set {_reach} to distance between attacker and victim
- if {_reach} > 4.5:
- if damage cause is not a projectile:
- attacker's gamemode is not creative:
- cancel event
- alert(attacker, "Reach")
- add 1 to {reachalerts::%attacker%}
- add 1 to {alerts::%attacker%}
- if {alerts::%attacker%} >= 10:
- if {kick_10_alerts} is true:
- hydrApi_kickPlayer(attacker)
- on damage:
- attacker does not have permission "hydra.bypass.selfhurt":
- if {@eula} is true:
- if attacker is victim:
- if damage cause is not a projectile:
- cancel event
- set {_ping} to attacker's ping
- alert(attacker, "SelfHurt")
- on damage of a player:
- victim is not flying
- damage wasn't caused by fall, potion, lava, burning, fire, poison or wither
- victim is not burning
- victim doesn't have poison
- victim doesn't have wither:
- set {antikb::%victim%} to location of victim
- wait 10 ticks
- set {antikb2::%victim%} to location of victim
- block at victim is not cobweb:
- block at victim is not water:
- victim is not riding:
- if {antikb::%victim%} = {antikb2::%victim%}:
- attacker does not have permission "hydra.bypass.antiknockback":
- if {@eula} is true:
- alert(victim, "AntiKnockback")
- add 1 to {alerts::%victim%}
- add 1 to {antikbalerts::%victim%}
- if {alerts::%victim%} >= 10:
- if {kick_10_alerts} is true:
- hydrApi_kickPlayer(victim)
- on chat:
- wait 1 tick
- set {chatcooldown::%player%} to true
- wait {@chat_cooldown_seconds} seconds
- delete {chatcooldown::%player%}
- on chat:
- if {@eula} is true:
- if {chatcooldown::%player%} is true:
- player does not have permission "hydra.bypass.chatcooldown":
- send "&cThere is a {@chat_cooldown_seconds}&c second chat cooldown!"
- cancel event
- on shoot:
- if projectile is an arrow:
- if difference between {bow::%shooter%} and now is less than 2 ticks:
- cancel event
- shooter does not have permission "hydra.bypass.fastbow":
- if {@eula} is true:
- alert(shooter, "FastBow")
- add 1 to {alerts::%shooter%}
- add 1 to {fastbowalerts::%shooter%}
- if {alerts::%shooter%} >= 10:
- if {kick_10_alerts} is true:
- hydrApi_kickPlayer(shooter)
- set {bow::%shooter%} to now
- on walk on water:
- player is on ground
- player's gamemode is not creative
- player is not riding
- player is not sneaking
- block below player is water
- block south below player is water
- block east below player is water
- block west below player is water
- block north below player is water
- block south player is air
- block north player is air
- block west player is air
- block east player is air
- player does not have permission "hydra.bypass.waterwalk"
- if {@eula} is true:
- cancel event
- add 1 to {alerts::%player%}
- add 1 to {waterwalk::%player%}
- alert(player, "Waterwalk")
- on jump:
- if {@eula} is true:
- player does not have permission "hydra.bypass.highjump":
- player's gamemode is not creative
- player is not flying
- player is not riding
- set {_loc} to player's y coordinate
- set {_pos} to player's location
- wait 7 ticks
- set {_loc1} to player's y coordinate
- difference between {_loc} and {_loc1} >= 1.8:
- block below player is not a stair
- block south below player is not a stair
- block east below player is not a stair
- block west below player is not a stair
- block north below player is not a stair
- block below player is not a slab
- block south below player is not a slab
- block east below player is not a slab
- block west below player is not a slab
- block north below player is not a slab
- teleport player to {loc::%player%}
- add 1 to {highjumplogs::%player%}
- add 1 to {alerts::%player%}
- alert(player, "High Jump")
- command /addbannedword [<text>]:
- permission: hydra.words.addbanned
- permission message: {@NoPermission}
- trigger:
- if {bannedwords::*} contains {bannedword::%arg 1%}:
- send "&c&lHydra &8>> &cThat word is already added to the banned word list! Check all of the banned words with /bannedwords"
- else:
- set {bannedword::%arg 1%} to arg 1
- add {bannedword::%arg 1%} to {bannedwords::*}
- send "&cAdded the word &d%arg 1%&c to the banned word list"
- command /clearbannedwords:
- permission: hydra.words.clearbanned
- permission message: {@NoPermission}
- trigger:
- delete {bannedword::*}
- delete {bannedwords::*}
- send "&cCleared all banned words!"
- command /bannedwords:
- permission: hydra.words.listbanned
- permission message: {@NoPermission}
- trigger:
- set {e} to 1
- loop 1000 times:
- if {bannedwords::%{e}%} is set:
- send "%{bannedwords::%{e}%}%"
- add 1 to {e}
- on chat:
- loop {bannedwords::*}:
- if message contains loop-value:
- if player does not have permission "hydra.bypass.bannedwords":
- send "&c&lHydra &8>> &c%player% has tried to type a &cBanned Word&f. The word they typed was &c%loop-value%" to all players where [player input has permission "hydra.logs"]
- send "&c&lHydra &8>> &cOriginal Message: &f%message%"
- replace all "%loop-value%" with "" in message
- function alert(p: player, cheat: text):
- set {_ping} to {_p}'s ping
- send "&c&lHydra &8>> &c%{_p}% has failed &c%{_cheat}%. (&c%{_ping}%&c MS&f)" to all players where [player input has permission "hydra.logs"]
- send "&c&lHydra &8>> &c%{_p}% has failed &c%{_cheat}%. (&c%{_ping}%&c MS&f)" to console
- command /alert [<player>] [<text>]:
- permission: hydra.alert
- permission message: {@NoPermission}
- trigger:
- if arg 1 is set:
- if arg 2 is set:
- alert(arg 1, "%arg 2%")
- else:
- send "/alert <player> <reason>"
- else:
- send "/alert <player> <reason>"
- #-----------------------------------------------------------------------------------------------------------------------
- #API Docs:
- #Making a Hydra Addon (Guide)
- #hydrAPI allows for custom hydra addons coded in skript using simple functions
- #BE SURE THE ADDON NAME IN THE SERVER FILES IS WRITTEN WITH LOWERCASE OR IT WILL NOT BE AUTOLOADED OR HOOKED INTO HYDRA.
- #The most basic thing of a hydra addon is registering it, we have made it as simple as possible.
- #When a On Load is called be sure to use the "hydrApi_registerAddon" function.
- #The first argument (ADDON NAME) Indicates your addon's name (Allowed to be uppercase).
- #The second argument (EXTRA TEXT) Indicates anything following your addons name, like a version number or your name.
- #The third argument (script) is to tell hydrAPI what the scripts name is in your server files. DO NOT CHANGE.
- #on load:
- #hydrApi_registerAddon("ADDON NAME", "EXTRA TEXT", script)
- #Other things you may need
- #Returns the players violations, this can be used as a variable like "if hydrApi_getVL(player) is more than 5:"
- #Change ARGUMENT to the player name, player doesnt need to be online.
- #Will return 0 if the player hasnt had any VL's or if the player doesnt exist.
- #hydrApi_getVL(ARGUMENT)
- #Adds ARGUMENT2 violations to ARGUMENT1.
- #Change ARGUMENT1 to the player name, player doesnt need to be online.
- #Change ARGUMENT2 to the to the amount of violations to add.
- #hydrApi_addVL(ARGUMENT1, ARGUMENT2)
- #Sets ARGUMENT1's violations to ARGUMENT2.
- #Change ARGUMENT1 to the player name, player doesnt need to be online.
- #Change ARGUMENT2 to the to the amount of violations to set to.
- #hydrApi_setVL(ARGUMENT1, ARGUMENT2)
- #Makes a violation and announces it to all staff.
- #Change ARGUMENT1 to the player name.
- #Change ARGUMENT2 to the chat they were flagged for.
- #hydrApi_alert(ARGUMENT1, "ARGUMENT2")
- #That is the Hydra API documentation. Happy Coding!
- #-----------------------------------------------------------------------------------------------------------------------
- on load:
- set {kick_10_alerts} to {@kick_10_alerts}
- set {hydra::action::alert} to true
- set {hydra::action::alertFunc} to false
- loop {hydrApi::addons::*}:
- delete {hydrApi::addons::%loop-index%}
- execute console command "sk reload %loop-index%"
- function hydrApi_registerAddon(p: text, v: text, n: text):
- set {hydrApi::addons::%{_n}%} to "%{_p}% - %{_v}%"
- send "&cLoaded Hydra Addon %{_p}% - %{_v}%" to console
- function hydrApi_getVL(p: offlineplayer) :: number:
- {alerts::%{_p}%} is not set:
- set {alerts::%{_p}%} to 0
- return {alerts::%{_p}%}
- function hydrApi_reportPlayer(p: offline player, r: text):
- add 1 to {reports::%{_p}%}
- set {report::%{_p}%::%{reports::%{_p}%}%} to {_r}
- add {report::%{_p}%::%{reports::%{_p}%}%} to {reports::%{_p}%::*}
- function hydrApi_clearReportsPlayer(p: offline player):
- delete {reports::%{_p}%}
- delete {report::%{_p}%::*}
- delete {reports::%{_p}%::*}
- function hydrApi_addVL(p: offlineplayer, vl: number):
- add {_vl} to {alerts::%{_p}%}
- function hydrApi_setVL(p: offlineplayer, vl: number):
- set {alerts::%{_p}%} to {_vl}
- function hydrApi_alert(p: offlineplayer, h: text):
- alert({_p}, {_h})
- function hydrApi_setKick(b: boolean):
- set {kick_10_alerts} to {_b}
- function hydrApi_setAlertBool(b: boolean):
- set {hydra::action::alert} to {_b}
- function hydrApi_setAlertCallFunc(f: boolean):
- set {hydra::action::alertFunc} to {_f}
- function hydrApi_kickPlayer(p: player):
- kick {_p} due to "{@KickMessage}"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement