AC - Negativity [Spigot 1.7-1.16, Sponge, BungeeCord & Velocity] 1.9.7

It's an anti cheat !

  1. Elikill58
    Native Minecraft Version:
    Legacy (< 1.13)
    Tested Minecraft Versions:
    • 1.7
    • 1.8
    • 1.9
    • 1.10
    • 1.11
    • 1.12
    • 1.13
    • 1.14
    • 1.15
    • 1.16
    Source Code:
    RedNesto, herobrine99dan and Wall_
    Languages Supported:
    French, Portuguese, Norwegian, Russian, Chinese, German, Dutch, Swedish, Spanish, Vietnamese, Italian, Polish, Czech Republic, Arabic Egyptian and Albanian

    Please, use latest version !
    Problem ? Come on discord : Join now
    Recall: by default, with UP to 150ms of ping, detection are disabled

    You need PacketGate on Sponge only

    List with explication about the cheat :

    - AirJump
    - AntiKnockback
    - AntiPotion
    - AutoClick
    - AutoSteal
    - Blink
    - Chat (Insult & Spam)
    - Critical
    - FastBow
    - FastEat
    - FastLadder
    - FastPlace
    - FastStairs
    - Fly
    - ForceField | KillAura
    - InventoryMove
    - Jesus
    - NoFall
    - NoPitchLimit
    - NoSlowDown
    - NoWeb
    - Nuker
    - Phase
    - Regen
    - Scaffold
    - Sneak
    - Speed
    - Spider
    - Step
    - XRay

    - If you want to check a player :
    /negativity verif <player> [verif time] [(optional) cheats, by default it's all cheats]

    - If you want to get some information about a player:
    /negativity <player>

    - If you want to Show/Hide alert:
    /negativity alert

    - If you want to report someone:
    /nreport <player> <reason>

    - If you want to do some mod thing (be invisible...):

    - To ban people:
    /nban <player> <def(true/false) | time (ex: 2h5m)> <reason>
    - To unban people:
    /nunban <player>


    You want to use permissions ?
    Check the wiki

    I have a testing server: hosted by :

    25% off the first month using the code "2021"

    Video about Negativity

    Thanks HuyMCYTB for this video (With negativity 1.7)

    New WR any% on 9.80s ! (With Negativity 1.9.7)

    Screenshoot about Negativity

    Thanks for McLovin#4623 (the server admin in the screen) (With negativity 1.8.1)​

    Click here to see default config

    Everything is editable !
    Click here to see all config informations.

    There is a wiki AND the code on github (link on the top of the page)

    All player have a NegativityPlayer which extend of NegativityAccount.
    Code (Text):
    NegativityPlayer methods: (Must to be used with the NegativityPlayer of your platform like SpigotNegativityPlayer)
    NegativityAccount getAccount()
    Object getPlayer()
    boolean hasDefaultPermission(String s)
    int getWarn(Cheat c)
    double getLife()
    String getName()
    String getGameMode()
    float getWalkSpeed()
    int getLevel()
    void kickPlayer(String reason, String time, String by, boolean def)
    void banEffect()
    void startAnalyze(Cheat c)
    void startAllAnalyze()
    void updateMinerateInFile()
    boolean isOp()

    NegativityAccount methods:
    String getUUID()
    String getLang()
    UUID getPlayerId()
    void setLang(String lang)
    All cheats are extend "com.elikill58.negativity.universal.Cheat"

    You can get all cheats thanks to Cheat.values().
    To get a special cheat, there is 2 way:
    1) By the cheat key (key directly from code) :

    2) By the cheat name of alias (string from chat for example)

    Both will return the Cheat or null if they don't find it.

    Code (Text):
    // Methods in object Cheat

    String getKey()
    String getName()
    CheatCategory getCheatCategory()
    String[] getAliases()
    boolean isActive()
    boolean setActive(boolean active)
    boolean hasListener()
    boolean needPacket()
    Object getMaterial()
    int getReliabilityAlert()
    boolean isSetBack()
    boolean setBack(boolean back)
    int getAlertToKick()
    boolean allowKick()
    boolean setAllowKick(boolean allowKick)
    boolean isAutoVerif()
    boolean setAutoVerif(boolean auto)
    boolean isBlockedInFight()
    int getMaxAlertPing()
    There is other usefull things :

    Code (Text):
    Database.connect(String url, String username, String password) // you don't need to use this method if you have edit the config file
    Connection Database.getConnection()
    About permission :
    Code (Text):

    boolean hasPerm(NegativityPlayer np, String perm)
    boolean hasPermLocal(NegativityPlayer np, String perm, Object value)
    About ban system :
    A new wiki is coming soon, more informations here !

    Finally, there is utils methods in "com.elikill58.negativity.universal.utils.UniversalUtils"
    Code (Text):

    boolean isInteger(String s)
    boolean isLong(String s)
    boolean hasInternet()
    boolean isBoolean(String s)
    boolean getFromBoolean(String s)
    Os Os.getOs()

    All player have a NegativityPlayer. On spigot, it's SpigotNegativityPlayer :

    Code (Text):
    // static methods :
    SpigotNegativityPlayer getNegativityPlayer(Player p)
    SpigotNegativityPlayer getNegativityPlayer(OfflinePlayer p)

    // methods of SpigotNegativityPlayer
    void initMods(Player p)
    void updateCheckMenu()
    getAllWarn(Cheat c) // current and saved warn
    void addWarn(Cheat c, int reliability)
    void setWarn(Cheat c, int cheats)
    void updateMinerateInFile()
    void clearPackets()
    void makeAppearEntities()
    void spawnRandom()
    void spawnRight();
    void spawnBehind();
    void spawnLeft()
    String getRandomFakePlayerName()
    void removeFakePlayer(FakePlayer fp)
    void logProof(String msg)
    void saveProof(boolean sendStats)
    void sendMessage(String msg, String... arg)
    void destroy(boolean isBan)
    boolean hasOtherThan(Location loc, Material m) // block of the specified type just around
    boolean hasOtherThanExtended(Location loc, Material m) // block of the specified type 2 blocks around
    boolean has(Location loc, Material... ms)
    void spawnCircle(double d, Location loc)
    boolean hasAntiKnockbackByPass()
    boolean isBlock(Material m)
    void fight()
    void unfight()
    // others methods

    FlyingReason :
    Cheat getCheat()

    SpigotNegativity static methods:
    Code (Text):

    boolean alertMod(ReportType type, Player p, Cheat c, int reliability, String proof) // return "true" if must cancel action
    boolean alertMod(ReportType type, Player p, Cheat c, int reliability, String proof, String hover_proof) // return "true" if must cancel action
    void sendMessage(Player p, String cheatName, String reliability, String ping, String hover) // a bungeecord message
    void sendReportMessage(Player p, String reportMsg)
    void logProof(SpigotNegativityPlayer np, ReportType type, Player p, Cheat c, int reliability,String proof, int ping)
    There is 3 Event when a player is cheating.
    Firstly, "PlayerCheatEvent" is called. You can only get information.
    Then, "PlayerCheatAlertEvent" is called. With it, you can get information about the cheat and the cheater and say if you want to cancel the alert.
    Lastly, "PlayerCheatKickEvent" is called. It's the same as PlayerCheatAlertEvent but with the kick of the player.
    For information: if in the config, there is that the kick is disabled, by default, if you don't interact with this event, the kick will not appear.
    All available method for theses event:
    Code (Text):
    // in PlayerCheatEvent

    Player getPlayer()
    int getReliability()
    Cheat getCheat()
    Code (Text):
    // in PlayerCheatAlertEvent

    Player getPlayer()
    int getReliability()
    Cheat getCheat()
    boolean isCancelled()
    void setCancelled(boolean cancel)
    boolean hasPermToBypass()
    boolean hasManyReliability()
    boolean isAlert()
    void setAlert(boolean alert)
    Code (Text):
    // in PlayerCheatEvent

    Player getPlayer()
    int getReliability()
    Cheat getCheat()
    boolean isCancelled()
    void setCancelled(boolean cancel)
    Code (Text):
    // in PlayerPacketsClearEvent

    Player getPlayer()
    SpigotNegativityPlayer getNegativityPlayer()
    HashMap<String, Integer> getPackets()
    Finally, there is utils methods in "com.elikill58.negativity.spigot.utils.Utils"
    Code (Text):

    int getMultipleOf(int i, int multiple, int more)
    String coloredMessage(String msg)
    List<String> coloredMessage(String... messages)
    ItemStack createItem(Material m, String name, String... lore)
    ItemStack createItem(Material m, String name, int quantite, String... lore)
    ItemStack createItem(Material m, String name, int amount, byte b, String... lore)
    List<Player> getOnlinePlayers()
    ItemStack createSkull(String name, int amount, String owner, String... lore)
    int getPing(Player p)
    Object getWorldServer(Location loc)
    int parseInPorcent(int i)
    int parseInPorcent(double i)
    void sendPacket(Player p, String packetdir, Class<?> type, Object send)
    void sendPacket(Player p, Object packet)
    Object getPlayerConnection(Player p)
    Class<?> getEnumPlayerInfoAction()
    Material getMaterialWith1_15_Compatibility(String... materials)
    Effect getEffect(String effect)
    Optional<Cheat> getCheatFromName(String s)
    Optional<Cheat> getCheatFromItem(Material m)
    void sendUpdateMessageIfNeed(Player p)
    double getLastTPS()
    double[] getTPS()
    String getInventoryTitle(InventoryView inv)
    String getInventoryName(InventoryClickEvent e)
    // Others usefull methods


    With Sponge, it's a little bit different.

    The main difference is here. I'm using the system of Sponge, so:
    Code (Text):
    PlayerCheatEvent (AbstractEvent, TargetPlayerEvent)

    Cause getCause() // With: The plugin, and the player
    Player getTargetEntity()
    Cheat getCheat()
    int getReliability()


    PlayerCheatEvent.Alert (PlayerCheatEvent, Cancellable)

    boolean isCancelled()
    void setCancelled(boolean cancel)
    boolean isAlert()
    void setAlert(boolean alert)
    boolean hasManyReliability()
    boolean hasPermToBypass()

    (+ all PlayerCheatEvent method)


    PlayerCheatEvent.Kick (PlayerCheatEvent, Cancellable)

    boolean isCancelled()
    void setCancelled(boolean cancel)

    (+ all PlayerCheatEvent method)



    Player getPlayer();
    SpongeNegativityPlayer getNegativityPlayer();

    I'm working on it everyday (When i have the time to) !
    You have a suggestion ? A bug ? A question ? You can contact me via :
    • Private messages on this web site
    • The negativity twitter (account) : @elinegativity
    • My discord server : Join now
    • Mail: [email protected]
    • Discord: @Elikill58#0743
    • Privacy Policy (In writing, link maybe not work) : English | Français
    Donations : (Thanks you <3)

    Download wall:

    100 : Thanks you ;)
    500 : :confused: Merci
    600 : :cool::cool: Gracias
    700 : :eek: Danke
    800 : Arigato :D
    900 : tack :)
    1000 : grazie :eek:
    1500 : Obrigado
    2000 : þakka þér
    2500 : cảm ơn bạn
    3000 : terima kasih
    3500 : Շնորհակալություն​
    4000: děkuji
    4500 : rahmat
    5000 : sağol
    5500 : σας ευχαριστώ
    6000 : 谢谢 :D
    6500 : спасибо :')
    7000 : شكرا
    7500 : kiitos
    8000 : takk
    8500 : mulțumesc
    9000 : təşəkkür edirəm
    9500 : eskerrik asko
    10000 : 고맙습니다
    20000 : siyabonga
    30000 : sağol
    40000 : tapadh leibh
    Too many download :eek:

    Special thanks to:
    - RedNesto for the help with English translation and development
    - jheyson for the help with Portuguese translation
    - SuchHero for the help with Norwegian translation
    - VidTu for the help with Russian translation
    - f0rb1d, SGYRE & 沐白Dust for the help with Chinese translation​
    - CodingAir for the help with German translation
    - DeveloperBoy for the help with Dutch translation
    - YungSloop for the help with Swedish translation
    - SolitaSolaa for the help with Spanish translation
    - HuyMCYTB#7592 for the help with Vietnamese translation
    - Herobrine99dan#1564 for the help with Italian translation and some checks
    - Disordeon#1824 for the help with Czech Republic translation
    - ErzenX#2439 for the help with Albanian translation
    - Tytano#5336 for the help with Polish translation
    - Edward205 for the help with Romanian translation
    - Andro Sameh#6837 for the help with Egyptian Arabic translation
    - you for your translation too ? (Contact me)​


    1. tableau_negativity  3.png

