Versions
  1. 1.8
  2. 1.9
  3. 1.10
  4. 1.11
  5. 1.12
  6. 1.13
  7. 1.14
  8. 1.15
  9. 1.16
  10. 1.17
  11. 1.18
  12. 1.19
  13. 1.20
  14. 1.21

Dont forget to add this jvm argument (if your java version is higher than 8):
--add-opens=java.base/java.lang=ALL-UNNAMED
1768430367277.png
The license request may take up to 24 hours, don't buy the protection meanwhile you are getting attacked, Prevention is better than cure
LPX
  • ✅Avoid NettyCrashers, prevents netty threads to be blocked by exploits without using any fork;​
  • ✅Dependency Free, doesn't require any dependency;​
  • ✅Frequent updates when a new exploit is detected;​
  • ✅Highly configurable, easy, and detailed configuration anticheat-style;​
  • ✅GUI/Files for recent alerts;​
  • ✅Packet logger in console and automatic logging for heavy packets​
  • ✅1.8+ Compatibility on paper and related forks;​
  • ✅Printer/Schematica compatibility with API or semi-automatic system;​
  • ✅AntiCheat-Fix blocks a few packets which cause anti-cheats to make the server use a lot of CPU;​

WHY LPX?
  1. UNIQUE FIX FOR NETTY CRASHERS, one type of exploit that doesn't affect the server's TPS but Netty's threads. A NettyCrasher makes Netty's threads busy when a packet gets decoded, so the server can't handle future packets for a bit not allowing new players to join and timeoutting a few online players.​
  2. Smooth Packet Limiter, Usually, anti-exploits don't encourage the use of packet limiters because it could cause issues with players having bad connections. LPX has an accurate way to count spam packets and has a fully working VL system to prevent false flags when players lag. If any false is detected, the config can be easily edited to fix false flags.​
  3. Printer/Schematica Compatibility, usually packet limiters plugins causes incompatibility issues with this mods, LPX has a very useful automatic system that detects when a player started using printer mode and that guarantees no false kicks. There is also the option to use the API.
    1768430303337.png
  4. Advanced Packet Logger, if your server is attacked with a packet exploit you can log every packet sent from any player to understand what type of exploit did he use and we can fix it in a few days. Packet Logger can be disabled and configured.
  5. Easy and detailed configuration, you can edit almost everything while you detect false-flags, you can choose to enable/disable kicks for every check, enable/disable specific checks and change EVERY VALUE used in the code.​
CONFIG.YML:
Code:
license: "null"
# Use this if you live in China
force-fallback: false

messages:
  main-color: "&5"
  second-color: "&d"

  prefix: "%main-color%LPX >>"

  kick: "&cYou are sending suspicious packets."
  kick-alert: "%prefix% %second-color%%player% &7was kicked"

  no-permission: "%prefix% &cInsufficient permissions &7(%permission%)"
  invalid-arguments: "%prefix% &cInvalid arguments!"
  injection-failure: "%prefix% &cInjection failure!"
  update-found: "%prefix% &aAn update was found!"
  null-address: "%prefix% &cYou are joining with an invalid address!"
  unknown-command: "Unknown command. Type \"/help\" for help."

  alerts:
    permission: "lpx.alerts"
    format: "%prefix% %second-color%%player% &7failed %main-color%%check% %type% &7(%vl%/%max-vl%)"
    hover:
      - "%main-color%Description:"
      - "%second-color%%description%"
      - ""
      - "%main-color%Infos: %infos%"
      - ""
    enabled: "%prefix% &aAlerts enabled"
    disabled: "%prefix% &cAlerts disabled"

