By continuing to use this site, you agree to the Terms of Service of this website, including usage of cookies.

OK, Don't show this again

Full configurable and modulable faction plugin
version 3.0.0-alpha1
Direct Download How to install?
Switch version
55 Downloads / 4734 Total
23 Reviews
Plugin Description §


For using PureChat with FactionMaster, you must use my PureChat fork and download the last release :

FactionMaster is a new faction plugin that aims at flexibility and customization of the plugin by the user and the developers. It includes all the basic functionality of a faction plugin and data storage in MySQL or SQLITE. This is done by adding an extension system and a translation system. FactionMaster has a will of accessibility to the players and especially not to have to remember a lot of commands to play, all is done via interface.

The PVP Faction mode is a game mode that consists of creating your faction and growing it. You can ally with other factions, fight and even request territories. All the available features will be listed in another section.

More information in our wiki


FactionMaster have multiple server support, see the Installation section for more information

Feature FactionMaster FactionsPro PiggyFactions SimpleFaction
SQLite3 Support
MySQL Support
Multiple claim
Multiple faction home
Image for UI (Texture pack)
Translation system
Extension system
Per Faction Permissions
SQL Injection Protection
Command Autocomplete
Form UI
Async Queries
Faction level
Custom level reward
Faction/ally chat
Awaiting invitation
Faction visibility
Editable message
Custom event
Claim title
Scoreboard faction top
Banned faction name

Additionnal plugins

  • ScoreHUD v6.0.0: FactionMaster support this plugin and implements all this tags :
    • factionmaster.faction.power
    • factionmaster.faction.level
    • factionmaster.faction.xp
    • factionmaster.faction.message
    • factionmaster.faction.description
    • factionmaster.faction.visibility
    • factionmaster.player.rank
  • PureChat: To use PureChat tags, download our fork of it here


  • If you just want to use it on the same machine, no special installation is required, just download the .phar plugin and put it in the plugins folder.
  • If you wish to use FactionMaster on more than one server at a time, please modify the config.yml after starting your server for the first time with FactionMaster on it and change the PROVIDER: "SQLITE" with MYSQL. Enter your database connection details and restart your server.

Use resource pack

  • Download factionMaster texture pack available here
  • Install it on your server as a mandatory Texture pack
  • Put the line : active-image to true in config.yml file
  • Stop and start your server


  • /f, /faction, /fac: Opens the main menu of FactionMaster
  • /f top: Open the faction ranking
  • /f manage: Opens the faction management interface
  • /f sethome <:name>: Place a home at the player's location
  • /f delhome <:name>: Remove the faction home
  • /f tp <:name>: TP at the faction home
  • /f home: Opens the home menu
  • /f claim: Claim the current chunk
  • /f unclaim: Remove the current claim
  • /f create: Opens the menu to create a faction
  • /f map: Displays the map listing all claims
  • /f help: Displays the orders
  • /f info <:name>: Displays information about a faction
  • /f claiminfo: Displays information about a chunk
  • /f extension: Display extensions enabled For op only
  • /f scoreboard: Set the location to spawn top faction scoreboard
  • /f addflag: Add a claim considered like an area
  • /f removeflag: Remove a claim considered like an area
  • /f settings: Give all the FactionMaster settings
  • /f synchro: Submit task to make synchronisation manually of the database


Extensions, a new way to customize your plugin to your liking. You just have to download the plugin corresponding to the desired extension and place it in the corresponding folder on your server. If you have an urge to stop using the functionality, delete the plugin from your server and the changes will be gone! You can use those approved by the FactionMaster team or do it yourself (refer to the GitHub) and submit it to us if you feel like it.

All extensions made by the FactionMaster team and those approved by the FactionMaster team, which are accessible via poggit will be listed here.


To participate in the translation of FactionMaster and probably see yourself here, create a Pull Request on the FactionMaster GitHub. Once the language has been translated on the main plugin and on all the extensions listed in the Extension section, it will be added and all its contributors thanked.

  • French (fr_Fr): @ShockedPlot7560
  • English (en_EN): @ShockedPlot7560
  • Spanish (es_SPA): @MrBlasyMSK