Recent Reviews

  1. GFhasdgbhgv
    Version: 1.9.7
    Its awesome work..
    But i gotta say this "this ac literally not working..." "no control over cheaters" but its a huge time to make kinda plugin. Its a good job but im still trying wtih liquidbouncer this plugin gives no reaction against killaura, velocity, reach etc.
    1. Elikill58
      Author's Response
      I understand. My anticheat isn't the best in combat detection.
      If you have issue, you can come on my discord, i will help you quickly.
      You can use /n debug Forcefield to check if you can be detected.
      I'm testing with LiquidBounce and i suggest you lot of movement hack, and check if you have issue.

      Warn: the AC just alert, by default it doesn't cancel hack.
  2. dinoboss2001
    Version: 1.9.7
    a good plugin is this or using another the premium versions of this plugin does not convince me mainly because it has 0 buyers and it seems clean according to my devs.
    1. Elikill58
      Author's Response
      I understand, and the premium version isn't in stable version, only beta yet ! But I'm very happy to see that u like my plugin :)
  3. mstudio45
    Version: 1.9.7
    Its works really great, but one problem is that i got kicked for speed when the server lags.
    Can you fix it please? And the plugin is working so good! I like this plugin :)
    1. Elikill58
      Author's Response
      Hi, thanks you for your review !
      For your issue, I'm currently working on it ! ;)
  4. erayco_47
    Version: 1.9.7
    Works great for my Spigot server, thank you for developing this plugin.
    Also I was having some trouble with the permissions, If I don't have OP I cannot use the /report command to report a player for some reason any help about that would be awesome!
    1. Elikill58
      Author's Response
      Hi, thanks you for downloading and testing it ! (And also for good review :p)
      I'm really happy to see that it works great for you !

      For your issue, you need the "" permission. For quick support, you can come on discord !
  5. ZopentYT
    Version: 1.9.7
    the best anti-cheat on spigot, bukkit, paper, sponge, any plugin platform :D thank you very much for giving your time and effort to us ;)
    1. Elikill58
      Author's Response
      Hi, Thanks ! Even if I don't really agree, Thanks you for your message <3
      I'm really happy to see that u like it x)
  6. Bri4n
    Version: 1.9.7
    Very good complement. Being Spanish I use the Spanish translation which contains errors compared to the English translation. I would be needing a .yml, .json or other file to modify the translation and be able to create it understandable and without spelling errors.
    1. Elikill58
      Author's Response
  7. Aiden_Leither
    Version: 1.9.7
    Pretty good anti cheat but a few false positives sometimes, it just said my friend was using speed then flying when he was just sprint jumping. Also when he went down a ladder next to water it triggered Fast Ladder, here is a clip of him recreating that if you want to see it.
    1. Elikill58
      Author's Response
  8. mcry36
    Version: 1.9.7
    Brilliant plugin its almost instant. Testing the plugin with even minimal settings on cheats is detected almost instantly. Brilliant! :)
    1. Elikill58
      Author's Response
      I'm very happy to see that you like my plugin ! :)
  9. Amazing_Avatar
    Version: 1.9.7
    worked out of the box for me. the cheater was caught literally within minutes. I especially like the way it displays the certainty of someone having cheats. eg:
    Player1 was caught using NoFall (probability 78%)
    1. Elikill58
      Author's Response
      Thanks for good review ! I'm happy to see that you like it !
  10. DozerCraft
    Version: 1.9.7
    En un buen anticheat, pero me da demasiados falsos positivos, al hablar por el chat (chat) y simplemente hacer parkour (fly).
    1. Elikill58
      Author's Response
      Really ? I'm sad to hear that you get false flag. Can you show me and/or explain them on my discord ?