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

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:
    https://github.com/Elikill58/Negativity
    Contributors:
    RedNesto, herobrine99dan and Wall_
    Languages Supported:
    French, Portuguese, Norwegian, Russian, Chinese, German, Dutch, Swedish, Spanish, Vietnamese, Italian, Polish, Czech Republic and Albanian

    banniere_twitter_neg_3.png
    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 : https://github.com/Elikill58/Negativity/wiki/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...):
    /nmod

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

    [​IMG]

    For permissions, check github wiki

    I have a testing server: server.negativity.fr hosted by :

    [​IMG]
    (SponsorShip)

    Video about Negativity


    Thanks HuyMCYTB for this video (With negativity 1.7)

    Screenshoot about Negativity

    upload_2020-6-24_19-7-10.png
    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) :
    Cheat.forKey(CheatKeys.THE_CHEAT);

    2) By the cheat name of alias (string from chat for example)
    Cheat.fromString(myString);

    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):
    "com.elikill58.negativity.universal.permissions.Perm"

    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 :
    POTION, REGEN, EAT, BOW
    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)

    ////////////////////////////////////////

    PlayerPacketsClearEvent

    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)
    [​IMG]

    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
    - you for your translation too ? (Contact me)​

    Images

    1. tableau_negativity  3.png
    Osqai, Creeper1724, egor123 and 9 others like this.

Recent Reviews

  1. JaagupKreem
    JaagupKreem
    5/5,
    Version: 1.9.4
    Awesome stuff.

    Requires a bit of configuration but works well fresh out of the box.

    Small amount of false positives but very easy to distinguish real hackers. Does not affect legit players.

    Thanks for your work on this plugin!
    1. Elikill58
      Author's Response
      Hi, thanks you ! I'm happy to see that you like my plugin !
      For false flag, i'm working on it :)
  2. Mapacheeeedou
    Mapacheeeedou
    5/5,
    Version: 1.9.4
    it's nice !! at first it obviously doesn't detect you much, but if you set the plugin it's a beast!
    1. Elikill58
      Author's Response
      Hi, thanks you for the 5 stars ! I'm very happy to see that you like my plugin !
      I'm working on new detection :)
  3. LaserSlimeHD
    LaserSlimeHD
    1/5,
    Version: 1.9.4
    I don't know what i've done wrong here, but it's not detecting anything. Sometimes it logs some violations in console but you barely notice it in game. I can fly, scaffold and even teleport at enormous speeds.
    1. Elikill58
      Author's Response
      Hi, I'm sad to hear that you had issues with Negativity.
      Maybe you had a ping higher than 150ms, that's why you didn't receive alert.
      For Scaffold and Fly, it's not the best detections of the plugin.
      Maybe you don't had permission to see the alert ("negativity.alert" by default).
      I can help you if you come on my discord server.
  4. dnadany689
    dnadany689
    5/5,
    Version: 1.9.3
    I believe this can be a very good anticheat if a few of its falses and bypasses are fixed. (I have reported them to the owner)
    1. Elikill58
      Author's Response
      Hi, yes, I receive your message and i'm currently fixing them :)
      (thanks for full test, result and report !)
  5. HaeroPiggy
    HaeroPiggy
    1/5,
    Version: 1.9.3
    I am in 1.16.1 a lot of false positives, a player who jumps while going up a staircase is detected for speed stairs (or something like that) another just jumped from a tower and was detected as fly, there also false positives on people who jump or run with a speed potion, I was afk (deop) and when I came back the plugin detected me to have fly even though I hadn't even moved
    1. Elikill58
      Author's Response
      Hi, I'm sorry for all issues that you get !
      I didn't find any of those false flag. Are you on latest spigot release ? Can you come on my discord server to talk about it and fix problems ?
  6. Til_W
    Til_W
    3/5,
    Version: 1.9.2
    Lots of false positives with high reliabilitys, sadly.
    A user who tried it out was also able to bypass most detections.
    1. Elikill58
      Author's Response
      Hi, i'm sad to hear that you had issues with Negativity.
      But, the new version is coming like tomorrow, but i cannot update it because i'm in vacacion.
  7. WASD_Harrison
    WASD_Harrison
    5/5,
    Version: 1.9.2
    Easy to use anti-cheat that also comes with a lot of features, the support in the Discord server is quick to answer any questions and help with setup and configuration. The plugin also includes many languages to chose from and different server platforms making it very available to people running any type of server. There are some false flags with some checks but it can easily be toggled on and off through the built-in GUI. Overall, it's a really good anti-cheat if you are looking for an all-rounder free anti-cheat for all servers.
    1. Elikill58
      Author's Response
      Hi,
      I'm verry happy to see that you like it !
      Yes i'm trying to make the better quick support as possible !
      For false flag, i'm fixing everything of them thanks to all report by people like you !
  8. ShinyExploits
    ShinyExploits
    4/5,
    Version: 1.9.2
    Its decent for a free anticheat. I wont be using this for my own server but I highly recommend you test it and form your own opinion before just disregarding the plugin based off this review, or off others.

    KillAura detection isnt great. Used KillAura for around 4 minutes and got 1 warning only.

    Speed detection is bad but I would assume it would be good for a free client. The only real speed it detects is just vanilla speed. I used Vanilla Hop going fast for around 2 minutes and only got 1-2 warnings. Hypixel and Mineplex bypasses work on this speed detection too, and so does bhop. However vanilla speed detection works, very well. Sometimes though the anticheat claims your using "Timer" instead of speed.

    You may also get false positives for just not moving, as I got "timer" warnings for standing still.

    NoFall seems good, I tried all of my clients settings and it always said I was using NoFall. But reading some other peoples reviews, they get detected for NoFall a lot when they arent using NoFall. So while NoFall does detect all of my remix client settings, it does seem to have a lot of false positives and flags legit players (According to other reviews) but it seems the author is trying to fix it, so this shouldnt be a problem in the future.

    Overall, its a decent anticheat considering its free. I am using a paid client (Remix 1.6.8) so I imagine it detects free clients better considering they arent updated as much and the bypasses arent as good as paid clients.

    Decent anticheat considering its free, good job making this. If you can, just improve the above and I think you would have a pretty nice free anticheat.
    1. Elikill58
      Author's Response
      Hello,
      Firstly, i would like to say thanks for for the long text which explain your opinion, and not just say "shit plugin".
      Then, thanks for all test that you have made !

      For KillAura: I know that a lot of my combat detection are not really great, because they are difficult for me to test it and find detection.

      For Speed: i'm surprised. I just add a lot of speed check on 1.9 and 1.9.1, but you already don't have flag.

      For NoFall: yes, i just made very Good detection, but too good... I'm working on fixing all false flag then recode it to make something very optimized.

      Thanks :)
  9. laspi94
    laspi94
    5/5,
    Version: 1.9.2
    Very nice plguin but get so much false /positive in "nofall" but all rest work exelent!
    1. Elikill58
      Author's Response
      Hello,
      Thanks for review !
      For the Nofall false flag, what's your server version ? Can you come on my discord server to talk about it ? (link in main page)
  10. LoyalNightmare
    LoyalNightmare
    4/5,
    Version: 1.9.2
    It's pretty good, the only problem is the false flags. For example when someone stands on a lily pad it will say the are using Jesus
    1. Elikill58
      Author's Response
      Hello,
      Thanks for your review ! I'm happy to see that you like my plugin !
      For false flag, thanks for report ! It's just strange because I already fix lily pad problems ...