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 xbenas xbenas Jan 16, 2014 at 17:46 UTC - 0 likes

    Hello, I am using

    FrameProtect 2.4


     git-Bukkit-1.7.2-R0.2-b2974jnks (MC: 1.7.2)


    GroupManager 2.0 (2.12.1) (Phoenix)

    with these permissions and everything works for me, copy & paste to see if it works for You fellas!

    In globalgroups.yml

    # Permission nodes for FrameProtect by xbenas
    # Will only protect Item Frames because I have another plugin which handles paintings!
        - frameProtect.autoprotect.frame
        - -frameProtect.autoprotect.painting
        - frameProtect.protect.frame
        - -frameProtect.protect.painting

    and in groups.yml

        default: true
        permissions: []
        - g:groupmanager_default
        - g:bukkit_default
        - g:essentials_default
        - g:essentials_notify
        - g:frameprotect_default
          prefix: ''

    I can only help this much, it just works for me ATM.
    Much love to plugin devs!

    Lithuanian Minecraft Server | | IP:

  • Avatar of lucasbuck2 lucasbuck2 Jan 16, 2014 at 17:33 UTC - 0 likes

    I've tried: -* -* - - for players, but still no luck. They can't place frames. Any ideas?

  • Avatar of lanceryy lanceryy Jan 13, 2014 at 01:09 UTC - 0 likes

    This plugin will cause lag for server:

    FrameProtect v2.4 Total: 42.038 s Pct: 1.39%

    Pct Total Pct Tick Total Avg Count Event

    1.06% 2.87% 31.934 s 1.4344 ms 22.26k BlockPlaceEvent

    0.24% 1.22% 7.358 s 0.6094 ms 12.08k BlockExpEvent (and sub-classes)

    0.07% 2.49% 2.001 s 1.2431 ms 1.61k BlockPistonExtendEvent

    0.01% 14.01% 0.378 s 7.0051 ms 0.05k HangingPlaceEvent

    0.01% 4.98% 0.344 s 2.4909 ms 0.14k HangingBreakEvent (and sub-classes)

    0.00% 0.00% 0.015 s 0.0015 ms 9.68k EntityDamageEvent (and sub-classes)

    0.00% 0.01% 0.008 s 0.0037 ms 2.01k PlayerInteractEntityEvent

  • Avatar of lucasbuck2 lucasbuck2 Jan 12, 2014 at 22:30 UTC - 0 likes

    Thanks for the plugin. How do I turn off automatic frame protection? I didn't change anything in my permissions and have just been using the /fp protect and right clicking. But then noticed new frames are being protected when I don't want them to be.

  • Avatar of nunphix nunphix Jan 12, 2014 at 00:08 UTC - 0 likes

    Ok so trying to break a protected block to the top, left or behind the frame removes it. The right and bottom doesnt affect it.

    This is when a player tried to break but the block reappears, when it reappears the frame doesnt

  • Avatar of nunphix nunphix Jan 12, 2014 at 00:05 UTC - 0 likes

    When there is snow above the frame block and a player removes it the frame dissappears

  • Avatar of Aqelius Aqelius Jan 11, 2014 at 05:41 UTC - 0 likes

    Я перевёл на русский, добавьте пожалуйста перевод в ваш плагин. Ссылка на файл перевода

  • Avatar of GetTheFuckHere GetTheFuckHere Jan 10, 2014 at 01:25 UTC - 0 likes

    Permissions just dont work at all.

  • Avatar of santocraft1 santocraft1 Jan 09, 2014 at 22:25 UTC - 0 likes

    @Dragon252525: Go

    • Frameprotect ver: FrameProtect_v2.4
    • permissions: - frameProtect.autoprotect.* - frameProtect.protect.* -* -* - frameProtect.ignorecreative
    • No, I didn't change anytjing in config.yml
    • craftbukkit version: last one
  • Avatar of xbenas xbenas Jan 09, 2014 at 20:02 UTC - 0 likes


    From my testing on CraftBukkit Beta Build | 1.7.2-R0.2 with GroupManager the permissions with asterisks like permission.* do not work! It's a good thing I did not use the asterisk permissions and used the whole permission! Please be careful and fix this issue now, both server owners and plugin devs! This bug seems exclusive to FrameProtect, since the asterisk permissions work flawlessly with Essentials and VanishNoPacket.

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