options:
  # Enable this only if you have fake players who cause errors during the injection
  # WARNING: Enabling this will allow players to join even during injection failures
  silent-failures: false

  # Whether any player with the permission should receive alerts by default
  # Setting this to false will require the player to run /lpx alerts to receive alerts
  alerts-on-join: true

  # Whether LPX should kick players when an exception in their handlers occurs
  kick-on-exception: true

  # LPX will prevent any type of item exploit that slows Netty threads.
  # Available options:
  # CREATIVE (disable decoding for every item and for creative mode)
  # ALL (disable decoding for every item) (DEFAULT) (can cause item ghosting)
  # SMART (disable decoding in a smart way)
  # NONE (vanilla behavior)
  disable-item-decoding: SMART

  # Used only if "disable-item-decoding" is set to CREATIVE.
  # The components listed below will still be decoded in creative mode.
  # https://github.com/retrooper/packetevents/blob/2.0/api/src/main/java/com/github/retrooper/packetevents/protocol/component/ComponentTypes.java
  creative-exempts:
    - "custom_name"
    - "lore"
    - "enchantments"

  # Maximum depth an ItemStack can have per packet
  max-item-depth: 4

  # Maximum number of items a packet can contain
  max-items-per-packet: 1458

  # LPX will prevent any type of component exploit that slows Netty threads
  skip-component-decoding: true

  # If this option is set to true, players won't be able to see the output of /lpx
  hidden-command: false

  # If activated, players with "lpx.bypass" permission will ignore checks
  bypass-permission: false

  # Add support for Geyser players (Bedrock Edition)
  geyser: false

  # If you are using AxiomPaper and you are getting kicked enable this
  axiom: false

  # Check if the plugin can be updated.
  # Permission: "lpx.update"
  check-updates: true

  # Whether bStats should be loaded (https://bstats.org/plugin/bukkit/LPX/9156)
  bstats: true

  # Whether task that resets VL should be enabled
  clear-task:
    enabled: true
    # Repeat delay in seconds
    delay: 300

  printer:
    # Enable this if your server allows the use of printer/schematic mod, and you are not using our Printer's APIs
    automatic: false
    # Lower this value if players don't enter in printer mode correctly
    place-threshold: 10
    # Idle time after exiting printer mode
    disable-delay: 3000
    # Whether players with the permission should receive printer's alerts
    alerts: true
    # Permission to receive printer's alerts
    permission: "lpx.alerts.printer"
    join: "%prefix% %second-color%%player% &7joined printer mode (%mode%)"
    leave: "%prefix% %second-color%%player% &7left printer mode"

  mechanics:
    # Sets a minimum time to reuse the nether portal. You can set it to -1 to disable.
    # WARNING: If you are using Intave put this to -1 to disable
    nether-portal-delay: 1000
    # Prevents the oneshot bow. -1 to disable
    max-arrow-velocity: 15
    # Prevents sheep extinction. -1 to disable
    shears-cooldown: 500
    # Prevents players to interact with the inventory on block break
    break-close-inventory: false
    # Prevents a strange crash exploit using redstone with trapdoors, rails and comparator (BETA)
    trapdoor-rail-redstone: true
    # Prevents players to open containers too fast (time in milliseconds. -1 to disable)
    interact-container-delay: 100

  alerts:
    # Whether alerts should be stored in a file
    store: true
    # Amount of days to keep the alerts
    days: 14

  # Server name, used for API integrations
  server: unnamed

  # Delay in milliseconds to wait before sending new alerts after a punishment
  punish-delay: 1000

  debug: false

  # If set to true LPX will look for the config.yml in ../config/config.yml
  external-config: false

discord:
  enabled: false
  url: ""
  color: "#00FFFF"
  content:
    - "**Player**: %player%"
    - "**Check**: %check% %type%"
    - "**VL**: %vl%/%max-vl%"
    - "**Infos**: %infos%"
    - "**Description**: %description%"

packet-logger:
  # If a packet requires more than this amount of time (in nanoseconds) to be processed, it will be logged
  # Example: 5000000ns = 5ms, -1 to disable
  heavy-packet-threshold: 5000000

  enabled: false

  # Where to save the logs. It can be CONSOLE, FILE or BOTH
  output: FILE

  # Netty watchdog thread. Enable it only for debug using /lpx watchdog
  # Do not use this in production because it may cause TPS drops
  netty-watchdog:
    # Max time (in milliseconds) a Netty thread can be be blocked before being dumped
    max-time: 50
    # Delay between thread health checks (in milliseconds)
    check-frequency: 25
    # Time to wait before dumping the thread again (in milliseconds)
    report-cooldown: 5000

  # MODES: whitelist, blacklist
  # Whitelist mode: only players in the list will be logged
  # Blacklist mode: only players not in the list will be logged
  player-mode: whitelist

  players:
    - Ytnoos

  # MODES: whitelist, blacklist
  # Whitelist mode: only packets in the list will be logged
  # Blacklist mode: only packet not in the list will be logged
  packet-mode: blacklist

  # To find out correct names, https://github.com/retrooper/packetevents/blob/2.0/api/src/main/java/com/github/retrooper/packetevents/protocol/packettype/PacketType.java#L510
  packets:
    - PLAYER_FLYING
    - PLAYER_POSITION
    - PLAYER_POSITION_AND_ROTATION
    - PLAYER_ROTATION
    - KEEP_ALIVE
    - ANIMATION
    - WINDOW_CONFIRMATION
    - CLIENT_TICK_END

