> ## Documentation Index
> Fetch the complete documentation index at: https://perplayerkit.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Anti-Exploit Settings for PerPlayerKit

> Prevent item duplication and abuse with PerPlayerKit's anti-exploit features: kitroom item restrictions, import filter, command filter, and shulker protection.

PerPlayerKit includes a set of optional safeguards designed to close common vectors for item duplication and kit abuse on competitive PvP servers. All four flags default to `false` so they never interfere with a fresh installation — enable only the ones appropriate for your server's rules and format.

## Full Configuration Block

```yaml config.yml theme={null}
anti-exploit:
  only-allow-kitroom-items: false
  import-filter: false
  block-spaces-in-commands: false
  prevent-shulkers-dropping-items: false
```

## Configuration Reference

<ParamField path="only-allow-kitroom-items" type="boolean" default="false">
  When `true`, players can only save items to their personal kits if those items already exist in the kit room. Any item not present in the kit room is silently rejected when a player tries to include it in a kit. This ensures that the kit room acts as the single authoritative source of approved gear.
</ParamField>

<ParamField path="import-filter" type="boolean" default="false">
  Extends `only-allow-kitroom-items` to cover the **kit import button**. When `true`, the import feature strips any items from the imported kit that are not present in the kit room before saving. This prevents players from duplicating unapproved items by importing kits that were saved before the restriction was in place.

  <Warning>
    `import-filter` has no effect unless `only-allow-kitroom-items` is also set to `true`. Enable both flags together to fully close the import duplication vector.
  </Warning>
</ParamField>

<ParamField path="block-spaces-in-commands" type="boolean" default="false">
  When `true`, the plugin rejects commands that contain space characters in positions where they could be used to bypass command-filter checks. Enable this if players on your server have found ways to circumvent word-based command restrictions by inserting spaces into arguments.
</ParamField>

<ParamField path="prevent-shulkers-dropping-items" type="boolean" default="false">
  When `true`, shulker boxes managed by PerPlayerKit (such as regear shulkers) will not drop their contents when broken. This is primarily an **anti-lag** measure — it stops players from littering the ground with items by rapidly breaking regear shulkers, which can cause significant entity lag on busy servers.
</ParamField>

## Recommended Setup for Competitive Servers

<Tip>
  Enable `only-allow-kitroom-items` (and `import-filter`) on any server where kit fairness matters — ranked PvP, tournament play, or any format with a controlled item pool. Restricting kits to kit-room items makes it trivially easy for staff to audit and update the approved gear list in one place.
</Tip>

<Steps>
  <Step title="Populate the kit room">
    Add every item you want to allow in player kits to the kit room. This becomes the approved item list.
  </Step>

  <Step title="Enable the restriction">
    Set both `only-allow-kitroom-items: true` and `import-filter: true` in `config.yml`, then reload the plugin with `/ppk reload`.
  </Step>

  <Step title="Test with a player account">
    Try saving a kit that contains a non-kit-room item to confirm it is rejected. Then verify that a kit containing only approved items saves successfully.
  </Step>
</Steps>

<Note>
  If players report that items are mysteriously disappearing from their kits after you change settings, `only-allow-kitroom-items` or `import-filter` is the most likely cause. Check that every item those players use is present in the kit room. Items removed from the kit room after kits have been saved will be filtered out the next time a player loads or re-saves their kit.
</Note>
