Special support on Discord
1.16.5 - 1.21.8 ⭕Police System plugin minecraft & Criminal detection & Wanted and Cuff system ✅⭐
Spigot

1.16.5 - 1.21.8 ⭕Police System plugin minecraft & Criminal detection & Wanted and Cuff system ✅⭐

Police system plugin for role-playing servers & Find criminal and do your job

What is Police System?🔥

Police System is a complete police and crime roleplay plugin for Minecraft servers. Officers can secretly monitor suspects, collect unidentified blood evidence, identify attackers through forensic laboratories, track wanted players, respond to emergency calls, review criminal cases, arrest suspects, and manage secure jail sentences.

⚡Features⚡

  • ✅ Cuff and Uncuff System
  • ✅ Four-Level Wanted System
  • ✅ Persistent Wanted data with automatic cleanup
  • ✅ Online Wanted List and tracking compass
  • ✅ Secure Jail and configurable release locations
  • ✅ Arrest System with configurable rewards
  • ✅ Emergency 110 Call System
  • ✅ Live caller tracking and configurable service price
  • ✅ Speed Camera System
  • ✅ Frisk and contraband detection
  • ✅ Criminal Case and Record System
  • ✅ Unique case numbers, officer notes, and senior review
  • ✅ Multiple configurable case-review areas
  • ✅ Old case cleanup system
  • ✅ Secret Forensic Blood Tracker item
  • ✅ Unidentified Blood Evidence System
  • ✅ Configurable evidence expiration
  • ✅ Safe ArmorStand cleanup after shutdown and restart
  • ✅ Multiple configurable forensic laboratories
  • ✅ Forensic analysis GUI with suspect identity and UUID
  • ✅ Automatic Wanted Level 4 after a DNA match
  • ✅ Offline Wanted Level 4 support
  • ✅ Custom forensic sounds and particles
  • ✅ Door-breaking equipment
  • ✅ Custom messages, sounds, particles, rewards, and items
  • ✅ PlaceholderAPI support
  • ✅ Optimized for roleplay and large servers

Communication with us and..✅

  • If you experience any problems or have a feature request, open a Discord ticket. Support will be provided free of charge.

Terms of Service to which you agree by purchasing this plugin from spigotmc.org:

Terms of Service

You cannot redistribute, resell, or give this plugin to anyone else.

We do not provide support to servers involved with piracy in any way, shape, or form.

We reserve the right to deny Discord access and support to users using pirated plugin builds.

You cannot modify or decompile the plugin.

You may only use the plugin on one server or network at a time.

You may only download this plugin from an official source, including PeakDevelopment or SpigotMC.

Bugs must be reported through a Discord ticket.

PeakDevelopment reserves the right to update these terms at any time. You must follow the latest version.

All purchases are final and non-refundable.

Example configuration
## Messages
Jail:
  location:
    world: "world"
    x: 129.0
    y: 1.0
    z: 184.0
    yaw: 0.0
    pitch: 0.0
  maximum-distance: 70.0
  release-location:
    enabled: false #When false, the jail world's spawn is used
    world: "world"
    x: 0.0
    y: 64.0
    z: 0.0
    yaw: 0.0
    pitch: 0.0

Wanted-tracking:
  arrival-distance: 3.0

Wanted-storage:
  inactive-expiry-days: 10

Blood-system:
  monitor-minutes: 30
  dispatch-coordinate-error: 50
  evidence-lifetime-minutes: 15
  tracker-item:
    material: "BLAZE_ROD"
    display-name: "&4&lForensic Blood Tracker"
    lore:
      - "&7Right-click a suspect to attach"
      - "&7a hidden forensic tracker."
  evidence-item:
    display-name: "&4&lSealed Blood Evidence"
    lore: "&7Deliver this sample to a forensic laboratory."
  result-gui:
    title: "&4&lForensic Analysis"
  laboratories:
    particles:
      enabled: true
      count: 8
    locations:
      central-lab:
        world: "world"
        x: 0.0
        y: 64.0
        z: 0.0
        radius: 5.0

