I have some not-great news, tl;dr I am not sure when or if Magic is going to support 1.20.5
Development of this plugin has been slowed for a while now, basically reduced to maintenance and updates for new MC versions. I haven't had the time nor energy to do much else with it.
Unfortunately, 1.20.5 has several major internal changes, most particularly the treatment of NBT data, which has caused major issues for updating Magic. I've spent quite a few hours on it already but there's no real clean end or fix in sight.
So for now I am afraid I will have to say the plugin will not be updated.
This may change in the future, but I can't make any guarantees. If Magic does get updated, it will be via one of two methods:
I patch up all the uses of NBT and let the plugin hobble forward full of band-aids.
I re-work Magic internally to make a version that doesn't rely on MC internals, and only uses the Spigot API
Approach #2 is one I've considered doing and even started work on several times in the past. It would be an ideal solution for me since it would make the plugin future-proof, no longer requiring updates for each new version of Spigot/Minecraft.
However, it is a lot of work and would come with several trade-offs. Probably many systems would not make the cut, such as custom mob AI and schematic loading.
Additionally, it's very unlikely that such a plugin would be backwards-compatible with existing Magic items. I would make sure that configs work and are forward-compatible (minus missing systems like mob AI), but the plugin would be unable to read NBT data saved by previous versions of the plugin. Meaning any server that wanted to move to this new version would basically have to reset all Magic items.
I know none of this is good news, but I'm hoping you understand where I am at and that I just don't have time to dedicate to the now-monumental task of keeping this plugin updated.
It's been a joy working for and with many of you over the years, and I hope you all continue to thrive, with or without Magic.
- NathanWolf
Server Compatibility
Please make sure you download the correct version for your server:
Magic is a plugin that adds powerful magic wands, items, mobs and more to your server. With over 200 spells, a variety of wand templates, and complete customization, you can use Magic to craft a unique experience for your server.
The default experience is an "RPG lite" extension to survival. Other examples are included, such as a Harry Potter setup, Star Wars, GTA-Style guns and cars, elemental bending and more.
Magic is infinitely customizable, allowing you to script your own spells, actions, items, mobs and anything else you see done in the included example configurations.
Live Demo
If you'd like to try out Magic, please go to our development server:
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.
Hey, btw, not sure I told you, but your numeric-Mana display idea is in the latest version (as an option- the bar is still the default). Thanks for the suggestion!
... poring back over comment history looking for some stuff I missed :P
Version 2.9.5 will have Factions integration, with the option to respect Factions build permissions. Factions does not affect PVP-blocked spells, though (I'm not sure it should? Maybe a safe zone check?)
So what I did was copy the entire spell from defaults and added the cost along with all the properties. This seems to work. I will try what you said and just add the cost again and see if maybe last time I did something wrong. What I did notice is if I use a wand that was created prior to the change it will not work anymore. So I have to recreate a new wand. Once I finish testing/editing I will send you my configuration which I use on a server I consider playing on impossible difficulty :).
I just tried this and put my customizations in spells.yml and it made all my spells stop working. What I did at first was just attempted to add ROTTEN_FLESH:5 to the costs of fireball. It showed up on the wand that I need 5 rotten flesh but when I casted the wand nothing happened. So then I added every spell from spell.default.yml to spells.yml with all their properties and customized fireball again to have a cost of 5 rotten flesh. But then none of the spells on the wands worked. :(
I do not (perhaps someone else does). I do plan on adding a variety of configuration options, including reagent-based spells, for 3.0, but it's pretty low on the priority list.
If anyone does have this, I'd also be interested in having it to include with the plugin!
Unfortunately, with over 100 spells, it's going to be a bit of task. (The reagents would go on spells, not on wands!). It's also going to be the kind of thing you may want to tweak yourself- I mean I can pick some stuff, but you may not like what I pick, you know?
Anyway, this should be pretty easy to set up- in the "costs" list for each spell, just put a material name instead, where it says "xp". The costs are a list, so you can have more than one type of reagent required for a spell.
I also need to provide reference for the material names- they come from this Bukkit enum:
You know, I thought of something- for fireball, icbm and wither, I think you could effectively accomplish what you want to do (I still don't have a solution for tnt, though)
Basically turn off the explosion damage, and apply direct entity damage to an area of effect around where the projectile hits (like the Neutron Bomb spell does)
The reason it has both harm and heal is that harm will heal the undead- having both seems to work ok though and damages all mob types.
I haven't had a chance to test this, but it ought to work.
Hey, I finished my server! It's mostly based around ranking up to get new spells. The IP is: play.distinctcraft.com . You could come check it out sometime if you want. Could I get it added to the servers using magic list?
Hrm... I'm testing this myself, and there are a few bugs. I'll fix them up and let you know. Once working, I think you'll want to do this in spells.yml:
That is assuming you're only using spells in this arena. I was just thinking your spectators may get killed if someone has the shrink spell, or some other direct damage spell that could target through the glass, so disabling that for all spells is probably a good idea.
However, with all of that turned off I can still ascend/descend through the glass. Trying to figure out why that part isn't working, I'll have a patch for it soon.
UPDATE: This is fixed for 2.9.4, and in the current dev build. There were a couple problems with ascending and some complexities with the ledge detection that could let you squeeze through a corner. I've tested with a stained glass box, and I'm unable to get in (or out) of it with the settings I provided above.
Neither of those fixes worked, for now I have it limited to 10 blocks because you can't reach it with that range, but it's a bigger nerf than I wanted.
Of course you can come play, my server is a little confusing at first though. To get out of my spawn you have to read the rules on my website. The arena costs 10 emeralds to play and you have to have an empty inventory.. uh, basically run through the random teleporter, make a chest and a sign, place the chest put a sign above it with [vault] on the top line and stick your emeralds and stuff in it, then you can /ma j
There is currently no Factions support. It's been on my TODO list for a while, but frankly their API is obscure and (from what I can tell on the forums) broken. I'm hoping to have it by 3.0.
There is no way (in Bukkit) to disable block damage from a tnt or fireball explosion. (Unless you disable damage completely, but then it's kind of pointless). I may try and do something "clever" like force my own explosion when the tnt detonates, but this is tricky and honestly not a high priority for me.
You'll want to disable "frag", "grenade", "fireball" and "icbm" if you want to be totally safe.
The "boom" spell is safe by default (break_blocks: false), and you can configure "kaboom" to not break blocks the same way that boom does, just add this to spells.yml:
kaboom:
parameters:
break_blocks: false
EDIT: I forgot about "nuke", you'll want to give it the same treatment as kaboom :)
Ah okay I got it. I'm running the latest version. Thanks!
Also, is disabling explosion block damage a feature you're planning on adding? I want people to be able to use regular player-crafted TNT for raiding, but I don't want them using the "free" TNT from spells for raiding; just for player damage. I suppose I could disable the explosion-based spells, but I think they're really cool.
Also, is claimed land from the Factions plugin included in the worldguard region manager setting? Or does that only apply to worldguarded regions?
EDIT: Oh and one more thing, if someone kills another player, are they able to pick up/use the wand of the person that they killed? I would test it myself, but no-one is online to test it with me right now haha. (Sorry for all the questions!)
That config format is out of date. If you are running post-2.9.0, you'll have to update. Basically just get rid of the "general:" root node and make config.yml flat. See defaults/config.defaults.yml for the right structure.
Up until 3.0, you really have to pay attention to the notes in builds when you upgrade- I'm hoping the config format is pretty settled down now, though. 2.9.0 was a big change for custom configs.
As always, the full migration notes can be found here:
@timoteo2000
Hey, btw, not sure I told you, but your numeric-Mana display idea is in the latest version (as an option- the bar is still the default). Thanks for the suggestion!
... poring back over comment history looking for some stuff I missed :P
Anybody know how to search devbukkit comments?
Lots of people had asked for that Factions integration, I would love to ping them all.
There's also a great list of shop plugins I really wanted to check out for potential integration, buried in here somewhere.
If not, well- open tickets! :)
@UrNowKoed
@lathame
Version 2.9.5 will have Factions integration, with the option to respect Factions build permissions. Factions does not affect PVP-blocked spells, though (I'm not sure it should? Maybe a safe zone check?)
@Silversbane
Oh good, thanks!
The thing about the wand sounds weird, too - wands and spells are not actually very related like that. But I'll check it out!
@NathanWolf
So what I did was copy the entire spell from defaults and added the cost along with all the properties. This seems to work. I will try what you said and just add the cost again and see if maybe last time I did something wrong. What I did notice is if I use a wand that was created prior to the change it will not work anymore. So I have to recreate a new wand. Once I finish testing/editing I will send you my configuration which I use on a server I consider playing on impossible difficulty :).
@Silversbane
Hrm :/ well to be honest , I haven't tested that in a while! I will be travelling today, but will test (and fix if necessary) as soon as I can.
You should not have to copy everything over, just the spell key and costs nodes should be enough. Everything else will carry over from the defaults.
@NathanWolf
I just tried this and put my customizations in spells.yml and it made all my spells stop working. What I did at first was just attempted to add ROTTEN_FLESH:5 to the costs of fireball. It showed up on the wand that I need 5 rotten flesh but when I casted the wand nothing happened. So then I added every spell from spell.default.yml to spells.yml with all their properties and customized fireball again to have a cost of 5 rotten flesh. But then none of the spells on the wands worked. :(
@Silversbane
I do not (perhaps someone else does). I do plan on adding a variety of configuration options, including reagent-based spells, for 3.0, but it's pretty low on the priority list.
If anyone does have this, I'd also be interested in having it to include with the plugin!
Unfortunately, with over 100 spells, it's going to be a bit of task. (The reagents would go on spells, not on wands!). It's also going to be the kind of thing you may want to tweak yourself- I mean I can pick some stuff, but you may not like what I pick, you know?
Anyway, this should be pretty easy to set up- in the "costs" list for each spell, just put a material name instead, where it says "xp". The costs are a list, so you can have more than one type of reagent required for a spell.
I also need to provide reference for the material names- they come from this Bukkit enum:
https://raw.github.com/Bukkit/Bukkit/master/src/main/java/org/bukkit/Material.java
Does anyone have a saved configuration file to change all default wants to use reagents? Thank you
@UrNowKoed
You know, I thought of something- for fireball, icbm and wither, I think you could effectively accomplish what you want to do (I still don't have a solution for tnt, though)
Something like this:
Basically turn off the explosion damage, and apply direct entity damage to an area of effect around where the projectile hits (like the Neutron Bomb spell does)
The reason it has both harm and heal is that harm will heal the undead- having both seems to work ok though and damages all mob types.
I haven't had a chance to test this, but it ought to work.
Hey, I finished my server! It's mostly based around ranking up to get new spells. The IP is: play.distinctcraft.com . You could come check it out sometime if you want. Could I get it added to the servers using magic list?
@diannetea
Hrm... I'm testing this myself, and there are a few bugs. I'll fix them up and let you know. Once working, I think you'll want to do this in spells.yml:
And in materials.yml do
That is assuming you're only using spells in this arena. I was just thinking your spectators may get killed if someone has the shrink spell, or some other direct damage spell that could target through the glass, so disabling that for all spells is probably a good idea.
However, with all of that turned off I can still ascend/descend through the glass. Trying to figure out why that part isn't working, I'll have a patch for it soon.
UPDATE: This is fixed for 2.9.4, and in the current dev build. There were a couple problems with ascending and some complexities with the ledge detection that could let you squeeze through a corner. I've tested with a stained glass box, and I'm unable to get in (or out) of it with the settings I provided above.
@NathanWolf
Neither of those fixes worked, for now I have it limited to 10 blocks because you can't reach it with that range, but it's a bigger nerf than I wanted.
Of course you can come play, my server is a little confusing at first though. To get out of my spawn you have to read the rules on my website. The arena costs 10 emeralds to play and you have to have an empty inventory.. uh, basically run through the random teleporter, make a chest and a sign, place the chest put a sign above it with [vault] on the top line and stick your emeralds and stuff in it, then you can /ma j
@ghosttractor
Most unhelpful bug report evar?? XD
@NathanWolf
i found a bug!!!
@NathanWolf
I understand, I see a lot of plugin devs talk about how difficult it is to work with factions.
Alright, sounds good, thank you again!
@UrNowKoed
There is currently no Factions support. It's been on my TODO list for a while, but frankly their API is obscure and (from what I can tell on the forums) broken. I'm hoping to have it by 3.0.
There is no way (in Bukkit) to disable block damage from a tnt or fireball explosion. (Unless you disable damage completely, but then it's kind of pointless). I may try and do something "clever" like force my own explosion when the tnt detonates, but this is tricky and honestly not a high priority for me.
You'll want to disable "frag", "grenade", "fireball" and "icbm" if you want to be totally safe.
The "boom" spell is safe by default (break_blocks: false), and you can configure "kaboom" to not break blocks the same way that boom does, just add this to spells.yml:
EDIT: I forgot about "nuke", you'll want to give it the same treatment as kaboom :)
@NathanWolf
Ah okay I got it. I'm running the latest version. Thanks!
Also, is disabling explosion block damage a feature you're planning on adding? I want people to be able to use regular player-crafted TNT for raiding, but I don't want them using the "free" TNT from spells for raiding; just for player damage. I suppose I could disable the explosion-based spells, but I think they're really cool.
Also, is claimed land from the Factions plugin included in the worldguard region manager setting? Or does that only apply to worldguarded regions?
EDIT: Oh and one more thing, if someone kills another player, are they able to pick up/use the wand of the person that they killed? I would test it myself, but no-one is online to test it with me right now haha. (Sorry for all the questions!)
@UrNowKoed
What version are you running?
That config format is out of date. If you are running post-2.9.0, you'll have to update. Basically just get rid of the "general:" root node and make config.yml flat. See defaults/config.defaults.yml for the right structure.
Up until 3.0, you really have to pay attention to the notes in builds when you upgrade- I'm hoping the config format is pretty settled down now, though. 2.9.0 was a big change for custom configs.
As always, the full migration notes can be found here:
https://raw.github.com/elBukkit/MagicPlugin/master/MIGRATION.md
EDIT: and thank you for the compliment! :)
@ghosttractor
Wands don't work in creative mode. Like, at all. Recent versions won't even let you pick up a wand while in creative mode.