Logo by Sy_Gibbon

MagicSpells is a Minecraft Bukkit plugin that creates magic spells your players can use. Its main purpose is to give your players access to certain abilities that you might not want to give them unlimited access to. However, instead of just giving them access to boring commands, they instead get more interesting spells. Each spell can be configured in many ways:

  • Reagent costs (the cost of using the spell, including items, mana, health, hunger, experience, and item durability)
  • Cooldowns (the amount of time a player must wait between uses)
  • Durations (how long certain effects last)
  • Ranges (how far away spells can be used from their target)
  • Many more options, depending on the spell

Spells can be cast by using the /cast command, swinging a configurable wand item, or both. It's also possible to have them triggered from other actions the player may take. It's all customizable.


Before a player can cast a spell, they must already know it. There are several ways a player can learn a spell:

  • Taught with the teach spell
  • Learned from a spellbook
  • Learned from a tome
  • Gained from a grant permission
  • Purchased from a shop
  • Being a server op (they know all spells) For example, a server op can teach Bob the blink spell by typing: ''/cast teach bob blink''.

Once a spell is learned, it can be cast either by using the ''/cast'' command or by using a wand item. Now that Bob knows the blink spell, he can either cast it by command, by typing ''/cast blink'', or he can cast it with a wand item. To select the spell, he holds the wand in his hand and right clicks. Right clicking will cycle through any spells assigned to the item he is holding. When he has the one he wants, he left clicks to cast.

If Bob does not have the required reagents for the spell, or if he has cast it recently and it is still on cooldown, he will not be able to cast the spell and will instead receive an error message.

If mana is enabled, a player can use the ''/mana'' command to see how much mana they currently have. Mana can also be configured so it is displayed on the experience bar.

Frequently Asked Questions

Help me! Why isn't it working?

If - after reading through the information available on this website - you can't figure out why something isn't working, please take the time to submit a proper help request. You can post your request in the MagicSpells forum. You should provide the following information:

  • The CraftBukkit version you're using.
  • The MagicSpells version you're using.
  • Which permissions plugin (if any) you are using.
  • The error in the console, if there is one.
  • Your config file(s). Please don't put them directly into the post, use a service like and just post the link here.

But I need help urgently!

You can try joining the IRC channel #magicspells on EsperNet.

It says I need reagents whenever I cast a spell! Where do I get reagents?

One of the main ideas behind this plugin is to give players cool abilities, but with a cost. The reagents are the spell's cost. This can be configured in the config.yml file individually for every spell. The config option name is "cost". You can also give yourself the magicspells.noreagents permission node.

Why can't my players cast spells? Why does it say "You cannot cast that spell right now" when I try to cast any spell?

Please make sure your permissions are all set up correctly. Look at the permission page for more information. This is usually caused when you are missing magicspells.cast permissions.

Why can't I target players with spells?

There are two main reasons this occurs. Most targetable spells have a target-players option that usually defaults to false. You will need to change this to true to be able to target players with spells. Also make sure your players don't have the magicspells.notarget permission node.

Why don't temporary permissions work with WorldEdit/WorldGuard/CommandBook?

Open the wepif.yml file in your server's root folder. In the section under resolvers, remove all of the entries except DinnerPermsResolver. Then restart your server and see if it works now.

I have a great spell idea! Will you add it?

Please tell me about it by posting in the spell request forum! I can't guarantee that I'll make it, but if it's a feasible idea, I'll definitely consider it. I'm always looking for new spell ideas. Note that I may not respond directly to your idea, but I always read the suggestions.

I know some Java, can I write my own spells?

Yes, you can! Please look at this custom spell creation guide to learn how.

I've found a bug! What do I do?

Please submit a ticket! Please include your CraftBukkit build number, any error in the console, the situation that caused the error (if known), and if you think it's applicable, the list of plugins you use.


Upcoming Changes

Coming in version 3.0:

Recent Changes

View the complete change log.

Questions and Comments

