A Minecraft server plugin that introduces a nation system with territory control, alliances, cities, and an economy layer built on top of Paper 1.21.
Releases · Setup Guide · Architecture · Contributing
- Nation Creation — Players can found nations by inviting nearby players in a creation session, choosing an ideology, and claiming their first chunk.
- Territory Control — Claim and unclaim chunks on a chunk-based system. Neighboring chunks must be adjacent to existing claims.
- City System — Create cities within claimed territory, each with a physical City Core block, a mayor, residents, and health/level mechanics.
- Alliances — Form alliances between nations via invite-based requests.
- Nation Chat — Toggle a dedicated nation chat channel with configurable format.
- Rank & Permission System — Ideology-driven rank hierarchy with fine-grained permissions (claim, unclaim, vault operations, invitations, etc.).
- Economy Integration — Nation vaults with deposit/withdraw, creation costs, claim costs, and configurable tax rates.
- BlueMap Integration — Nation borders and city markers rendered on BlueMap web maps with per-nation colors.
- PlaceholderAPI Support — Exposes nation name, color, balance, and rank placeholders for use in scoreboards, chat, etc.
| Dependency | Required | Version |
|---|---|---|
| Paper | Yes | 1.21+ |
| FrontlineEconomy | Yes | 1.0 |
| PlaceholderAPI | Soft-depend | 2.12+ |
| BlueMap | Soft-depend | 2.7+ |
| Java | Yes | 21+ |
- Download the latest
.jarfrom Releases. - Place the
.jarinto your server'splugins/folder. - Ensure FrontlineEconomy is installed and enabled.
- Restart the server. A
config.ymlwill be generated on first startup. - Edit
plugins/BorderAndFrontlines/config.ymlto your preferences and reload.
The generated config.yml contains:
allow-war: true
worlds:
- world
naming:
min: 3
max: 18
nation:
creation-cost: 1000.0
minPlayers: 3
claim-cost: 50.0
unclaim-refund: 40.0
nation-chat-format: "&7[&8{rank}&7] &7{player}&8: &7{message}"
city:
creation-cost: 300.0
destruction-refund: 200.0
port:
creation-cost: 500.0
destruction-refund: 400.0| Command | Description | Permission |
|---|---|---|
/nation |
Main command — lists all subcommands | BAF.nation |
/nation create |
Start a nation creation session | BAF.nation.create |
/nation confirm |
Confirm nation creation (session leader) | — |
/nation cancel |
Cancel nation creation session | — |
/nation info |
View nation information | — |
/nation claim |
Claim the chunk you are standing in | — |
/nation invite <player> |
Invite a player to your nation | — |
/nation accept <code> |
Accept a nation or alliance invite | — |
/nation reject <code> |
Reject an invite | — |
/nation leave |
Leave your current nation | — |
/nation disband |
Disband your nation (leader only) | — |
/nation chat |
Toggle nation chat | — |
/nation ally <nation> |
Send an alliance request | — |
/nation break <nation> |
Break an alliance | — |
| Permission | Description | Default |
|---|---|---|
BAF.nation |
Access to all nation commands | true |
BAF.nation.create |
Access to create a nation | — |
BAF.nation.settings |
Access to nation settings panel | — |
| Placeholder | Description |
|---|---|
%baf_nation_name% |
Player's nation name |
%baf_nation_color% |
Player's nation color |
%baf_nation_balance% |
Player's nation vault balance |
%baf_nation_rank% |
Player's rank within their nation |
Prerequisites: Java 21+, Maven 3.9+
git clone https://github.com/1tzArad/BorderAndFrontlines.git
cd BorderAndFrontlines
mvn clean packageThe compiled .jar will be in target/.
Note: FrontlineEconomy must be available in your local Maven repository or a configured remote repository for the build to succeed.
BorderAndFrontlines/
├── src/main/java/xyz/ItzArad/
│ ├── baf/ # Plugin core
│ │ ├── BorderAndFrontlines.java # Main plugin class
│ │ ├── commands/ # Command handlers
│ │ ├── listeners/ # Event listeners
│ │ ├── managers/ # Business logic managers
│ │ ├── models/ # Data models (Nation, City, Ranks, etc.)
│ │ ├── dialogs/ # GUI dialogs (Triumph GUI)
│ │ ├── Placeholders/ # PlaceholderAPI expansions
│ │ ├── context/ # UI context objects
│ │ ├── abstracts/ # Abstract base classes
│ │ └── common/ # Shared interfaces and utilities
│ └── bafLibs/ # Internal library (chunk/player utils)
├── src/main/resources/
│ ├── plugin.yml # Plugin descriptor
│ └── config.yml # Default configuration
├── pom.xml # Maven build configuration
└── LICENSE # GPLv3
This project is licensed under the GNU General Public License v3.0.
Any redistributed modified version must also be open-source under GPLv3. Closed-source redistribution is not permitted.
Contributions are welcome. See the Contributing Guide for details on setting up a development environment and submitting changes.