Adding and modifying extensions is rather simple and explained on the of the GitHub repository with a documentation for the handling of the API. Many extensions will be made and approved by the FactionMaster team to allow users to modulate the plugin to their choice. All approved extensions will have a line in the README and and listed in the Extension section .


 #      ______           __  _                __  ___           __
 #     / ____/___ ______/ /_(_)___  ____     /  |/  /___ ______/ /____  _____
 #    / /_  / __ `/ ___/ __/ / __ \/ __ \   / /|_/ / __ `/ ___/ __/ _ \/ ___/
 #   / __/ / /_/ / /__/ /_/ / /_/ / / / /  / /  / / /_/ (__  ) /_/  __/ /  
 #  /_/    \__,_/\___/\__/_/\____/_/ /_/  /_/  /_/\__,_/____/\__/\___/_/ 
 # FactionMaster - A Faction plugin for PocketMine-MP
 # This file is part of FactionMaster
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU Lesser General Public License as published by
 # the Free Software Foundation, either version 3 of the License, or
 # (at your option) any later version.
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # GNU Lesser General Public License for more details.
 # You should have received a copy of the GNU Lesser General Public License
 # along with this program.  If not, see <>.
 # @author ShockedPlot7560 
 # @link

file-version: 9

# --------------------- DATABASE --------------------------

# Use only SQLITE or MYSQL
# To enabled Multiple server support
# please use MYSQL for PROVIDER, give the good information and restart the server
  host: "localhost"
  name: "FactionMaster"
  user: "root"
  pass: ""
  name: "FactionMaster"

# --------------------- GLOBAL CONFIGURATION --------------------------

# If you want to disable this feature, empty this array and reload your server
banned-faction-name: ["op", "staff", "admin", "fuck", "shit"]

xp-win-per-kill: 1
power-win-per-kill: 2
power-loose-per-death: 2
#Use to multiply the power win and loose if players are in factions
faction-multiplicator: 2
#check if player have armor equip
allow-no-stuff: false

default-home-limit: 2
default-claim-limit: 2
default-player-limit: 2
default-ally-limit: 2
default-faction-visibility: 0
default-faction-xp: 0
default-faction-level: 1
default-faction-description: ""
default-faction-message: ""
default-power: 0

min-faction-name-length: 3
max-faction-name-length: 20

# If it set to true, image will be display near button
# If it set to false, image will be disabled
active-image: true

faction-chat-active: false
faction-chat-symbol: "$"
faction-chat-message: "[{factionName}] {playerName}: {message}"
ally-chat-active: false
ally-chat-symbol: "%"
ally-chat-message: "[{factionName}] {playerName}: {message}"

help-command-header: "§8=§7=§8=§7=§8=§7=§8=§7=§8=§7= §bFactionMaster command §8=§7=§8=§7=§8=§7=§8=§7=§8=§7="
help-command-lign: " §8>> §r§b{command}: §7{description}"

# ------------------ BROADCAST MESSAGE CONFIGURATION ---------------------

broadcast-faction-create: false
broadcast-faction-create-message: "{playerName} has created the faction {factionName}"
broadcast-faction-delete: false
broadcast-faction-delete-message: "{playerName} has deleted the faction {factionName}"
broadcast-faction-transferProperty: false
broadcast-faction-transferProperty-message: "{playerName} transferred the property to {targetName} of the faction {factionName}"

# --------------------- F MAP CONFIGURATION -------------------------

# Set thiis value to false if you want to disable /f map on | /f map off
# Otherwise set this value to the number of ticks between each display 
f-map-task: false
#f-map-task: 40

available-symbol: ["/", "\\", "#", "$", "?", "%", "=", "&", "^", "$"]

player-symbol: "+"
player-color: "§b"

wilderness-symbol: "-"
wilderness-color: "§7" 
spawn-symbol: "-"
spawn-color: "§8" 
warzone-symbol: "-"
warzone-color: "§7" 

claim-color: "§f"
claim-ally-color: "§e"
claim-ennemie-color: "§4"
claim-own-color: "§b"