checks:
  netty:
    a:
      # DON'T DISABLE THIS CHECK, IF IT FALSES PLEASE DISABLE AUTOMATIC MODE AND INCREASE "max" VALUE
      enabled: true
      punish: true
      max-vl: 3
      min-vl: 1
      punish-commands:
        - 'lpx kick %player% &cYou are sending suspicious packets.'
      options:
        # If this is set to automatic, then the max value below will assume one of these values based on your server version
        # 1.8 = 8448
        # 1.12 = 24576
        # >=1.13 = 98304
        automatic: true
        # You can put this value to lower numbers (4096, 8192, 12228) to have much stricter protections
        max: 98304
  window:
    a:
      enabled: true
      punish: true
      max-vl: 5
      min-vl: 1
      punish-commands:
        - 'lpx kick %player% &cYou are sending suspicious packets.'
      buffer:
        max: 3
        multiply: 0.25
        decay: 1
    b:
      enabled: true
      punish: true
      max-vl: 5
      min-vl: 1
      punish-commands:
        - 'lpx kick %player% &cYou are sending suspicious packets.'
      buffer:
        max: 3
        multiply: 0.25
        decay: 1
    c:
      enabled: true
      punish: true
      max-vl: 5
      min-vl: 1
      punish-commands:
        - 'lpx kick %player% &cYou are sending suspicious packets.'
    d:
      enabled: true
      punish: true
      max-vl: 2
      min-vl: 1
      punish-commands:
        - 'lpx kick %player% &cYou are sending suspicious packets.'
  item:
    a:
      enabled: true
      punish: true
      max-vl: 1
      min-vl: 1
      punish-commands:
        - 'lpx kick %player% &cYou are sending suspicious packets.'
    b:
      enabled: true
      punish: true
      max-vl: 1
      min-vl: 1
      punish-commands:
        - 'lpx kick %player% &cYou are sending suspicious packets.'
      options:
        max: 50
        max-modern: 100
    c:
      enabled: false
      punish: true
      max-vl: 3
      min-vl: 1
      punish-commands:
        - 'lpx kick %player% &cYou are sending suspicious packets.'
      options:
        remove-ascii: true
    d:
      enabled: true
      punish: true
      max-vl: 3
      min-vl: 1
      punish-commands:
        - 'lpx kick %player% &cYou are sending suspicious packets.'
      options:
        max-bytes: 255
        resolved-tolerance: 3
        resize: true
    e:
      enabled: true
      punish: true
      max-vl: 3
      min-vl: 1
      punish-commands:
        - 'lpx kick %player% &cYou are sending suspicious packets.'
      options:
        clear: true
        occurrences:
          - "translate,3"
          - "with,3"
          - "extra,15"
          - "{,15"
    f:
      enabled: true
      punish: true
      max-vl: 1
      min-vl: 1
      punish-commands:
        - 'lpx kick %player% &cYou are sending suspicious packets.'
      options:
        replace: true
    g:
      enabled: true
      punish: true
      max-vl: 3
      min-vl: 1
      punish-commands:
        - 'lpx kick %player% &cYou are sending suspicious packets.'
      options:
        clear: true
    i:
      enabled: true
      punish: true
      max-vl: 2
      min-vl: 1
      punish-commands:
        - 'lpx kick %player% &cYou are sending suspicious packets.'
      options:
        countThreshold: 768
        max-depth: 64
    j:
      enabled: true
      punish: true
      max-vl: 2
      min-vl: 1
      punish-commands:
        - 'lpx kick %player% &cYou are sending suspicious packets.'
      options:
        max-list: 12
        max-array: 12
  creative:
    a:
      enabled: true
      punish: true
      max-vl: 3
      min-vl: 1
      punish-commands:
        - 'lpx kick %player% &cYou are sending suspicious packets.'
    b:
      enabled: true
      punish: true
      max-vl: 3
      min-vl: 1
      punish-commands:
        - 'lpx kick %player% &cYou are sending suspicious packets.'
      options:
        max: 127
        min: 0
    c:
      enabled: true
      punish: true
      max-vl: 3
      min-vl: 1
      punish-commands:
        - 'lpx kick %player% &cYou are sending suspicious packets.'
      options:
        max: 3000
    d:
      enabled: true
      punish: true
      max-vl: 3
      min-vl: 1
      punish-commands:
        - 'lpx kick %player% &cYou are sending suspicious packets.'
      options:
        max: 16384
    e:
      enabled: true
      punish: true
      max-vl: 3
      min-vl: 1
      punish-commands:
        - 'lpx kick %player% &cYou are sending suspicious packets.'
      options:
        blacklist:
          - "run_command"
          - "translation.test.invalid"
    f:
      enabled: true
      punish: true
      max-vl: 3
      min-vl: 1
      punish-commands:
        - 'lpx kick %player% &cYou are sending suspicious packets.'
      options:
        max: 64
    g:
      enabled: true
      punish: true
      max-vl: 3
      min-vl: 1
      punish-commands:
        - 'lpx kick %player% &cYou are sending suspicious packets.'
  place:
    a:
      enabled: true
      punish: true
      max-vl: 10
      min-vl: 1
      punish-commands:
        - 'lpx kick %player% &cYou are sending suspicious packets.'
      buffer:
        max: 5
        multiply: 0.5
        decay: 1
      options:
        max: 100
    b:
      enabled: true
      punish: true
      max-vl: 3
      min-vl: 1
      punish-commands:
        - 'lpx kick %player% &cYou are sending suspicious packets.'
      options:
        max: 70
    c:
      enabled: true
      punish: true
      max-vl: 5
      min-vl: 1
      punish-commands:
        - 'lpx kick %player% &cYou are sending suspicious packets.'
      buffer:
        max: 5
        multiply: 0.5
        decay: 1
      options:
        max: 50
  flood:
    a:
      enabled: true
      punish: true
      max-vl: 3
      min-vl: 1
      punish-commands:
        - 'lpx kick %player% &cYou are sending too many packets. :<'
      options:
        max: 1100
    b:
      enabled: true
      punish: true
      max-vl: 6
      min-vl: 3
      punish-commands:
        - 'lpx kick %player% &cYou are sending too many packets. >:'
      options:
        # The following strings are represented by 2 or 3 parameters:
        # PacketName | Max packets | Interval(ms) | Periods | Warnings
        # "ANIMATION,50,500,5,2" Means this check will flag when a player sends 50 ANIMATION packets in an interval of 500ms for 2 times in a period of (5*500ms)
        limits:
          - "ANIMATION,50,500,5,2"
          - "USE_ITEM,60,1000,5,2"
          - "PLAYER_BLOCK_PLACEMENT,14,100,6,3"
          - "CLICK_WINDOW,20,200,10,4"
          - "CREATIVE_INVENTORY_ACTION,20,200,10,4"
          - "PLAYER_POSITION,40,100,5,3"
          - "PLAYER_ROTATION,40,100,5,3"
          - "PLAYER_POSITION_AND_ROTATION,40,100,5,3"
          - "CRAFT_RECIPE_REQUEST,15,1000,2,1"
          - "TAB_COMPLETE,40,1000,2,1"
          - "INTERACT_ENTITY,25,500,5,3"
          - "CHAT_COMMAND,5,500,5,2"
          - "PLAYER_DIGGING,40,500,6,3"
          - "UPDATE_SIGN,2,300,6,2"
    c:
      enabled: true
      punish: true
      max-vl: 3
      min-vl: 1
      punish-commands:
        - 'lpx kick %player% &cYou are sending too many packets. :o'
      options:
        max: 20
        reset-interval: 100
        max-periods: 6
        max-warnings: 3
        big-threshold: 6000
    d:
      enabled: true
      punish: true
      max-vl: 4
      min-vl: 1
      punish-commands:
        - 'lpx kick %player% &cYou are sending too many packets. o:'
      options:
        max: 13
        big-threshold: 4000
        max-big: 6
    f:
      enabled: true
      punish: true
      max-vl: 2
      min-vl: 1
      punish-commands:
        - 'lpx kick %player% &cYou are sending too many packets. :$'
      options:
        max: 8
    g:
      enabled: true
      punish: true
      max-vl: 2
      min-vl: 1
      punish-commands:
        - 'lpx kick %player% &cYou are sending too many packets. :&'
      options:
        max: 70
        interval: 500
        cancel: true
        burst-max-flags: 2
        burst-interval: 1200
  position:
    a:
      enabled: true
      punish: true
      max-vl: 1
      min-vl: 1
      punish-commands:
        - 'lpx kick %player% &cYou are sending suspicious packets.'
    b:
      enabled: true
      punish: true
      max-vl: 6
      min-vl: 1
      buffer:
        max: 5
        multiply: 0.5
        decay: 0.05
      punish-commands:
        - 'lpx kick %player% &cYou are sending suspicious packets.'
      options:
        delay: 2000
        hard: false
        ignore-fly: true
    c:
      enabled: true
      punish: true
      max-vl: 1
      min-vl: 1
      punish-commands:
        - 'lpx kick %player% &cYou are sending suspicious packets.'
      options:
        max: 300000
    d:
      enabled: true
      punish: true
      max-vl: 1
      min-vl: 1
      punish-commands:
        - 'lpx kick %player% &cYou are sending suspicious packets.'
      options:
        max: 1000000
  payload:
    a:
      enabled: true
      punish: true
      max-vl: 3
      min-vl: 1
      punish-commands:
        - 'lpx kick %player% &cYou are sending suspicious packets.'
    b:
      enabled: true
      punish: true
      max-vl: 2
      min-vl: 1
      punish-commands:
        - 'lpx kick %player% &cYou are sending suspicious packets.'
      options:
        delay: 1000
        max: 15
    c:
      enabled: true
      punish: true
      max-vl: 3
      min-vl: 1
      punish-commands:
        - 'lpx kick %player% &cYou are sending suspicious packets.'
    d:
      enabled: true
      punish: true
      max-vl: 5
      min-vl: 1
      punish-commands:
        - 'lpx kick %player% &cYou are sending suspicious packets.'
    e:
      enabled: true
      punish: true
      max-vl: 1
      min-vl: 1
      punish-commands:
        - 'lpx kick %player% &cYou are sending suspicious packets.'
    f:
      enabled: true
      punish: true
      max-vl: 3
      min-vl: 1
      punish-commands:
        - 'lpx kick %player% &cYou are sending suspicious packets.'
  book:
    a:
      enabled: true
      punish: true
      max-vl: 3
      min-vl: 1
      punish-commands:
        - 'lpx kick %player% &cYou are sending suspicious packets.'
      options:
        max: 15
  tab:
    a:
      enabled: true
      punish: true
      max-vl: 10
      min-vl: 1
      punish-commands:
        - 'lpx kick %player% &cYou are sending suspicious packets.'
      options:
        starts:
          - "/to "
          - "//to"
          - "/calc "
          - "//calc"
        contains:
          - "targetoffset"
          - "for("
          - "^(."
          - "*."
    b:
      enabled: true
      punish: false
      max-vl: 1
      min-vl: -1
      punish-commands:
        - 'lpx kick %player% &cYou are sending suspicious packets.'
      options:
        max-length: 256
        characters:
          - "["
          - "]"
          - "{"
          - "}"
          - "@"
          - "="
          - "nbt"
  command:
    a:
      enabled: true
      punish: true
      max-vl: 3
      min-vl: 1
      punish-commands:
        - 'lpx kick %player% &cYou are sending suspicious packets.'
      options:
        commands: #CREDITS TO: https://github.com/2lstudios-mc/ExploitFixer
          # WorldEdit exploit
          - "//calc"
          - "//calculate"
          - "//eval"
          - "//evaluate"
          - "//solve"
          # HolographicDisplays exploit
          - "/hd readtext"
          - "/holo readtext"
          - "/hologram readtext"
          - "/holograms readtext"
          - "/holographicdisplays readtext"
          # PermissionsEx exploit
          - "/pex promote"
          - "/pex demote"
          - "/promote"
          - "/demote"
          - "/execute"
          # Multiverse exploit
          - "/mv ^"
          - "/mv help ^"
          - "/mvhelp ^"
          - "/mv <"
          - "/mv help <"
          - "/mvhelp <"
          - "/$"
  recipe:
    a:
      enabled: true
      punish: true
      max-vl: 1
      min-vl: 1
      punish-commands:
        - 'lpx kick %player% &cYou are sending suspicious packets.'
    b:
      enabled: true
      punish: true
      max-vl: 1
      min-vl: 1
      punish-commands:
        - 'lpx kick %player% &cYou are sending suspicious packets.'