You are welcome to post comments here, but if you would like to ask a question or have any kind of discussion, I would prefer if you post on the MagicSpells forums. It is easier to keep track of posts and discussions there.

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

  • Avatar of SatansDaughter66 SatansDaughter66 Jul 18, 2014 at 16:02 UTC - 0 likes

    where in the config is that? i cant find it

    EDIT: ok i found it....theres no targeted option but it says can target: players, monsters, animals
    it works on the mobs but not players.
    ALSO none of the players have the permissions magicspells.notarget

    Last edited Jul 18, 2014 by SatansDaughter66
  • Avatar of BerryMe BerryMe Jul 18, 2014 at 15:05 UTC - 0 likes

    @SatansDaughter66: Go

    Make sure the spell option targeted is true and target-players is true.

  • Avatar of SatansDaughter66 SatansDaughter66 Jul 18, 2014 at 02:51 UTC - 0 likes

    why cant i target players? whenever i try to levitate players, it says no target found.

  • Avatar of LihPeu LihPeu Jul 16, 2014 at 00:53 UTC - 0 likes

    Anyone else found cast-time spells to be cast instantly in the recent dev builds, 3.4-dev-1407131547 or 3.3.1-dev-1407122007?

    EDIT: Cast-time problems solved in build 3.4-dev-1407161742.jar - Cheers!

    I have an observation with unbreakable option in predefined items which is difficult to repeat, sometimes items conjure without the unbreakable option, but if you conjure the item for a second time then it will receive the unbreakable attribute. Really weird and hard to replicate but I had to remove all unbreakable attributes from cost items as sometimes they would conjure without unbreakable and would be considered a different item. Similarly I have had an issue with Mana, on the odd occasion when you re-log you received full Mana, I am aware of the recent Mana settings but this happens really randomly and again is hard to replicate.

    Anyone else found the above to be true?

    Last edited Jul 17, 2014 by LihPeu

    The LihP Network - Europe: USA:
    A Minecraft community since 2011

  • Avatar of xRedBean xRedBean Jul 09, 2014 at 13:42 UTC - 0 likes

    Why the effect DragonDeath can't work ?

  • Avatar of lawrence1998 lawrence1998 Jul 09, 2014 at 02:10 UTC - 0 likes

    Hello. Is there any way to make a tome with more then 1 spell? Like a tome with 5 or 6 spells attatched to it so when they read it they learn like 5 or 6 spells? Or perhaps preset wands with preset spells bound to them ,so a a player can obtain a wand that already has like 6 spells bound to it?

  • Avatar of BerryMe BerryMe Jul 07, 2014 at 16:15 UTC - 0 likes

    @DivinityCraft: Go

    In the general file you can make magicspells ignore durability for specific items.

  • Avatar of LihPeu LihPeu Jul 07, 2014 at 15:49 UTC - 0 likes

    @Tobiyas: Go

    Hey Tobiyas, this plugin is so flexible we too love the API and we also love EDP, I look forward to future releases!

    @nisovin I have noticed a small bug with passive spells, if you have more than one spell in the "spells" passive spell config and the spell has effects, the effects will trigger for each spell. To demo this make a passive spell with the trigger "Kill" and then add more than one spell to "Spells" and add an effect like broadcast to see the duplication in chat. Not a big deal, just thought I would point it out.

    Thanks again for this awesome plugin!

  • Avatar of Tobiyas Tobiyas Jul 07, 2014 at 12:14 UTC - 0 likes

    Hey, I really like your Plugin, and I really like the API it has (finally an API. Not like all the 'API' plugins out there....). Would you please be so kind and add a function to get the current Mana of a Player? I really don't like using reflections on that. :/

    So simply:

    int mana = MagicSpells.getManaHandler().getCurrentMana(player);

    would be awsome!


    If you appriciate my work, please think about donating. It helps not to starve. :D Donation

  • Avatar of DivinityCraft DivinityCraft Jul 07, 2014 at 09:07 UTC - 0 likes

    I want to be able to use items with durability as cast items but since their sub-ID changes when they take damage the plugin doesn't recognize them unless they're undamaged. Anyone know a workaround to this problem?


Date created
Aug 25, 2011
Last update
May 27, 2014
Development stage
  • enUS
GNU General Public License version 3 (GPLv3)
Curse link
Recent files
  • R: v3.3 for CB 1.7.9-R0.1 May 27, 2014
  • R: v3.1 for CB 1.7.2-R0.2 Jan 24, 2014
  • B: v3.0-b6 for CB 1.6.4-R1.0 Oct 24, 2013
  • B: v3.0-b5 for 1.6.4 Oct 01, 2013
  • B: v3.0-b4 for CB 1.6.2-R1.0 Sep 20, 2013



Optional dependency