FrameProtect - Logo



This is a plugin which allows you to protect Item Frames and Paintings (and soon Armor Stands).

IN WORK! I'm rewriting the whole code & adding protection for Armor Stands

Tell me your opinion in the poll!

FUTURE FEATURES (not yet implemented)

  • armor stand protection
  • faster data loading
  • using SQLite for stroing local data
  • automatic respawning of disappeared objects


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

→ 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/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>

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 IcariaBui IcariaBui Jul 20, 2014 at 00:52 UTC - 0 likes

    Major problem with this plugin one of my testers noticed that if you shoot a picture frame with a bow or projectile the item inside the frame still falls out.

  • Avatar of J0schlZ J0schlZ Jul 12, 2014 at 15:30 UTC - 0 likes


    i really love this plugin! But i miss a command like "/fp cleanup" to remove dead entries from the entire database. Can you please make it possible?

    Greets from Germany

    Last edited Jul 15, 2014 by J0schlZ -

  • Avatar of alanthya alanthya Jun 16, 2014 at 11:32 UTC - 0 likes

    Every frame that i did /fp protect despawns on reload

    Alanthya: Beyond Minecraft - Server IP: Website:

  • Avatar of rs2klee rs2klee May 27, 2014 at 16:57 UTC - 0 likes

    @legoset0: Go

    what section did u put it in, im using groupmanager :) thanks

  • Avatar of rs2klee rs2klee May 27, 2014 at 16:55 UTC - 0 likes

    @bugalugs50: Go

    yeah would have been nice to let everyone know, no good just saying yeah I fixed it then just leave.. lol I been putting the perms in all different sections and still says the normal members cant place signs!! ops & admin`s can!! but not users and members!

  • Avatar of externo6 externo6 May 26, 2014 at 09:47 UTC - 0 likes

    Is it possible automatically 'unlock' protections after a certain amount of inactivity of a player?

  • Avatar of KillerKrabs KillerKrabs May 19, 2014 at 06:05 UTC - 0 likes

    @dillonbrown51: Go

    Same here. It was working earlier, but now it's not. I can't understand why; I didn't change anything.

  • Avatar of MrGhettocraft MrGhettocraft Apr 23, 2014 at 20:08 UTC - 0 likes

    How can I allow my players to place/break THEIR paintings, but not any frames?

    Website: IP:

  • 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 ¿?


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