FrameProtect - Logo



This is a plugin which allows you to protect item frames and paintings.

Thanks for over 36000 downloads!


  • 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



  • added: new language (Russian)
  • added: config option to en-/disable the this is not your frame/painting and you can't destroy frames/paintings messages → disable_not_yours_messages
  • fixed: block duplication bug when using mcMMO (and maybe some other plugins)

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

Unfortunately, the whole MySql database have 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).

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

→ DOWNLOAD FrameProtect_v2.5 ←


  • 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.


frameProtect.autoprotect.*noneThe plugin will automatically protect the frames/paintings the player places.
frameProtect.protect.*/fp protectProtect an item frame/painting.
frameProtect.protect.*/fp removeRemove the protection from an item frame/painting.*noneAllows the player to place/destroy item frames/paintings.*/fp infoAllows the player to get infos about an item frame/painting.
frameProtect.ignorecreativenoneThe player CAN add Items to frames in GM creative.
frameProtect.adminnoneAll other permissions.
frameProtect.adminnoneAllows the player to destroy any item frame/painting.
frameProtect.admin/fp langChange the language.
frameProtect.admin/fp ownerAllows the player to define the owner of a protected frame/painting.
frameProtect.admin/fp reloadReload 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


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

#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>

DEGermanDeutschby Dragon252525
ENEnglishEnglishby Dragon252525
NLDutchNederlandsby DJFLuFFy_vs_joe
HUHungarianmagyarby pcroland
FRFrenchfrançaisby Nocticraft
TRTurkishTürkçeby LioXx
RURussianрусскийby Aqelius
customcustomloads the texts from the languagefileby 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.


  • perhaps add commands
  • add mysql support for saver and faster datastorage
  • add a database clean-up
  • perhaps add support for protecting pictures
  • prevent placing blocks over item frames/paintings
  • stop pistons from destroying frames/paintings
  • multilanguage support
  • fix language.yml
  • protect blocks with protectet frames on them
  • rewrite the mysql part (very bad programmed; was my first mysql project)
  • add a feature to respawn disapeared frames
  • maybe add the possibility to protect signs


by BukkitSE (svenska)

by TheRickBoy (English)

by iArMineCraft (العربية)

by theEffix (Deutsch)


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

You must login to post a comment. Don't have an account? Register to get one!

  • Avatar of Pixiyo Pixiyo Apr 22, 2014 at 15:45 UTC - 0 likes

    Plugin does give lag, using MYSQL. Timings:

  • Avatar of saturnux saturnux Apr 20, 2014 at 08:56 UTC - 0 likes

    Are you going to be updating to UUIDs soon ¿?

  • Avatar of Iwitrag Iwitrag Apr 17, 2014 at 09:51 UTC - 0 likes

    @IDLauncher: Go

    Same problem here

  • Avatar of IDLauncher IDLauncher Apr 16, 2014 at 11:36 UTC - 0 likes

    @Max633: Go

    Did a quick test due to a similar problem I was having.

    If players don't have the perm frameprotect.protect.* (or frame, or painting) you get that error, despite having the placement perm.

    At least in my case, anyhow, where I'm negating said perm(s) in a specific world.

  • Avatar of pheea pheea Apr 15, 2014 at 10:32 UTC - 1 like

    Are you going to be updating to UUIDs soon??

  • Avatar of Darunia18 Darunia18 Apr 11, 2014 at 03:03 UTC - 0 likes

    Just a general question I'm asking developers of plugins I use: have you started looking into the username changes/UUID issue, and figuring out ways to convert the old system to the new, etc? I'm trying to get ahead of the game and make sure all our plugins are prepared for when they flip the switch and activate name changes. Thanks for all the hard work you put into FrameProtect! Keep up the great work!


  • Avatar of bugalugs50 bugalugs50 Apr 05, 2014 at 13:32 UTC - 0 likes

    lego, how did you fix it? might be my solution!

  • Avatar of bugalugs50 bugalugs50 Apr 05, 2014 at 13:30 UTC - 0 likes

    I was fine with this till I loaded up Group Manager instead of PEX; is this not compatible? the same perms are in place.

  • Avatar of Max633 Max633 Apr 02, 2014 at 08:45 UTC - 0 likes

    @AzureBlure: Go

    I have the same problem....

    Server french

  • Avatar of AzureBlure AzureBlure Mar 29, 2014 at 14:11 UTC - 0 likes

    Altough the players have the permission* they can´t place frames. They recieve a error message but i doesn´t get errors in console

    Can you please fix this?



Should I add the possibility to protect signs?

  1. Choice:

  1. Results
  2. 13 comments


Date created
Nov 04, 2012
Last update
Jan 26, 2014
Development stage
  • deDE
  • enUS
  • frFR
  • ruRU
All Rights Reserved
Curse link
Recent files