Magic

Server Compatibility
Please make sure you download the correct version for your server:
- 1.20.5 and Up => Latest Build
- 1.9 => Magic-10.9.8 (or latest Magic-Legacy build)
-
1.8.8: => Magic-5.5.6
-
1.8.3: => Magic-5.3.3
-
1.7.x => Magic-CB1.x
-
Earlier: => Check Compatibility in Files Section
Need Help? First Try:
-
Check the FAQ
-
Read the rest of the wiki
-
Check the reference manual for configuration options
-
Check the config info page for spell, wand and other info
-
Find examples in the builtin configs
-
Check your logs for errors
If you can't find what you're looking for, come join us on Discord for help or ideas!
Found a bug? Have a Feature Request?
- Use our issue tracker
Overview
Live Demo
Tutorial Videos
More Information
Please see the Magic home page on github for up-to-date information!
Metrics Collection
This plugin uses bstats for metrics collection. The information sent to bstats.org is completely anonymous, publicly viewable, and includes the following metrics:
- A unique identifier
- The server's version of Java
- Whether the server is in offline or online mode
- The plugin's version
- The server's version
- The OS version/name and architecture
- The core count for the CPU
- The number of players online
- The Metrics version
Opting out of this service can be done by editing plugins/Plugin Metrics/config.yml and changing opt-out to true, or by editing this plugin's config.yml and changing "metrics_level" to 0.
Changelog
Full changelog can be viewed on github