compass-color: "§c"
compass-color-actual: "§e"

map-width: 48
map-height: 10
map-header-color: "§6"
map-middle-header: ".[ §2({{x}},{{z}}) {{factionLabel}} {{headerColor}}]."

# --------------------- CLAIM CONFIGURATION --------------------------

  # the type is the same type as level reward, you can put :
  #   power / allyLimit / claimLimit / homeLimit / memberLimit
  #   to make your own reward, please read the documentation
  type: "power"
  # the start value for the first claim
  value: 200

# flat: cost all the time, the same price
# addition: first claim will be cost: Ex: 100
#      second claim will be cost: Ex: 200
#      second claim will be cost: Ex: 300
# multiplication: will be times by a factor
# decrease: descrease the start value by the factor
claim-provider: "flat"
# Equation for mutliplication :
#   cost-price = cost-start * (factor ** number-claim)
multiplication-factor: 2
#Equation for decrease
#   cost-price = cost-start - (number-claim * decrease-factor)
decrease-factor: 100

# If set to false, the player cant /f sethome in a ennemy claim
allow-home-ennemy-claim: true

# --------------------- TITLE CONFIGURATION --------------------------

# Set this to true if you want to display on player's screen the message when entering a claim
message-alert: true
# The following line define which message will be print
# on the screen of players when entering a claim chunk
# active parameter which can set : {factionName} / {colorStatus} / {x} / {z} / {world}
# - colorStatus : color set in the f map configuration
# to purpose a suggestion, open an issue on our github
message-alert-title: "{colorStatus}{factionName}"
message-alert-subtitle: "{x} - {z} - {world}"
# Defines the time that will be applied before the message is displayed again
message-alert-cooldown: 10

message-alert-flag-enabled: false
# -------------- TOP FACTION'S SCOREBOARD CONFIGURATION -----------------

# SEE leaderboard.yml to enabled and updated position of the leaderboard !

# This is the scoreboard header, display on the top
faction-scoreboard-header: "- Top 10 faction -"
# Lign patern for each faction
# you can use this parameter : 
# {factionName} / {level} / {power}
# to purpose a parameter suggestion, please open an issue on github
faction-scoreboard-lign: "{factionName}: Level {level}"

# --------------------- PLUGIN CONFIGURATION --------------------------

# Change this value only if you are sure of what you are doing, 
# reducing it may break some functionality of the plugin, 
# increasing it may reduce the players experience.
# Default: 60
timeout-task: 60

# Change this value only if you are sure of what you are doing, 
# reducing it may break some functionality of the plugin, 
# increasing it may reduce the players experience.
# Default: 200
# It will determine ow much time Database synchronisation will be done
sync-time: 200
What's new §

Note about API

This version includes many features and uses that are incompatible with previous versions. Therefore, you will be asked to reinstall the entire plugin. The database will not be deleted but you will be asked to delete the configurations.


Most of the functions called and initialized at server startup have been moved to Managers in the namespace ShockedPlot7560\FactionMaster\Manager

  • The following classes have been mooved :
    • ExtensionManager to ShockedPlot7560\FactionMaster\Manager
    • MigrationManager to ShockedPlot7560\FactionMaster\Manager
    • PermissionManager to ShockedPlot7560\FactionMaster\Manager
    • SyncServerManager to ShockedPlot7560\FactionMaster\Manager
    • DatabaseManager to ShockedPlot7560\FactionMaster\Manager
  • The following classes have been added :
    • ConfigManager: Manage the link between file and Config instance
    • ImageManager: Manage if the button have image
    • LeaderboardManager: Manage the spawn location of Leaderboard
    • MapManager: Manage the player which want to have f map


  • This following super class has added:
    • AllianceEvent
    • FactionEvent
    • InvitationEvent
  • The interface Forcable has been added to allow specifying when an action is done manually by an admin (API extension)
  • The trait PlayerEvent has been added to add the getPlayer() function in events allowing it