Police-call:
  price: 1000
  cooldown-seconds: 30
  request-expiry-seconds: 120
  arrival-distance: 3.0
  allow-cancel-after-accept: true

Speed-camera:
  detection-radius: 30.0
  speed-limit: 22.0
  fine: 500
  show-readings: true

# Case files can only be reviewed near one of these configured locations.
# Add as many locations as needed (police station, courthouse, archive, etc.).
Criminal-case:
  review-areas:
    enabled: true
    locations:
      police-station:
        world: "world"
        x: 0.0
        y: 64.0
        z: 0.0
        radius: 8.0

Messages:
  general:
    no-permission: "&cYou do not have permission."
    player-not-found: "&cPlayer not found."
    reloaded: "&6Police System reloaded!"
    players-only: "&cOnly players can use this command."
  jail:
    jailed: "&cYou have been jailed for %seconds% seconds. Reason: %reason%"
    released: "&aYou have been released!"
    unjailed: "&aYou have been unjailed by an administrator."
    escape-blocked: "&cYou cannot escape jail. You have been returned."
    usage: "&eUsage: /jail <player> <seconds> [reason]"
    info-usage: "&eUsage: /jailinfo <player>"
    unjail-usage: "&eUsage: /unjail <player>"
    already-jailed: "&c%player% is already jailed."
    not-jailed: "&c%player% is not jailed."
    invalid-time: "&cTime must be a valid number."
    sender-jailed: "&a%player% has been jailed."
    sender-unjailed: "&a%player% has been unjailed."
    info: "&e%player% &7is jailed for &c%seconds% &7seconds. Reason: &f%reason%"
  wanted-tracking:
    no-permission: "&cYou do not have permission to track wanted players."
    compass-name: "&c&lWanted Tracker"
    compass-lore: "&7Target: &e%target%"
    started: "&aTracking &e%target%&a. Follow the compass."
    arrived: "&aYou have reached the wanted player. Tracking completed."
    dropped: "&cTracker dropped. Tracking cancelled."
    target-unavailable: "&cThe wanted player is dead or offline. Tracking cancelled."
    officer-unavailable: "&cThe officer is unavailable."
    not-wanted: "&cThis player is no longer wanted."
    different-world: "&cThe target is currently in another world."
    replaced: "&cPrevious tracking was replaced."
    inventory-full: "&cClear one inventory slot before starting tracking."
  police-call:
    already-active: "&cYou already have an active police request."
    cooldown: "&cWait %seconds% seconds before making another call."
    created: "&aYour police request was submitted. Reason: &f%reason%"
    dispatch-new: "&9[Dispatch] &e%caller% &7needs assistance: &f%reason%"
    officer-busy: "&cComplete your current call before accepting another."
    caller-offline: "&cThe caller is no longer online."
    not-active: "&cThis player has no active police request."
    already-accepted: "&cThis request has already been accepted."
    accepted-officer: "&aYou accepted &e%caller%'s &arequest."
    accepted-caller: "&eOfficer &b%officer% &eaccepted your request."
    dispatch-accepted: "&9[Dispatch] &e%officer% accepted %caller%'s call."
    compass-name: "&9&lEmergency Tracker"
    compass-lore: "&7Caller: &e%caller%"
    arrived-caller: "&aPolice arrived. Service fee: &c$%price%"
    arrived-officer: "&aCall completed. You received &e$%price%"
    insufficient-funds: "&cYou do not have enough money for the police service fee."
    insufficient-funds-officer: "&cThe caller could not pay the service fee."
    no-request: "&cYou do not have an active police request."
    cannot-cancel-accepted: "&cYou cannot cancel after an officer accepts the call."
    cancelled: "&cThe police request was cancelled."
    expired: "&cNo officer accepted the request in time."
    caller-unavailable: "&cThe caller died or left. The request was cancelled."
    officer-unavailable: "&cThe officer died or left. The request was cancelled."
    tracker-dropped: "&cThe tracking compass was dropped. The request was cancelled."
    inventory-full: "&cClear one inventory slot before accepting a call."
    accept-usage: "&eUsage: /110-accept <player>"
  wanted:
    usage: "&fUsage: /wanted clear <player> or /wanted set <player> <1/2/3/4>"
    unknown: "&cUnknown subcommand. Use clear or set."
    clear-usage: "&fUsage: /wanted clear <player>"
    set-usage: "&fUsage: /wanted set <player> <1/2/3/4>"
    cleared-sender: "&aWanted status for %player% cleared."
    cleared-target: "&aYour wanted status has been cleared."
    invalid-level: "&cInvalid level. Use 1, 2, 3 or 4."
    set-sender: "&e%player% is now Wanted Level %level%."
    set-target: "&cYou are now Wanted Level %level%!"
  frisk:
    usage: "&eUsage: /frisk <player>"
    self: "&cYou cannot frisk yourself."
    too-far: "&cTarget must be within 5 blocks."
    target-start: "&cOfficer &e%officer% &7is frisking you. Do not move."
    officer-start: "&aYou started frisking &e%target%."
    confiscated-officer: "&aYou confiscated &e%item% &afrom &e%target%."
    confiscated-target: "&cPolice confiscated your &e%item%."
  blood:
    enabled: "&aBlood sample mode enabled. The next kill will drop a sample."
    disabled: "&cBlood sample mode disabled."
    usage: "&eUse the configured Blood Tracker item on a player."
    setlab-usage: "&eAdmin: /bloodsample setlab <name> <radius>"
    invalid-lab-name: "&cLaboratory names may only contain letters, numbers, _ and -."
    invalid-radius: "&cRadius must be between 1 and 100 blocks."
    lab-saved: "&aBlood laboratory &e%lab% &awas saved."
    monitor-started: "&aYou secretly attached the Blood Tracker to &e%player% &afor %minutes% minutes."
    tracker-self: "&cYou cannot attach the tracker to yourself."
    dispatch-alert: "&4[Forensics] &cAn attack on %victim% left blood evidence. Approximate location: %x%, %y%, %z%."
    dispatch-actionbar: "&cNew unidentified blood evidence detected"
    collect-no-permission: "&cYou are not authorized to collect blood evidence."
    inventory-full: "&cYour inventory is full."
    collected: "&aBlood evidence collected. Deliver it to a forensic laboratory."
    test-completed: "&aEvidence confirmed. %suspect% is now Wanted Level 4."
    wanted-issued: "&4[Forensics] &c%suspect% is now Wanted Level 4. Locate and arrest the suspect."
    invalid-sample: "&cThis blood sample is invalid."
  judge:
    usage: "&cUsage: /judge-convict <player> <time>"
  arrest:
    usage: "&eUsage: /arrest <player>"
    not-in-region: "&cPlayer is not in the arrest region."
  door-break:
    progress: "&aDoor breach: %seconds%s"
    completed: "&cDoor breached!"
  speed-camera:
    activated: "&aSpeed camera activated."
    already-active: "&eSpeed camera is already active."
    not-found: "&cNo speed camera block found within 4 blocks."
    deactivated: "&cSpeed camera deactivated. Use /speedcamera again."
    reading: "&7SpeedCheck: %player% | %speed%"
    fined-target: "&cYou were fined $%fine% for speeding."
    fined-officer: "&b%player% was fined $%fine% at speed %speed%."
    no-money: "&c%player% does not have enough money."
  cuff:
    usage: "&eUsage: /cuff <player>"
    uncuff-usage: "&eUsage: /uncuff <player>"
    self: "&cYou cannot cuff yourself."
    quitter-convicted: "&7[&e&lCuff System&7] &cThe player was convicted."
    officer-left: "&7[&e&lCuff System&7] &aYou were uncuffed because the officer left."
    too-far: "&cThe player is too far away."
  criminal-case:
    no-permission: "&cYou do not have permission."
    usage: "&cUsage: /criminal-case submit <player> <description>"
    book-required: "&cYou must hold a written book."
    submitted: "&aCase successfully submitted."
    no-record: "&cNo criminal record found for this player."
    book-received: "&aYou received the case book."
    invalid-book: "&cError: Book content is invalid."
    approved: "&aCase approved. You received $6000."
    rejected: "&cCase rejected. You received $6000."
    outside-review-area: "&cCase files can only be reviewed inside an authorized records area."
    main-usage: "&e/criminal-case <submit|gui|note|setarea|cleanup>"
    setarea-usage: "&eUsage: /criminal-case setarea <name> <radius>"
    invalid-area-name: "&cArea names may only contain letters, numbers, _ and -."
    invalid-radius: "&cRadius must be between 1 and 200 blocks."
    area-saved: "&aReview area &e%area% &awas saved with radius &e%radius%&a."
    note-usage: "&eUsage: /criminal-case note <case-number> <note>"
    note-added: "&aYour note was added to case &e%case%&a."
    not-found: "&cCase not found."
    cleanup-usage: "&eUsage: /criminal-case cleanup <days>"
    invalid-cleanup-days: "&cDays must be between 1 and 3650."
    cleanup-complete: "&aDeleted &e%total% &aold cases (&e%pending% &apending, &e%records% &aapproved). &7Eligible cases remaining: %remaining%"
    review-actionbar: "&6Criminal Records &8| &fReview pending cases"
    record-actionbar: "&6Criminal Records &8| &fViewing %player%"