-
View User Profile
-
Send Message
Posted May 8, 2014@xs0lidus
Is this the Quests plugin?
http://dev.bukkit.org/bukkit-plugins/quests/
That sounds pretty epic, I'll bump this up in my "TODO: Integrate" list :)
In the meantime, can the quest run a command on completion? Is there any way to have it, say, call "wandp @p fire" with the player's name in place of @p, anything like that?
cost_reduction ranges from 0-1, like most of the properties. How much 1 means is defined in config.yml, the default is 0.5 - meaning 50%.
Confusing, I know- but this means that "cost_reduction: 1" equates to a 50% cost reduction- all spells are half-off. This is as high as it will naturally go.
Anything over 1 will be considered simply "Cost Free". Spell costs won't even show on the wand, it won't use a mana system at all or mess with the XP bar in any way. In the default config, you'll see the Wolf and Admin wands are set up this way- all spells are completely free.
-
View User Profile
-
Send Message
Posted May 8, 2014@NathanWolf
I was hoping to give wands to players who complete certain quests. I assume I can't just add that to the quest config.
-My setup is quite simple, the idea of my server is to be as simple as possible.
I am making every spell its own wand and selling them in the spawn village. As you move out further and discover more villages, you can buy wands with 2 or more spells, or something like a more powerful fireball wand in a desert village, poisonous wand in a swamp ect.
Mana system works well for me, it allows me to set a fire rate for each wand.
Though I don't understand the cost reduction feature fully. If I added a cost reduction of 10 to sniper, what would that do?
-
View User Profile
-
Send Message
Posted May 8, 2014@HosomITA
Not sure if you came back to see, but I'm now using Shopkeepers. Unfortunately it does require a CB patch, I'm doing what I can to try and get it fixed internally.
If you want to see what it's like, it's ... well, pretty awesome! Come check out my survival server, I'm in the process of transitioning it over.
I really appreciate you mentioning Shopkeepers. It's really exactly what I want on my server. dtlTraders is great, but Shopkeepers is 100% more authentically Minecrafty :)
I am now in the process of thinking *very* hard about how to support a physical economy with Magic. I've already restricted building with any valuable materials- this includes when using clone, replicate, etc.
I've set up a system to help balance a Magic economy, too. As always, it's highly configurable! But, currently, the only place it shows up is on the website. I'm going to add in-game support for economy help via admin commands, but in the meantime, check it out:
http://mine.elmakers.com/#spells
Each spell and wand now has a "Suggested Price". The default is an emerald/diamond/gold nugget based economy, but this could work with a balance-based economy, or with dtlTraders price "icon" items. Spell prices are set in spells.yml, and config.yml has a bunch of tweaky parameters for what items are worth, and what wand properties are worth.
Wand prices are automatically calculated based on the price of their spells, any brushes they have, and their properties. This even works for pricing upgrade items (which I've also added ot the website as a new tab).
I'm still working on a good balance for everything, but I think it's getting there. It's interesting to see the wild swing in prices- from wands that can be bought with gold nuggets to wands like Elder that cost more than 128 emeralds and so couldn't be fairly sold in a Shopkeeper shop...
I'm excited! I think Magic 3.2 is going to be the "Economy" release :)
-
View User Profile
-
Send Message
Posted May 8, 2014MCStats
Just to be super clear, since 3.0 Magic has incorporated MCStats (see disclaimer above). This is a completely anonymous data collection utility, and helps me a lot to know who is using my plugin, and how they're using it.
I'm actually a big data nerd (it's what I've been doing in my RL job for many years now) so I'm excited about metrics in a very geeky way.
I was elated when, a week or so ago, Magic broke into the top 500 plugins. Well it's been climbing ever since, and today we just broke into the top 400:
http://mcstats.org/plugin/Magic
Hooray! If Magic ever makes it to the top 100, things start to get interesting :) We'll see! Only with your help....
Up til now I've really had nothing to go on other than download count, which really doesn't help to tell me who actually is using the plugin versus who just downloaded it, tried it, hated it, etc.
Anywho, I wanted to point out that there are some really cool custom graphs on there that, unfortunately, are not showing up. I think this is a general problem with MCStats, and I'm pretty sad about it. If that ever works, you'll be able to check up on the world of Magic, see what spells everyone loves, which ones don't get much play, that kind of thing. I think it's pretty neat.
It will also tell me more detailed information, like who has crafting or enchanting disabled/enabled, who has dynmap or Factions integration, etc. I really hope I can get it working.
-
View User Profile
-
Send Message
Posted May 8, 2014@xs0lidus
Just a couple more random thoughts I had- I'm not sure what kind of set up you're going for, but there are a few interesting options in the realm of single-spell wands.
For instance, you can use a different "item" in the wands config- I'm not sure if there's an item that looks particularly like a sniper rifle, but you can see where I'm going with this.
If you're not going for a "magicy" experience at all you can change a lot of the text... like "Mana" could be "Ammo" - Regen could be "Reload Rate", that kind of thing. You could also just get rid of costs on all spells entirely and use cooldowns. This would mean the player gets a message like "You must wait X seconds" instead of the XP bar showing mana. Though, personally, I like the way you're trying to use mana for cooldowns.
And yet another option is to make the wand cost-free (and again rely on cooldowns). This will put "Cost Reduction X" in the wand lore, though, but of course you could customize that, too :)
If you do something like make the wand cost-free, this is where that "locked" flag comes in, assuming this is part of a greater ecosystem where one may be able to upgrade a wand. You don't want someone to be able to add spells to a cost-free wand if cost-free is not the norm.
And, of course, the spells themselves are always customizable. I actually want to circle back on Sniper and update its sound and particle effects to feel more like a gunshot. You can tinker around with this stuff quite a bit using a wand and the "sound" and "effect_particle" properties. You can make your wand spit out a particle ring and a sound at a fixed rate, then (using tab completion) try out all the different effects, tweak pitch/volume, etc.
Ok, well I'd love to come check out your set up sometime when you're done- I love customizations!
-
View User Profile
-
Send Message
Posted May 8, 2014@xs0lidus
You will only see the effect color if you also enable "effect_bubbles" (though, haste, regen, or other potion effects may override it).
The color also applies to Flare and other firework effects. It also determines how you show up on dynmap. It is an admittedly subtle thing, but I'm hoping to use it for more. I recently made it so the color with automatically change over time depending on what you cast.
I've modded on a server before with Magic and NCP, I didn't notice any conflicts, but Magic does not do anything special to play nice.
I'll check out Quests, sure, I'll put it in the list of candidates to look over. I'm playing with MythicMobs right now, so MythicQuests may be the first quest plugin I look at.
What kind of integration do you have in mind ? Is there a problem with the quests plugin and magic living together?
As a general note, I'm probably not going to spend much time doing "fix wand breakage" type of integration if the CB patch I've got fixes the problem instead. I am in the process of reaching out to the bukkit team about it , my hope is one day they'll let me fix the problem.
-
View User Profile
-
Send Message
Posted May 8, 2014I'm not sure effect_color works either. You can see in my sniper config I have effect_color: '008800' but there doesn't seem to be any effects.
Two more questions:
Does this plugin play well with NoCheatPlus?
Could you integrate Magic with Quests by _Blackvein_? http://dev.bukkit.org/bukkit-plugins/quests/
Thanks a lot.
-
View User Profile
-
Send Message
Posted May 7, 2014@xs0lidus
Well I'm glad you were able to work around it! And thanks for the heads up, I'll have to look at that. I thought I supported embedding the name and description for wands and spells to make it easier to customize.
-
View User Profile
-
Send Message
Posted May 7, 2014@NathanWolf
I am adding new wands to wands.yml and selling them with Essentials signs. Though for my own testing I am spawning them with /wand <wand name>
I didn't modify messages.yml at all and I didn't add "name" to wands.yml either, but now I did and nothing has changed. Here is my template,
sniper:
name: Sniper Wand
active_spell: sniper
description: Fires arrows at deadly speeds
xp_regeneration: 25
uses: 300
effect_color: '008800'
xp_max: 250
spells:
- sniper
(ignore the formatting here)
I edited messages.yml now and the name/description is displaying properly. Adding those parameters to wands.yml just doesn't work.
-
View User Profile
-
Send Message
Posted May 7, 2014@NathanWolf
Hm- if the wand is named something, but still showing as "Wand" you may have found a bug. or it could be a config issue.
How are you creating and selling the wands? Are you adding new templates to wands.yml?
If so, did you stick "name" right in there, or did you put it in messages.yml? Either should work, but I normally use messages.yml. If you want to gist or pastebin your whole configs I could have a look.
If you're just creating the wands in-game and selling them via a chest or trader shop, make sure to do "/wand name" on them- I think it works better than "/wand configure name", it has to do some specific stuff to fix up the name.
I hope that helps! Let me know more about your setup and I can try to help, and/or replicate a bug you may have run into.
EDIT: I'm thinking now it's likely a config issue. Since none of the default templates have a "name" or "description" in wands.defaults.yml, it's a bit confusing. Add one, or take a look at the "wands" section of messages.defaults.yml to see what to add to messages.yml. The text is separate for easy localization, but you can also just add "name" and "description" right in the wand config, like:
If you're using custom wand templates, I'll bet they're missing the "name" property- is that it?
-
View User Profile
-
Send Message
Posted May 7, 2014Actually, the wand is already named just "Sniper", but the hotbar overlay says just "Wand".
Not sure what I'm supposed to change.
-
View User Profile
-
Send Message
Posted May 7, 2014@NathanWolf
I'm just using the spells that are already there, and making them wands. I have a wand named sniper, and it uses only the sniper spell.
And yes, you're right. I didn't think of that at all.
Btw, in wand configuration, what do the parameters "bound", "keep", and "locked" do?
Thanks.
-
View User Profile
-
Send Message
Posted May 7, 2014@xs0lidus
Hm, I think I did that in purpose because I assumed you would give a single-spell wand a custom name.
I think you can actually make the name "$spell Wand" and will auto-fill the name in- this is how the randomized ones work.
Anyway I think the idea is you'd just name the wand "Sniper Wand", and you wouldn't want that to display as "Sniper Wand (Sniper)". Does that make sense? Is there a better way I could do it?
-
View User Profile
-
Send Message
Posted May 7, 2014@NathanWolf
Thanks a lot. Another question.. I'm selling wands with only one spell attached, but the spell name isn't there in the hotbar. It just says "Wand (300 Uses)" Whereas a wand with multiple spells shows the currently active spell. Perhaps wands with just one spell can display something like "*spell name* Wand (300 Uses)" Sniper Wand (300 Uses)
-
View User Profile
-
Send Message
Posted May 6, 2014@Silversbane
Hm... interesting idea. I rely on permissions for multi-world stuff, so maybe a pnode for "keep wands"? There are a few global config options like this I'm thinking of changing into pnodes which would probably help you out.
Otherwise, it's a property of the wand, so it can't be world-specific. But the above is doable, I'll open a ticket. :)
http://jira.elmakers.com/browse/MAGIC-69
^ If you want to vote or watch it...
-
View User Profile
-
Send Message
Posted May 6, 2014I have a suggestion. Can you make the config.yml and spells be world specific more importantly the config.yml. I have a survival challenge world on my server that uses its own inventory and more and I would like to make it so you can lose wands on death in that world but keep them in the default main world. Just a thought. Thank you.
-
View User Profile
-
Send Message
Posted May 6, 2014I got to mess around in the CraftBukkit source some more, and I have some extremely promising results. At this point I think the main problem will be trying to figure out how to convince the Bukkit team that this is a worthwhile thing to do, since I can't think of a way to fix it outside of a CB patch.
So I'm working on a CB patch. It may or may not ever see the light of day, and I know no one wants to run a custom CB (and I'm not even allowed to suggest it here), but I want to know if it's possible for CB to easily work with custom item data, and so far it seems to be very, very possible.
I'm also not trying to be hacky. I didn't implement an "NBT API", I know Bukkit doesn't want that (though it could be added to what I've done). I have simply added an "extra data" section to CraftItemStack, which will store any extra NBT data that may be present on an item.
By "extra" I mean anything not represented by a well-known, built-in ItemMeta class. If there is no such data (as there normally will not be), the only impact is an empty Map reference (not even an initialized Map) on each ItemStack instance- which doesn't seem like a huge overhead to me.
If the extra data is present, it is serialized, copied, etc at a core level, whether dealing with a concrete NMS Item, or a Bukkit mirror ItemStack. My patch is completely contained in the CraftItemStack class, though it does add quite a bit of additional NBTTag references to unobfuscated methods... I know they won't like that, though I did some searching and there is some precedent for it here and there.
It just works. It's beautiful.
Here are the results of a Shopkeepers save using a CraftBukkit with this patch:
https://gist.github.com/NathanWolf/0ab6c020d746b3044d1d
So Shopkeepers is now fully Magic-compatible without any changes to that plugin. (I do need to do more testing...). You can see all the custom wand data was automatically serialized.
I imagine a slew of other plugins would suddenly "just work" with Magic, as long as they're using the Bukkit ItemStack serialization API for saving and loading items.
This even fixes creative mode - I'd need to update Magic to capture creative inventory mode clicks (so you don't mess up your wand in inventory mode) but with this patch creative no longer destroys wands or the spells in your wand. It just works. It's so wonderful, I can hardly believe it.
We'll see how far I get with this, but you can expect that I'll be running a custom CraftBukkit on my own server for a while to test this out.
EDIT: If there are any curious devs out there, here's the change:
https://github.com/NathanWolf/CraftBukkit-Bleeding/commit/67617ff88a213bc0e74e05e84368409d362bce68
I haven't submitted a PR .. yet? I wish I could talk to someone about it before I took that step to avoid the insta-smackdown.
-
View User Profile
-
Send Message
Posted May 6, 2014I've been poking around in the CraftBukkit code a bit, trying to see if there's anything "clever" I can do to generally fix my custom item woes. I can definitely see why they are resistant, I didn't realize there was a deep class hierarchy for ItemMeta, just like for Material and Block data.
All of this is going to be a huge headache if Mojang really makes all item types custom. No idea how that's going to work (though I'm guessing we'll still need a "class" framework of some kind for the core behaviors) ... anyway I'm going to stop thinking about it :)
For now I just wanted to share this fun little nugget I found, and have a moment of appreciation for the trials and tribulations of the Bukkit team.
-
View User Profile
-
Send Message
Posted May 5, 2014@xs0lidus
I just noticed the documentation in wands.defaults.yml and spells.defaults.yml is out of date- copying the file is not the right thing to do! Sorry. See here for details:
http://dev.bukkit.org/bukkit-plugins/magic/pages/admin-instructions/
The basic issue is the configs are additive- you don't want to copy the defaults, that will do nothing. If an entry doesn't appear in wands.yml, it will just use the entry in wands.defaults.yml.
If you want to disable a wand, add the following to wands.yml:
For each wand you want to disable. That's all you need.
However, I would ask - why do you want to do this? Players will not have access to any wands unless you've given them "/wand", and I urge you strongly not to do that. :)
-
View User Profile
-
Send Message
Posted May 5, 2014I can't seem to remove default wands that I don't want. After copying wands.default.yml to wands.yml and removing some wands, there are still 71 wands after using /magic load (the default amount of wands). What am I doing wrong?