CAN I TRUST THIS PLUGIN?:
1768430336801.png
Support/License Request:
PERMISSIONS - COMMANDS:
  • /lpx alerts - lpx.alerts - Receive alerts​
  • lpx.alerts.printer - Receive printer alerts​
  • /lpx reload - lpx.reload - Reload the configuration​
  • /lpx gui- lpx.gui - Open the GUI​
  • /lpx clear - lpx.clear - Clear old packet logs​
  • /lpx kick <player> <message> - lpx.kick - Force close player connection​
KNOWN INCOMPATIBILITIES:
  • ProtocolLib < 5.0.0​
  • Images and Denizen on certain situations​
  • Arclight​
  • Java 8 (Java17+ is required)​
DISCLAIMER:

LPX aims to protect your server at a packet level, it won't touch anything related to vanilla mechanics so it doesn't protect from redstone lag machines, dupes or illegal creative items. It won't also protects you from DDoS, Bot and Proxy level exploits since it runs only on spigot instances!

READ CAREFULLY:
  • The license will be valid ONLY for 1 network and you can whitelist your machine addresses using the discord bot.​
  • The license request may take up to 24 hours, don't buy the protection meanwhile you are getting attacked, Prevention is better than cure.​
  • LPX does not have to solve problems generated by other plugins such as TPS drop, regardless of this our support service guarantees you to find which plugin is causing the problem.​