All events have been reviewed and redesigned for a better API


  • All EntityDatabase extends now from this super class
  • All uses of entity constants are to be prohibited, use functions now
  • The table schematics have been revised for better optimization and understanding


  • Radical change to the Button super class
    • Declarations are no longer made in the __construct but from the functions
      • setSlug
      • setContent
      • setCallable
      • setPermissions
      • etc
  • Cleaning code in Button classes
  • Adding the SLUG constant in each class


  • Cleaning code
  • Rename all the classes to the Route schematics


Many changes have been made to it

  • Rename all classes and completely restructure the organisation
    • For player with no faction
    |_ MainRoute
    |   |_ CreateFactionRoute
    |   |_ JoinFactionRoute
    |   |   |_ JoinSendInvitationRoute
    |   |   |_ JoinInvitationSendRoute
    |   |   |   |_ ManageJoinInvitationRoute
    |   |   |   |   |_ ConfirmationRoute (Delete)
    |   |   |_ JoinRequestReceiveRoute
    |   |   |   |_ ManageJoinRequestRoute
    |   |   |   |   |_ ConfirmationRoute (Accept / Deny)
    |   |_ TopFactionRoute
    |   |_ ChangeLangueRoute
    • For player with a faction
    |_ MainRoute
    |   |_ MembersViewRoute
    |   |_ HomesViewRoute
    |   |_ MembersOptionRoute
    |   |   |_ MembersSendInvitationRoute
    |   |   |_ MembersInvitationSendRoute
    |   |   |   |_ ManageMemberInvitationRoute
    |   |   |   |   |_ ConfirmationRoute (Delete)
    |   |   |_ MembersRequestReceiveRoute
    |   |   |   |_ ManageMemberRequestRoute
    |   |   |   |   |_ ConfirmationRoute (Accept / Deny)
    |   |   |_ MembersManageRoute
    |   |   |   |_ ManageMemberRoute
    |   |   |   |   |_ ManageMemberRankRoute
    |   |   |   |   |_ ConfirmationRoute (Kick)
    |   |_ FactionOptionRoute
    |   |   |_ DescriptionChangeRoute
    |   |   |_ MessageChangeRoute
    |   |   |_ VisibilityChangeRoute
    |   |   |_ ManageLevelRoute
    |   |   |   |_ ConfirmationRoute (Level up)
    |   |   |_ ManagePermissionRoute
    |   |   |   |_ PermissionChangeRoute
    |   |   |_ AllianceOptionRoute
    |   |   |   |_ ManageAllianceRoute
    |   |   |   |   |_ ConfirmationMenu (Break ally)
    |   |   |   |_ AllianceSendInvitationRoute
    |   |   |   |_ AllianceInvitationSendRoute
    |   |   |   |   |_ ManageAllianceInvitationRoute
    |   |   |   |   |   |_ ConfirmationRoute (Delete)
    |   |   |   |_ AllianceRequestReceiveRoute
    |   |   |   |   |_ ManageAllianceRequestRoute
    |   |   |   |   |   |_ ConfirmationRoute (Accept / Deny)
    |   |_ TopFactionRoute
    |   |_ ChangeLangueRoute
    |   |_ ConfirmationMenu (Leave / Delete faction)
  • Adding super classes
    • InvitationBase
    • RouteBase
    • VictimBase
  • Addition of abstract functions for better readability of classes


  • Resolve many many bug
  • Add many feature and configuration
  • Update API for thee actual
  • Add UpdateNotifier virions
  • Add ConfigUpdater virions
  • /f scoreboard need to put data manually in config file to prevent comments in config file removed
  • Global translation correction
  • Some bug fix
  • Add faction and ally chat support
  • Add faction name prohibition
  • Fix bug
  • Add ScoreHUD v6.0.0 support
    • Tag available:
      • factionmaster.faction.power
      • factionmaster.faction.level
      • factionmaster.faction.xp
      • factionmaster.faction.message
      • factionmaster.faction.description
      • factionmaster.faction.visibility
      • factionmaster.player.rank
  • Add broadcast message (see configuration file for more information)
  • Added Spanish language and update TexturePack for spanish flag Download the pack again to take account of the change here
  • Fix Important server crash
  • Global optimisation and minor bug fix
  • Cleaning code
  • Patch minor bug
  • Better syncronisation of config file to database
  • Add Scoreboard Faction top with floating text
  • Add claim title, when entering a claim, it display a title
  • Add image to UI (Check Image use section for more information)
  • Implement migration management for a future perspective
  • Global optimisation and patch

