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

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
    Known issues: False flag with some detections

    banniere_twitter_neg_3.png
    Please, use latest version !
    Cauldron isn't successfully supported

    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]

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

    [​IMG]
    (SponsorShip)
    [​IMG]

    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. 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.
  2. 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 :)
  3. 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)
  4. 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 ...
  5. Sylomer
    Sylomer
    4/5,
    Version: 1.9.2
    It's a good anti-cheat, the only false flag is for nofall and when I repeatedly jump on and off of a fence with a carpet: https://youtu.be/IEheihF778Y
    1. Elikill58
      Author's Response
      Hello,
      Thanks you for your review ! I'm happy to see that you like it :)
      For false flag, i will fix it !
  6. kyb7
    kyb7
    2/5,
    Version: 1.9.2
    Огромное количество ложных срабатываний. По умолчанию в конфигурации отключен вход с 1 IP для 2 игроков. Античит несколько раз вызывал краш сервера.
    1. Elikill58
      Author's Response
      Hello,
      Can you write your message in English ?
      I'm sorry to hear for false flag, i'm fixing them
  7. weekenzieYT
    weekenzieYT
    4/5,
    Version: 1.9.2
    Very good plugin! But when sometimes im walking it kicks me for flying? I don't even have flying enabled
    1. Elikill58
      Author's Response
      Hello,
      Thanks for your review.
      Im sorry to see that you have fly false flag, can you tell me more on when it appear ?
  8. Rayzer132321
    Rayzer132321
    1/5,
    Version: 1.9.2
    I got detected for no fall fast bow force fild and others and im not using any type of hacks!
    1. Elikill58
      Author's Response
      Hello,
      I'm sorry for the issues. Can you tell me you server version ?
      For NoFall, I know. But can you come in my discord server https://discord.gg/KHRVTX2 and more explain false flag ?
  9. FireWolf
    FireWolf
    3/5,
    Version: 1.9.2
    Striders trigger NoSlowDown and Step false positive. Shears on leaves trigger Nuker false positive. Using McMMO also triggers a ridiculous amount of false positives. Have had way too many problems with this plugin. Would not recommend using this anti-cheat even on a mostly vanilla server. Only reason I gave three stars is because of the Negativity GUI. Has a few nice features compiled together such as mining counters to combat x-ray. Dev seems nice and genuinely wants to make this a quality plugin, but it's just not usable in its current state
    1. Elikill58
      Author's Response
      Hello,
      I'm sorry to hear that you get false flag, they will be fixed soon !
      Yes, I'm trying to do better as possible, thanks for 3 stars (and no 1).
      (And thanks <3)
  10. patbeni
    patbeni
    5/5,
    Version: 1.9.1
    Awesome cheat detection! But can you please add message configuration? Because I want to configure the prefix and the kick message etc. Otherwise best cheat detection on the market and thanks for the plugin! Sorry for the bad English!
    1. Elikill58
      Author's Response
      Hello,
      I'm really happy to see that you like my plugin !
      Thanks !
      The messages are editable, check "/plugins/Negativity/lang" folder, then you will see lang files