Effects:
  gui-open:
    enabled: true
    sound: "minecraft:ui.button.click"
    volume: 0.7
    pitch: 1.1
    particle: ""
  wanted-tracking-start:
    enabled: true
    sound: "minecraft:item.lodestone_compass.lock"
    volume: 1.0
    pitch: 1.0
    particle: "VILLAGER_HAPPY"
    count: 8
  wanted-tracking-stop:
    enabled: true
    sound: "minecraft:block.note_block.bass"
    volume: 0.8
    pitch: 0.7
    particle: "SMOKE_NORMAL"
    count: 8
  jailed:
    enabled: true
    sound: "minecraft:block.iron_door.close"
    volume: 1.0
    pitch: 0.7
    particle: "SMOKE_NORMAL"
    count: 12
  released:
    enabled: true
    sound: "minecraft:entity.player.levelup"
    volume: 1.0
    pitch: 1.2
    particle: "VILLAGER_HAPPY"
    count: 16
  call-created:
    enabled: true
    sound: "minecraft:block.note_block.pling"
    volume: 0.9
    pitch: 1.3
    particle: "END_ROD"
    count: 6
  call-accepted:
    enabled: true
    sound: "minecraft:ui.toast.challenge_complete"
    volume: 1.0
    pitch: 1.1
    particle: "VILLAGER_HAPPY"
    count: 10
  call-completed:
    enabled: true
    sound: "minecraft:entity.player.levelup"
    volume: 1.0
    pitch: 1.2
    particle: "TOTEM"
    count: 18
  frisk-start:
    enabled: true
    sound: "minecraft:item.armor.equip_leather"
    volume: 0.8
    pitch: 1.1
    particle: ""
  frisk-confiscated:
    enabled: true
    sound: "minecraft:entity.item.pickup"
    volume: 1.0
    pitch: 0.8
    particle: "CRIT"
    count: 8
  speed-camera-activated:
    enabled: true
    sound: "minecraft:block.note_block.bit"
    volume: 0.9
    pitch: 1.2
    particle: "CRIT_MAGIC"
    count: 8
  case-access-denied:
    enabled: true
    sound: "minecraft:block.iron_door.close"
    volume: 0.8
    pitch: 0.8
    particle: "SMOKE_NORMAL"
    count: 5
  case-area-saved:
    enabled: true
    sound: "minecraft:block.beacon.activate"
    volume: 1.0
    pitch: 1.2
    particle: "VILLAGER_HAPPY"
    count: 12
  case-gui-open:
    enabled: true
    sound: "minecraft:item.book.page_turn"
    volume: 1.0
    pitch: 1.0
    particle: "ENCHANTMENT_TABLE"
    count: 10
  blood-monitor-start:
    enabled: true
    sound: "minecraft:block.note_block.pling"
    volume: 0.8
    pitch: 1.2
    particle: "ENCHANTMENT_TABLE"
    count: 8
  blood-alert:
    enabled: true
    sound: "minecraft:block.bell.use"
    volume: 1.0
    pitch: 1.2
    particle: ""
  blood-dropped:
    enabled: true
    sound: "minecraft:block.redstone_torch.burnout"
    volume: 1.0
    pitch: 0.8
    particle: ""
  blood-collected:
    enabled: true
    sound: "minecraft:entity.item.pickup"
    volume: 1.0
    pitch: 1.1
    particle: "VILLAGER_HAPPY"
    count: 8
  blood-tested:
    enabled: true
    sound: "minecraft:block.beacon.activate"
    volume: 1.0
    pitch: 1.0
    particle: "TOTEM"
    count: 18