TOS

By purchasing this plugin, you agree to the following:
  • You have read the plugin page in its entirety.​
  • You are not allowed to redistribute this plugin in any way shape or form.​
  • You are not allowed to decompile or attempt to reverse engineer the plugin in any way shape or form.​
  • We are not responsible for any issues caused by external plugins.​
  • We can terminate your license at any point for any reason we deem fit.​
  • Refunds will vary on a case-by-case basis; buyers may be only eligible for a partial refund depending on the situation. You are not eligible for a refund if 7 days have passed since you purchased the plugin. Refunds will not be given for any reason/disclaimer that is clearly listed on the plugin page. Refunds will not be given for any reason that has nothing to do with this resource (i.e. shutting down your server).​
  • If you are to be given a refund, you agree to delete your review/not review the product​
  • Transferring ownership of the plugin from one account to another is not allowed.​
  • You are responsible for your copy of LPX. If your copy of LPX is found to be redistributed, you will still be held responsible.​

Uploader


Downloads
250
Views
7,367
First release
Last update
Rating
5.00 star(s) 2 ratings

More resources from ArteffCods

Latest updates

  1. UPDATE 3.8.0

    This version was not heavily tested so take it as a BETA version. I will announce in the discord...
  2. UPDATE 3.7.12

    Added support for 26.1 clients Updated packetevents Fixed dimension_type exception Fixed...
  3. UPDATE 3.7.11

    Reworked ItemG/H to actually work in the correct way Reworked ItemC to reduce false flags ItemJ...

Latest reviews

nice thank youuu
10/10 product, if it doesnt work, just add this flag: --add-opens=java.base/java.lang=ALL-UNNAMED
thanks Dominikhun250 for helping me <3