Add a new pack (check out mc-packs.net if you need a server resource pack host)
/frp removepack <name>
Remove a pack
/frp getpacks [<player>]
Get the currently applied pack of a player
/frp getstoredpack [<player>]
Get the stored pack of a player (requires UUID for offline players)
/frp packusage <pack>
Get the applied and stored counts for a pack
/frp listassignments
List all server/world assignments
/frp deleteassignment <assignment>
Delete a certain server/world assignment
/frp globalassignment|assignment <assignment>
Show/edit values of a certain assignment or the global ones. Sub commands: - info - pack <pack> - required true|false - promptmessage <message> - addoptionalpack <pack> - removeoptionalpack <pack> - regex <regex> - senddelay <delay in ticks> - addaction <status> <action> <value> - removeaction <status> [<action>] - addfirstjoinaction <status> <action> <value> - removefirstjoinaction <status> [<action>] - addpackaction <status> <action> <value> - removepackaction <status> [<action>] - addfirstjoinpackaction <status> <action> <value> - removefirstjoinpackaction <status> [<action>]
/usepack
List all packs that you can choose
/usepack <packname> [<playername>] [<temporary>]
Send a specific pack to yourself or another player, depending on the value of temporary it will only apply for this session or also re-apply on the next login. Values are true or false, omitting it will use the
usepack-is-temporary config value (defaults to true)
/resetpack [<playername>] [<temporary>]
Reset the pack of a player.
Permissions
forceresourcepacks.command - Access to the /frp command
forceresourcepacks.command.reload - Access to /frp reload
forceresourcepacks.command.generatehashes - Access to /frp generatehashes
forceresourcepacks.command.version - Access to /frp version
forceresourcepacks.command.usepack - Access to /usepack forceresourcepacks.command.usepack.others - Send packs to other players via the /usepack command forceresourcepacks.command.usepack.temporary- Select whether or not the selected pack is only temporary or should be stored and re-applied
forceresourcepacks.command.resetpack - Access to /resetpack forceresourcepacks.command.resetpack.others - Reset the pack of other players forceresourcepacks.command.resetpack.temporary - Reset whether or not the pack should only be temporary reset and not stored
forceresourcepacks.command.getpack - Access to /frp getpack forceresourcepacks.command.getpack.others - Get the applied pack of other players
forceresourcepacks.command.getstoredpack - Access to /frp getstoredpack forceresourcepacks.command.getstoredpack.others - Get the stored pack of other players
forceresourcepacks.command.packusage - Access to /frp packusage
forceresourcepacks.command.addpack - Access tpo /frp addpack forceresourcepacks.command.pack - Access to /frp pack to edit packs
forceresourcepacks.command.assignment - Access to /frp assignment to add and edit server/world assignments forceresourcepacks.command.deleteassignment - Access to /frp deleteassignment to delete a server/world assignment forceresourcepacks.command.globalassignment - Access to /frp globalassignment to view and edit the global assignment
forceresourcepacks.pack.<packname> - Gives access to a pack via the /usepack command, you can define these permissions via the config.yml on per pack basis
forceresourcepacks.updatenotification - Get ingame update notifications
forceresourcepacks.bypass.required - Bypasses the "required" setting which will make 1.17+ clients unable to reject a download prompt forceresourcepacks.bypass.<assignment>.required - Bypasses the "required" setting of a specific assignment forceresourcepacks.bypass.<action> - Bypass a certain action for all statuses and assignments forceresourcepacks.bypass.<status>.<action> - Bypass a certain action for a certain status in all assignments forceresourcepacks.bypass.<assignment>.<action> - Bypass a certain action of a certain assignment for all statuses forceresourcepacks.bypass.<assignment>.<status>.<action> - Bypass a certain action for a certain status of a certain assignment
Statuses you can react on
These are the pack statuses that you can react on in the config. The list is more or less in the order in which they occur when a pack gets send (some are alternatives of each other like accepted and declined) and some might not trigger once other status were called. (E.g. no_permission/wrong_version stops any later statuses or declined leads to loaded or failed not occuring)
NO_PERMISSION No pack can be send to a player because all that would be available on that server are restricted and the player doesn't have the permissions he would need for that pack
WRONG_VERSION No pack can be send because all packs that would be available on that server have a pack format that would be incompatible with the player's client version or the client has the wrong type (bedrock) and can't receive packs.
REQUESTED A request to download the server resource pack is send to the client. Run before anything shows up for the user.
ACCEPTED The player chose "yes" on the download screen or has the server pack enabled for this server entry in his multiplayer list
DECLINED The player chose "no" on the download screen or has the server pack disabled for this server entry in his multiplayer list
LOADED The player finished downloading the pack and the client applied it
FAILED The client failed to download the pack, e.g. when the pack url is wrong. Check the client's latest.log file for more details!
TIMEOUT The client/player failed to react on the server resourcepack sent prompt in the amount of seconds set in the config at "prompttimeout" If no extra actions for TIMEOUT are set the DECLINED actions are used
For 1.20.3+ clients:
DOWNLOADED The player finished downloading the pack
INVALID_URL The URL provided wasn't valid
FAILED_TO_RELOAD The client failed to (re)load the applied pack
DISCARDED The client decided to not do anything with the pack (e.g. the same version was applied already)
Actions you can run
All actions that send some kind of message or command support usage of ampersands (&) for color and formatting codes. In all actions you can use %pack% to get the name of the pack and %player% for the name of the player! You can also use lang:some.language.key in the action value to send messages from the language files in the player's language! (Even supported for sending to different servers if you have per-language servers) You can just add your own language key somewhere in the language files.
MESSAGE Sends a message to the player.
TITLE Send a title (multi-line strings don't work in titles, subtitles and action bar messages)
SUBTITLE Send a subtitle (can be used with or without the title action)
TITLE_FADEIN Set the title's fade in timing (in ticks)
TITLE_STAY Set the title's stay timing (in ticks)
TITLE_FADEOUT Set the title's fade out timing (in ticks)
ACTION_BAR Send a message in the action bar chat slot above the user's inventory bar (supported natively on Bungee and modern Spigot versions. For older versions use ActionBarAPI)
KICK Kick the player from the proxy or the server with the value of this action as the kick message
SEND Send the player to a specific server (Bungee version) or world (Bukkit version), the value of this action is the server's/world's name!
CONSOLE_COMMAND Execute a command as the console of the server or proxy that FRP is running on. You can define multiple commands as a list or multiline string.
PLAYER_COMMAND Execute a command as the player who reacted on the status. ou can define multiple commands as a list or multiline string. Please note that the player needs the permission to run the command and that the command is run on the server or proxy the plugin is run on! If you want to run commands on the Minecraft server either install FRP there too and configure it so that it reacts on the statuses there with the commands or use a separate plugin which can forward commands from the proxy to the Minecraft server.
WorldGuard Flags
If you install this plugin on Bukkit then you have access to the following WorldGuard flags: resourcepack-on-entry resourcepack-on-exit String flags with the name of a configured pack as the value and will apply the pack as soon as the region is entered.
entry-without-resourcepack exit-without-resourcepack Boolean (allow/deny) flags. Default value is allow. You can bypass it with the same bypass permission as the normal entry and deny flags. If the entry-deny-message or exit-deny-message is set it will send it to the user.
Please note that the flags require at least WorldGuard 6.1.3!
PlaceholderAPI Placeholders
If you have this plugin on Bukkit then you have access to the following PlacerholderAPI placeholders:
%frp_pack% - Show the name of the pack(s) that is/are currently applied by the player's client %frp_storedpack% - Show the name of the pack that the player has stored %frp_pack_<pack>_online% - The amount of players online that have selected a certain pack %frp_pack_<pack>_stored% - The amount of players total that have a certain pack stored %frp_status% - The statuses of the packs of the player %frp_status_<status>% - Whether the player has the status %frp_status_<pack>_<status>% - Whether the player replied with a certain status on a pack
Config
You can find the default configs for running the plugin on Bungee and Bukkit on gist! They are slightly different, read this update note for information on how the Bukkit config differs from the Bungee one or just take a look at the default configs linked previously.
How to get the resource pack's sha1 file check sum via terminal/console:
Linux:sha1sum /path/to/file.zip Windows:FCIV -sha1 path\to\file.zip Mac OS:shasum /path/to/file.zip (Please note that the path has to be on the local system, not the download url!)
(Plugin versions above 1.6.5 will try to generate the sha1 hashes automatically and include a /frp generatehashes command!)