Message-to-player-became-murderer: "You killed %PLAYER% and the blood trail is on you" ## You can add %PLAYER% ##
MSG-Become-Killer-L2: "&7[&9Police-System&7] &eYou become killer L2"
MSG-Become-Killer-L3: "&7[&9Police-System&7] &eYou become killer L3"
MSG-Arrest-Announce: "&7[&9Police-System&7] &c%JAILED% &7by &c%POLICE% &7jailed!"
## Door Break System
DoorBreak:
  enabled: true
  ItemName: "&8[&r &cDar-shekan &8]"
  time-seconds: 5
  start-sound: "minecraft:block.wood.hit"
  time-seconds: 5
# Cuff System (Messages)
Cuff-system:
  Handcuff-item: "BLAZE_ROD"
  Handcuff-Displayname: "&8&lHandCuff"
  Cuff-Sound: "playsound minecraft:cuff block @a ~ ~ ~ 2"
  Cuff-Message: "&7[&e&lCuff System&7] &cPlayer cuffed."
  Uncuff-Message: "&7[&e&lCuff System&7] &cPlayer uncuffed."
  Target-Uncuff-Message: "&7[&e&lCuff System&7] &cYou uncuffed"
  Target-Cuff-Message: "&7[&e&lCuff System&7] &cYou cuffed"
  Player-far-away-error-Message: "&7[&e&lCuff System&7] &7The player is more than 5 blocks away from you.."
  Target-warnif-leave-when-cuffcriminal-Message: "&7[&e&lCuff System&7] &cYou are a serial killer. If you leave the game while on the cuff, you will receive a heavier punishment."
  When-you-arent-police-Message: "&7[&e&lCuff System&7] &cYou are not police!"
  arrest-warrant-player-Message: "&7[&e&lCuff System&7] &cThis player should be sentenced by a judge, taken to a detention center, and uncuff there."
## Judge System
Judge-Announce: "&7[&dJudge-System&7] &cJudge &e%PLAYER% &chas placed &e%TARGET% &cunder judicial investigation &4(Level 4 conviction)"
# Wanted system
wanted:
  WantedLevel1:
    jailreason: "Wanted 1"
    jailtime: 900
    reward: 1000  #How much money you want police get? (Need essentials & vault)
  WantedLevel2:
    jailreason: "Wanted 2"
    jailtime: 1800
    reward: 2500
  WantedLevel3:
    jailreason: "Wanted 3"
    jailtime: 2400
    reward: 4000
  WantedLevel4:
    jailreason: "Wanted 4"
    jailtime: 3100
    reward: 5000
  WantedLeave:
    jailreason: "LeaveWhenCuffWanted"
    jailtime: 3000
## Frisk System
Frisk-Contraband-Blocks:
  - CROSSBOW
  - BEDROCK
  - COMMAND_BLOCK
  - RED_GLAZED_TERRACOTTA