Older versions/FrameProtect until version 2.5




  • prevent players from knocking down item frames and paintings
  • create protected item frames and paintings
  • set the owner of protected item frames and paintings
  • stop placing multiple item frames at the same place
  • prevent players from cheating items by putting them into item frames in gamemode Creative
  • stop creepers, tnt and all the other things from destroying protectet frames/paintings
  • stop pistons from destroying protectet frames/paintings
  • autoprotect the blocks that frames/paintings are hanging on
  • MySQL support
  • permissions support
  • Minecraft 1.7 compatible

There is a bug in 1.6 / 1.7 that causes a doubling of the data on each save.

Unfortunately, the whole MySQL database has to be cleared because it may take hours to load the data and see which entries are identical (the databases may have a size of multiple millions of entries).

If you've used version 1.6 or 1.7 and you're storing your data in a MySQL database, the plugin will automatically reset your database on first start.

You have to protect all the frames and paintings again.

Sorry for that, it's my fault.



  • Make sure your server is running at least CraftBukkit 1.4.2-R0.2 or newer
  • Put the FrameProtect.jar into your plugins folder and restart the server.



Permission Command Description
frameProtect.autoprotect.* none The plugin will automatically protect the frames/paintings the player places.
frameProtect.protect.* /fp protect Protect an item frame/painting.
frameProtect.protect.* /fp remove Remove the protection from an item frame/painting.
frameProtect.place.* none Allows the player to place/destroy item frames/paintings.
frameProtect.info.* /fp info Allows the player to get infos about an item frame/painting.
frameProtect.ignorecreative none The player CAN add Items to frames in GM creative.
frameProtect.admin none All other permissions.
frameProtect.admin none Allows the player to destroy any item frame/painting.
frameProtect.admin /fp lang Change the language.
frameProtect.admin /fp owner Allows the player to define the owner of a protected frame/painting.
frameProtect.admin /fp reload Reload the config.yml

instead of /fp you can also use /frameprotect

Notice: instead of .*, which means it's for frames and pictures, you can put .frame or .painting
if you for example want to allow your players to get infos about paintings but not item frames, you can give them the permission frameProtect.info.painting



#set the language (de/en/nl/hu/fr/tr/ru/custom)
language: en

#disable [FrameProtect] Saving data to disk... in the console
disable_consoleMessages: false

#disable the messages when you create/destroy a private frame/painting
disable_create_and_destroy_messages: false

#disables the messages when you interact with a frame/painting that isn't yours
disable_not_yours_messages: false

#if false, frames/paintings will die when there's no block behind them.
disable_natural_breaking: false

#if false frames/paintings will be destroyed if a creeper explodes near them
disable_breaking_by_mobs: true

#if true you can't place blocks at the same place as frames
stop_block_placing_over_frames: true

#if true blocks with frames/paintings on them can only be destroyed by their owners and admins
protect_blocks: true

#false = use files / true = try to use MySql
use_MySql: false

#some MySql configurations
mysql_host: localhost
mysql_port: '3306'
mysql_database: database
mysql_username: username
mysql_password: password

#Don't change this! It's to see if FrameProtect has to import files from an older FrameProtect version.
do_not_change_this: false

#true = reset the MySql database on reload (deletes all protections; doesn't do anything when you don't use MySql)
resetDataBase: false



FrameProtect is available in seven languages (German, English, Dutch, Hungarian, French, Turkish and Russian). If you want to change the language type in /fp lang <DE|EN|NL|HU|FR|TR|RU|custom>

DE German Deutsch by Dragon252525
EN English English by Dragon252525
NL Dutch Nederlands by DJFLuFFy_vs_joe
HU Hungarian magyar by pcroland
FR French français by Nocticraft
TR Turkish Türkçe by LioXx
RU Russian русский by Aqelius
custom custom loads the texts from the languagefile by you



  • pistons may destroy paintings
  • only the block where you placed a painting is protected (same for pistons)

If you find a bug, please write me a comment or a PM.



by BukkitSE (svenska)

Embed Removed: https://www.youtube.com/v/eIUXmBprsVY?fs=1

by TheRickBoy (English)

Embed Removed: https://www.youtube.com/v/54a1O_BCYrc?fs=1

by iArMineCraft (العربية)

Embed Removed: https://www.youtube.com/v/uNmt1fSqBq8?fs=1

by theEffix (Deutsch)

Embed Removed: https://www.youtube.com/v/fY-mSx57jXI?fs=1



FrameProtect sends statistics about the usage to mcstats.org. You can disable this by setting the option opt-out in the YourServerFolder/plugins/PluginMetrics/config.yml to true.
FrameProtect - MCStats