\n \u003Ca href=\"https://github.com/WiIIiam278/HuskClaims/actions/workflows/ci.yml\">\n \u003Cimg src=\"https://img.shields.io/github/actions/workflow/status/WiIIiam278/HuskClaims/ci.yml?branch=master&logo=github\"/>\n \u003C/a> \n \u003Ca href=\"https://repo.william278.net/#/releases/net/william278/huskclaims/\">\n \u003Cimg src=\"https://repo.william278.net/api/badge/latest/releases/net/william278/huskclaims/huskclaims-common?color=00fb9a&name=Maven&prefix=v\" />\n \u003C/a> \n \u003Ca href=\"https://discord.gg/tVYhJfyDWG\">\n \u003Cimg src=\"https://img.shields.io/discord/818135932103557162.svg?label=&logo=discord&logoColor=fff&color=7389D8&labelColor=6A7EC2\" />\n \u003C/a> \n \u003Cbr/>\n \u003Cb>\n \u003Ca href=\"https://william278.net/docs/huskclaims/setup\">Setup\u003C/a>\n \u003C/b> — \n \u003Cb>\n \u003Ca href=\"https://william278.net/docs/huskclaims/\">Docs\u003C/a>\n \u003C/b> — \n \u003Cb>\n \u003Ca href=\"http://github.com/WiIIiam278/HuskClaims/issues\">Issues\u003C/a>\n \u003C/b>\n\u003C/p>\n\u003Cbr/>\n\n**HuskClaims** is a clean, cross-server compatible grief prevention plugin/mod for Spigot/Paper and Fabric servers that you already know how to use. HuskClaims will bring claiming on your server into the 2020s with intuitive chat menus, cross-server synchronisation support, modern display block visualisation, user group and LuckPerms role trust management, and much more — achieved through a modular, performant design.\n\n## Features\n**⭐ Works cross-server** — Works seamlessly cross-server. Manage/accrue claim blocks and list claims globally.\n\n**⭐ Super intuitive** — Golden shovel claiming plugin, with a nice chat interface. Simple, and everyone knows how to use it!\n\n**⭐ Modular & customizable** — Customise trust levels to suit your server needs. Display claims on BlueMap, Pl3xMap, and Dynmap.\n\n**⭐ Great admin features** — Make admin claims and manage players. Trust LuckPerms permission groups for easy staff access management. \n\n**⭐ Modern conveniences** — Beautiful clickable menus and glowing display entity visualisation. Make groups to manage trust in bulk.\n\n**⭐ Easy to import & configure** — Import existing player claims and profiles from GriefPrevention. Has a robust, [extensible API](https://william278.net/docs/huskclaims/api). \n\n**Ready?** [Let the claims begin!](https://william278.net/docs/huskclaims/setup)\n\n## Development\nTo build HuskClaims, simply run the following in the root of the repository (building requires Java 21):\n\n```bash\n./gradlew clean build\n```\n\n### License\nHuskClaims is licensed under the Apache 2.0 license.\n\n- [License](https://github.com/WiIIiam278/HuskClaims/blob/master/LICENSE)\n\nContributions to the project are welcome—feel free to open a pull request with new features, improvements and/or fixes!\n\n### Support\nDue to its complexity, official binaries and customer support for HuskClaims is provided through a paid model. This means that support is only available to users who have purchased a license to the plugin from Spigot, Polymart, or BuiltByBit and have provided proof of purchase. Please join our Discord server if you have done so and need help!\n\n## Translations\nTranslations of the plugin locales are welcome to help make the plugin more accessible. Please submit a pull request with your translations as a `.yml` file. ([More info…](https://william278.net/docs/huskclaims/translations))\n\n- [Locales Directory](https://github.com/WiIIiam278/HuskClaims/tree/master/common/src/main/resources/locales)\n- [English Locales](https://github.com/WiIIiam278/HuskClaims/tree/master/common/src/main/resources/locales/en-gb.yml)\n\n## Links\n- [Docs](https://william278.net/docs/huskclaims) — Read the plugin documentation!\n- [Spigot](https://www.spigotmc.org/resources/huskclaims.114467/) — View the plugin Modrinth page (Also: [Polymart](https://polymart.org/resource/huskclaims.5336/), & [BuiltByBit](https://builtbybit.com/resources/huskclaims.37536/))\n- [Issues](https://github.com/WiIIiam278/HuskClaims/issues) — File a bug report or feature request\n- [Discord](https://discord.gg/tVYhJfyDWG) — Get help, ask questions (Proof of purchase required)\n- [bStats](https://bstats.org/plugin/bukkit/HuskClaims/20728) — View plugin metrics\n\n---\n© [William278](https://william278.net/), 2025. Licensed under the Apache-2.0 License.\n",[21,24,27,30],{"id":22,"url":23},"spigot","https://spigotmc.org/resources/huskclaims.114467",{"id":25,"url":26},"polymart","https://polymart.org/resource/huskclaims.5336",{"id":28,"url":29},"builtbybit","https://builtbybit.com/resources/huskclaims.37536",{"id":31,"url":32},"bstats","https://bstats.org/plugin/bukkit/HuskClaims/20728",[34],"William278",[22,36,37],"paper","fabric",9.99,"1195525277065949286",false,[42,66,112,130],{"order":43,"name":44,"children":45},0,"Setup",[46,55],{"order":43,"url":47,"title":44,"icon":48,"children":49},"setup","fa6-solid:book",[50],{"order":43,"url":51,"title":52,"icon":53,"children":54},"importers","Importing Data","carbon:migrate",[],{"order":56,"url":57,"title":58,"icon":59,"children":60},1,"config","Config","fa6-solid:file-code",[61],{"order":43,"url":62,"title":63,"icon":64,"children":65},"translations","Locales","material-symbols:translate",[],{"order":56,"name":67,"children":68},"Features",[69,74,79,100,106],{"order":43,"url":70,"title":71,"icon":72,"children":73},"commands","Commands","octicon:command-palette-16",[],{"order":56,"url":75,"title":76,"icon":77,"children":78},"permissions","Permissions","fluent-mdl2:permissions",[],{"order":80,"url":81,"title":82,"icon":83,"children":84},2,"claims","Claims","mdi:shovel",[85,90,95],{"order":43,"url":86,"title":87,"icon":88,"children":89},"trust","Trusting Users","mdi:heart",[],{"order":56,"url":91,"title":92,"icon":93,"children":94},"operation-groups","Operation Groups & Flags","ci:flag",[],{"order":80,"url":96,"title":97,"icon":98,"children":99},"claim-blocks","Claim Blocks","fa6-solid:square",[],{"order":101,"url":102,"title":103,"icon":104,"children":105},3,"pets","Pet Protection","fa6-solid:dog",[],{"order":107,"url":108,"title":109,"icon":110,"children":111},4,"hooks","Hooks","fa6-solid:plug",[],{"order":80,"name":113,"children":114},"Moderation",[115,120,125],{"order":43,"url":116,"title":117,"icon":118,"children":119},"sign-moderation","Sign Moderation","mi:message-alt",[],{"order":56,"url":121,"title":122,"icon":123,"children":124},"drops-moderation","Death Drop Locking","mdi:grave-stone",[],{"order":80,"url":126,"title":127,"icon":128,"children":129},"inactivity-pruning","Inactivity Pruning","icon-park-outline:sleep",[],{"order":101,"name":131,"children":132},"Developers",[133,163],{"order":43,"url":134,"title":135,"icon":136,"children":137},"api","API","mdi:api",[138,143,148,153,158],{"order":43,"url":139,"title":140,"icon":141,"children":142},"claims-api","Claims API","mdi:cog-box",[],{"order":56,"url":144,"title":145,"icon":146,"children":147},"trust-api","Trust API","mdi:heart-cog",[],{"order":80,"url":149,"title":150,"icon":151,"children":152},"highlighter-api","Highlighter API","mdi:star-cog",[],{"order":101,"url":154,"title":155,"icon":156,"children":157},"operations-api","Operations API","mdi:movie-open-cog",[],{"order":107,"url":159,"title":160,"icon":161,"children":162},"api-events","API Events","mingcute:lightning-line",[],{"order":56,"url":18,"title":164,"icon":165,"children":166},"Source Code","fa6-solid:code",[],{"SVG":168,"PNG":169,"PNG_TRANSPARENT":170,"SVG_TRANSPARENT":171},"huskclaims.svg","huskclaims.png","huskclaims-transparent.png","huskclaims-transparent.svg",[],[],{"downloadCount":175,"averageRating":176,"numberOfRatings":177,"interactions":178,"onlinePlayers":179,"onlineServers":180},486,4.400000095367432,8,43,913,133,{"data":182,"body":183},{},{"type":184,"children":185},"root",[186,194,201,221,227,232,239,256,262,275,281,289,295,300,305,324,329,350,356,472,478,522,528,549,555],{"type":187,"tag":188,"props":189,"children":190},"element","p",{},[191],{"type":192,"value":193},"text","This will walk you through installing HuskClaims on either your Spigot server, or proxied network of Spigot servers.",{"type":187,"tag":195,"props":196,"children":198},"h2",{"id":197},"requirements",[199],{"type":192,"value":200},"Requirements",{"type":187,"tag":202,"props":203,"children":204},"ul",{},[205,211,216],{"type":187,"tag":206,"props":207,"children":208},"li",{},[209],{"type":192,"value":210},"A Spigot-based Minecraft server (1.17.1 or higher, Java 17+)",{"type":187,"tag":206,"props":212,"children":213},{},[214],{"type":192,"value":215},"(For proxy network support) A proxy server (Velocity, BungeeCord) and MySQL (v8.0+)/MariaDB database",{"type":187,"tag":206,"props":217,"children":218},{},[219],{"type":192,"value":220},"(For optional redis support) A Redis database (v5.0+)",{"type":187,"tag":195,"props":222,"children":224},{"id":223},"single-server-setup-instructions",[225],{"type":192,"value":226},"Single-server Setup Instructions",{"type":187,"tag":188,"props":228,"children":229},{},[230],{"type":192,"value":231},"These instructions are for simply installing HuskClaims on one Spigot/Paper server.",{"type":187,"tag":233,"props":234,"children":236},"h3",{"id":235},"_1-install-the-jar",[237],{"type":192,"value":238},"1. Install the jar",{"type":187,"tag":202,"props":240,"children":241},{},[242],{"type":187,"tag":206,"props":243,"children":244},{},[245,247,254],{"type":192,"value":246},"Place the plugin jar file in the ",{"type":187,"tag":248,"props":249,"children":251},"code",{"className":250},[],[252],{"type":192,"value":253},"/plugins/",{"type":192,"value":255}," directory of your Spigot server.",{"type":187,"tag":233,"props":257,"children":259},{"id":258},"_2-restart-the-server-and-configure",[260],{"type":192,"value":261},"2. Restart the server and configure",{"type":187,"tag":202,"props":263,"children":264},{},[265,270],{"type":187,"tag":206,"props":266,"children":267},{},[268],{"type":192,"value":269},"Start, then stop your server to let HuskClaims generate the config file.",{"type":187,"tag":206,"props":271,"children":272},{},[273],{"type":192,"value":274},"You can now edit the config files to your liking.",{"type":187,"tag":233,"props":276,"children":278},{"id":277},"_3-turn-on-your-server",[279],{"type":192,"value":280},"3. Turn on your server",{"type":187,"tag":202,"props":282,"children":283},{},[284],{"type":187,"tag":206,"props":285,"children":286},{},[287],{"type":192,"value":288},"Start your server again and enjoy HuskClaims!",{"type":187,"tag":195,"props":290,"children":292},{"id":291},"multi-server-setup-instructions",[293],{"type":192,"value":294},"Multi-server Setup Instructions",{"type":187,"tag":188,"props":296,"children":297},{},[298],{"type":192,"value":299},"These instructions are for installing HuskClaims on multiple Spigot servers and having them network together. A MySQL database (v8.0+) is required.",{"type":187,"tag":233,"props":301,"children":303},{"id":302},"_1-install-the-jar-1",[304],{"type":192,"value":238},{"type":187,"tag":202,"props":306,"children":307},{},[308,319],{"type":187,"tag":206,"props":309,"children":310},{},[311,312,317],{"type":192,"value":246},{"type":187,"tag":248,"props":313,"children":315},{"className":314},[],[316],{"type":192,"value":253},{"type":192,"value":318}," directory of each Spigot server.",{"type":187,"tag":206,"props":320,"children":321},{},[322],{"type":192,"value":323},"You don't need to install HuskClaims as a proxy plugin.",{"type":187,"tag":233,"props":325,"children":327},{"id":326},"_2-restart-the-server-and-configure-1",[328],{"type":192,"value":261},{"type":187,"tag":202,"props":330,"children":331},{},[332,337],{"type":187,"tag":206,"props":333,"children":334},{},[335],{"type":192,"value":336},"Start, then stop every server to let HuskClaims generate the config file.",{"type":187,"tag":206,"props":338,"children":339},{},[340,342,348],{"type":192,"value":341},"Advanced users: If you'd prefer, you can just create one config.yml file and create symbolic links in each ",{"type":187,"tag":248,"props":343,"children":345},{"className":344},[],[346],{"type":192,"value":347},"/plugins/HuskClaims/",{"type":192,"value":349}," folder to it to make updating it easier.",{"type":187,"tag":233,"props":351,"children":353},{"id":352},"_3-configure-servers-to-use-cross-server-mode",[354],{"type":192,"value":355},"3. Configure servers to use cross-server mode",{"type":187,"tag":202,"props":357,"children":358},{},[359,372,399,419,447,467],{"type":187,"tag":206,"props":360,"children":361},{},[362,364,370],{"type":192,"value":363},"Navigate to the HuskClaims general config file on each server (",{"type":187,"tag":248,"props":365,"children":367},{"className":366},[],[368],{"type":192,"value":369},"~/plugins/HuskClaims/config.yml",{"type":192,"value":371},")",{"type":187,"tag":206,"props":373,"children":374},{},[375,377,383,385,391,393],{"type":192,"value":376},"Under ",{"type":187,"tag":248,"props":378,"children":380},{"className":379},[],[381],{"type":192,"value":382},"database",{"type":192,"value":384},", set ",{"type":187,"tag":248,"props":386,"children":388},{"className":387},[],[389],{"type":192,"value":390},"type",{"type":192,"value":392}," to ",{"type":187,"tag":248,"props":394,"children":396},{"className":395},[],[397],{"type":192,"value":398},"MYSQL",{"type":187,"tag":206,"props":400,"children":401},{},[402,403,409,411,417],{"type":192,"value":376},{"type":187,"tag":248,"props":404,"children":406},{"className":405},[],[407],{"type":192,"value":408},"mysql",{"type":192,"value":410},"/",{"type":187,"tag":248,"props":412,"children":414},{"className":413},[],[415],{"type":192,"value":416},"credentials",{"type":192,"value":418},", enter the credentials of your MySQL database server.",{"type":187,"tag":206,"props":420,"children":421},{},[422,424,430,432,438,439,445],{"type":192,"value":423},"Scroll down and look for the ",{"type":187,"tag":248,"props":425,"children":427},{"className":426},[],[428],{"type":192,"value":429},"cross_server",{"type":192,"value":431}," section. Set ",{"type":187,"tag":248,"props":433,"children":435},{"className":434},[],[436],{"type":192,"value":437},"enabled",{"type":192,"value":392},{"type":187,"tag":248,"props":440,"children":442},{"className":441},[],[443],{"type":192,"value":444},"true",{"type":192,"value":446},".",{"type":187,"tag":206,"props":448,"children":449},{},[450,452,458,459,465],{"type":192,"value":451},"You can additionally configure a Redis server to use for network messaging, if you prefer (set the ",{"type":187,"tag":248,"props":453,"children":455},{"className":454},[],[456],{"type":192,"value":457},"broker_type",{"type":192,"value":392},{"type":187,"tag":248,"props":460,"children":462},{"className":461},[],[463],{"type":192,"value":464},"REDIS",{"type":192,"value":466}," if you do this).",{"type":187,"tag":206,"props":468,"children":469},{},[470],{"type":192,"value":471},"Save your config files. Make sure you've updated the files on every server.",{"type":187,"tag":233,"props":473,"children":475},{"id":474},"_4-restart-servers-and-set-serveryml-values",[476],{"type":192,"value":477},"4. Restart servers and set server.yml values",{"type":187,"tag":202,"props":479,"children":480},{},[481,501],{"type":187,"tag":206,"props":482,"children":483},{},[484,486,492,494,500],{"type":192,"value":485},"Restart each server again. A ",{"type":187,"tag":248,"props":487,"children":489},{"className":488},[],[490],{"type":192,"value":491},"server.yml",{"type":192,"value":493}," file should generate inside (",{"type":187,"tag":248,"props":495,"children":497},{"className":496},[],[498],{"type":192,"value":499},"~/plugins/HuskClaims/",{"type":192,"value":371},{"type":187,"tag":206,"props":502,"children":503},{},[504,506,512,514,520],{"type":192,"value":505},"Set the ",{"type":187,"tag":248,"props":507,"children":509},{"className":508},[],[510],{"type":192,"value":511},"name",{"type":192,"value":513}," of the server in this file to the ID of this server as defined in the config of your proxy (e.g. if this is the \"hub\" server you access with ",{"type":187,"tag":248,"props":515,"children":517},{"className":516},[],[518],{"type":192,"value":519},"/server hub",{"type":192,"value":521},", put \"hub\" here)",{"type":187,"tag":233,"props":523,"children":525},{"id":524},"_5-restart-your-servers-one-last-time",[526],{"type":192,"value":527},"5. Restart your servers one last time",{"type":187,"tag":202,"props":529,"children":530},{},[531,536],{"type":187,"tag":206,"props":532,"children":533},{},[534],{"type":192,"value":535},"Provided your MySQL database credentials were correct, your network should now be setup to use HuskClaims!",{"type":187,"tag":206,"props":537,"children":538},{},[539,541,547],{"type":192,"value":540},"You can delete the ",{"type":187,"tag":248,"props":542,"children":544},{"className":543},[],[545],{"type":192,"value":546},"HuskClaimsData.db",{"type":192,"value":548}," SQLite flat file that was generated, if you would like.",{"type":187,"tag":195,"props":550,"children":552},{"id":551},"next-steps",[553],{"type":192,"value":554},"Next steps",{"type":187,"tag":202,"props":556,"children":557},{},[558,567,575],{"type":187,"tag":206,"props":559,"children":560},{},[561],{"type":187,"tag":562,"props":563,"children":565},"a",{"href":564},"/docs/huskclaims/config",[566],{"type":192,"value":58},{"type":187,"tag":206,"props":568,"children":569},{},[570],{"type":187,"tag":562,"props":571,"children":573},{"href":572},"/docs/huskclaims/commands",[574],{"type":192,"value":71},{"type":187,"tag":206,"props":576,"children":577},{},[578],{"type":187,"tag":562,"props":579,"children":581},{"href":580},"/docs/huskclaims/permissions",[582],{"type":192,"value":76},["Reactive",584],{"$snuxt-i18n-meta":585,"$sauth":-1,"$sxsrf":-1},{},["Set"],["ShallowReactive",588],{"$fn7zLbBrL1B4OXletT_XYV9yMGQagPaUm2n8p4dD83Ic":-1,"user":589,"mdc-5nnbyd-key":-1},["NuxtError",590],{"message":591,"statusCode":592,"statusMessage":593,"data":594},"[GET] \"https://api.william278.net/v1/users/@me\": 401 Unauthorized",401,"Unauthorized",{"error":595},"You must be logged in to perform this action.","/docs/huskclaims/setup"]