using v4.2.0
05 Aug 22
i'm not getting to put the faction tag on my chat tag ,-,
using v4.2.0
25 Apr 22
Really good Plugin because of the ui but multiple bugs are present
Can you precise which bug did you refer ? If you have one, open an issue and it will fix
using v4.2.0
27 Mar 22
And what are the tags for Purechat?
using v4.2.0
20 Mar 22
How to display Faction on Scorehud?
You have all this tag available : factionmaster.faction.power factionmaster.faction.level factionmaster.faction.xp factionmaster.faction.message factionmaster.faction.description factionmaster.faction.visibility factionmaster.player.rank
using v4.2.0
15 Mar 22
One of the few Factions plugins that works with API 4 and is quite complete.
using v4.1.1
23 Feb 22
caan you create an issue on github : to explain more your problem ?
using v4.0.0
01 Feb 22
Can you add me on discord, I have loads of suggestions to improve the plugin to allow it to be the best on poggit. Just don't have the patience to send 1 by 1 in github lol
DM me if you want : ShockedPlot7560#9999
using v3.1.5
10 Feb 22
The plugin is very good but the GitHub link of PureChat does not work, could you pass it to me the version of PureChat compatible with FactionMaster?
using v3.1.4
17 Nov 21
great plugin full of awesome features and havent encountered any bugs yet
using v3.1.4
12 Nov 21
using v3.1.4
10 Nov 21
Great plugin!
using v3.1.3
30 Oct 21
Idea: Put spawners only in the faction's claim, put attack mode in the claims example: when a tnt explodes in the claim, it activates attack mode, and don't let player remove spawner from the claim when in attack, only when the attack leaves.
Can you create an issue on our GitHub to give more and more details. It will also be easier to discuss this idea with the community.
using v3.1.3
12 Oct 21
using v3.1.0
07 Oct 21
Add leaderboards for top faction levels, bank
Thanks for your idea, i will made that for a future update
using v3.1.0
05 Oct 21
using v3.0.2
02 Oct 21
You have made a nice plugin, I want to make a small contribution to the 'Lang' region, I translated en_TR into Turkish. I don't know how to send this to you I can only if you have Discord Discord: AliTura1.exe#8363 I used google translate for this message
I send you friend request on Discord, waiting for you. Thank you for the review !
using v3.0.1
30 Sep 21
when I change the top faction setting from false to true the vecnaleaderboard plugin and Faction Master plugin crashes. can you fix it?
Can you submit an issue on GitHub with more details. Wich plugin is enabled, which version of FactionMaster did you use, etc .. Link for github :
using v2.4.0
23 Oct 22
Good but if an admin offers your faction something how do you claim
using v2.4.0
25 Apr 22
Plugin with Many bugs
using v2.2.0
05 Sep 21
My scorehud tags for scorehud plugin 6.0.0+ made by ifera
It have been updated for ScoreHud 6.0.0+
using v2.1.3-alpha
04 Sep 21
Thank you for your review, if you have any suggestion, don't hesitate to make it known by creating an issue on the github
using v2.1.1-alpha
03 Sep 21
Thank you !

Reply to review by :

/ 5
Supported API versions
ScoreHud 6.3.1
View Plugin
Requirements & Enhancements
MySQL server Enhancement Permission to write / create table and read structure of them
Other Enhancement Install a texture pack if wanted to have image on UI
Producers §
  • Collaborators:
    • @ShockedPlot7560
  • Contributors:
    • @AIPTU
    • @HugoLeBoss91
  • Translators:
    • @MrBlasyMSK
    • @RaidoxxMPH
    • @xAliTura01
License §
API plugins
Manage entities
Other files
Asynchronous tasks

You can leave one review per plugin release, and delete or update your review at any time

/ 5