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 Jan 10, 2015@Hirodetsu
Ah, whoops! Well, if you don't want to update to 4.0 now, then your best bet is to use a slightly older version of the files:
https://github.com/elBukkit/MagicPlugin/tree/871805b74294065374ecd75b6252e2b7fa372aba/src/main/resources/examples/3.9/potter
Or, here is the older version of ParticleEffect:
https://github.com/Slikey/EffectLib/blob/3720d53b9d9a7196cb153e69bd5e86f554bb51b8/src/main/java/de/slikey/effectlib/util/ParticleEffect.java
I think it may be best to update to 4.0 now, if you can. This will make it easier to update to 1.8 when you are ready!
-
View User Profile
-
Send Message
Posted Jan 10, 2015@NathanWolf
also, what are the list of the particle names for Magic 3.8? When I copied the files you gave me, the newer particle names couldn't be recognized by the server so I need to replace the newer names to the older names.
-
View User Profile
-
Send Message
Posted Jan 10, 2015@Hirodetsu
Oops, yeah sorry- that is a spell I made for the PotterWorld server, it's in a separate plugin.
I'll see if I can figure out a way to make that more generic and get it to be part of the built-in configs. The spell as it is is very specific to that server (killing the Dementors we have created there).
-
View User Profile
-
Send Message
Posted Jan 10, 2015Does the patronus spell (Expecto Patronum) only work on your server? I have tried casting it many times and it simply won't do anything.
Here is what it looks like:
patronus:
icon: ink_sack:12
category: elective
class: com.elmakers.mine.bukkit.potterspells.spell.PatronusSpell
worth: 300
cast_on_no_target: true
effects:
cast:
- class: EffectSingle
location: target
effectlib:
class: CubeEffect
particle: enchantment_table
iterations: 5
period: 2
detonate:
- class: EffectVariable
brightness:
'0.5':
- class: EffectSingle
location: target
particle_override: particle
effectlib:
class: BigBangEffect
explosions: 1
sound: wither_hurt
sound_volume: 2
sound_pitch: 0.8
color: 010101
color2: 111111
color3: 222222
fadeColor: 888888
iterations: 1
'5':
- class: EffectSingle
location: target
particle_override: particle
effectlib:
class: BigBangEffect
explosions: 1
sound: wither_hurt
color: FFFFFF
color2: DDDDDD
color3: 888888
fadeColor: 222222
iterations: 1
patronus:
- class: EffectVariable
brightness:
'0.5':
- class: EffectSingle
location: target
particle_override: particle
effectlib:
class: WaveEffect
particle: smoke_large_normal
cloudParticle: smoke_normal
iterations: 8
particlesFront: 5
particlesBack: 5
rows: 10
'5':
- class: EffectSingle
location: target
particle_override: particle
effectlib:
class: WaveEffect
particle: spell
cloudParticle: enchantment_table
iterations: 8
particlesFront: 5
particlesBack: 5
rows: 10
parameters:
target: other
target_type: Wither
range: 32
type: chicken
cooldown: 7000
damage: 100
damage_range: 4
speed: 0.8
float_speed: 0.6
float_interval: 6
float_direction: 0,0.5,0
damage_interval: 10
type: chicken
duration: 1000
bypass_backfire: true
py: ~1.5
costs:
mana: 150
I noticed that in the "Class" part, it lists some kind of url? should I change that to something like FamiliarSpell to make it work?
EDIT: I have also noticed when I did the /magic load command (works wonders btw, thanks) it tells me it doesn't know the particle types "villager_happy" or "water_wake or "smoke_normal" or "redstone". I am in Magic 3.8 and I saw something about the particles being changed in the changelog. what are the proper names for these? and where can I get a list of the particles?
-
View User Profile
-
Send Message
Posted Jan 9, 2015@Hirodetsu
I haven't used MultiCraft in a while, but I thought the "Config Files" tab only dealt with MC/Bukkit configs- not plugins?
If you can directly FTP, that's probably the best way. What you really want to do is download all the files from the link I gave 5 messages or so ago, and then upload them directly to your server's "plugins/Magic" folder.
If you do that correctly, and then do "/magic load" in the console, you should see all the HP spells. You can then try editing the spells.yml and uploading it to the same place. Each time you'll be overwriting the files that are there.
I hope that helps!
-
View User Profile
-
Send Message
Posted Jan 9, 2015@NathanWolf
EDIT: So I use Console when I manage plugins and I use a website called Multicraft. In this site there is a specific tab named Config Files; that is where I actually put in the spells I wanted to disable.there is also a tab named FTP File Access. I use that to view the defaults of the Magic plugin and as my source of spells. I am unsure which tab I should use when I want to add/edit spells (since they both have a spells.yml and a messages.yml If you have experience with multicraft, please tell me what I should do.
-
View User Profile
-
Send Message
Posted Jan 9, 2015@Hirodetsu
This is pretty much right! Two things:
For making a custom spell, you can really just ignore messages.yml. The "name" and "description" parameters can also go right in the spell body.
So for example, putting this in spells.yml will add a new "Mute" spell:
Secondly, you can use "/magic load" to reload config changes on the fly. In my experience, reloading plugins on the fly with a plugin manager can be dangerous, but your milage may vary :)
Good luck!
-
View User Profile
-
Send Message
Posted Jan 9, 2015@NathanWolf
Alright. What you suggested did indeed help me out a lot. I just have one more question:
What are the EXACT instructions to adding a completely custom spell into the game?
Because I think it goes:
1) Create the spell's name and parameters and effects
2) Put that spell into the config file "spells.yml"
3) Put a description of the spell into the "messages.yml" file in config that looks like:
Spells:
NameOfSpell:
This is the description of the spell
4)Reload the plugin with /plm reload Magic
If this is wrong, please correct me. I really want to add my personal flair to this plugin and its saddening that I'm not competent enough to do it XD
-
View User Profile
-
Send Message
Posted Jan 9, 2015@NathanWolf
OMG, thank you so much! :D
-
View User Profile
-
Send Message
Posted Jan 9, 2015@rnoa
Ok, grab the latest dev build, please! (Build 572 or higher).
Everyone else who uses WORLD GUARD: Please note that Magic now REQUIRES WG6 or higher.
Unfortunately, there doesn't seem to be a way I can support both at the same time, so I've chosen to just move forward! Please make sure to update WorldEdit, WorldGuard and (if you are using it) WGCustomFlags.
-
View User Profile
-
Send Message
Posted Jan 9, 2015@The_Lohkdesgds
Nope, but you can use any decent permissions system to do this. Just limit the "Magic.wand.use" permission to specific worlds.
-
View User Profile
-
Send Message
Posted Jan 9, 2015Hey do it have "worlds:" to work only in a world or some worlds? I can't find it, should be cool
-
View User Profile
-
Send Message
Posted Jan 9, 2015@Hirodetsu
Ok, here's what I would suggest! If you want to really go custom, I'd do what we did on PotterWorld and just use completely custom configs. The easiest way to do that is to copy the configs from the potter example directly:
https://github.com/elBukkit/MagicPlugin/tree/master/src/main/resources/examples/potter
Just copy every .yml file in there into your plugins/Magic folder, overwriting what's there.
Now when you run, you should have only the HP spells. You may still want to delete all the engineering spells if they make you really nervous, but it's worth saying that no one except op's and admins have access to those spells.
This makes everything a lot easier- it's a completely custom config, so you don't have to disable any of the default. If you see a spell you don't like, just delete it from spells.yml. If you want to rename it or alter it, just edit it directly. This is all a bit easier to grasp than the normal "override" method of customization.
Now, for renaming, there is something confusing to keep in mind- each spell has 2 names, effectively.
There is the "key" name. This is the main spell key you see in spells.yml, like when it says "ascendio:" - the key is "ascendio".
Players never see these keys - they are only used in commands, like "/wand add ascendio".
The in-game name of a spell is in the "name" property- or often in messages.yml.
This is an important distinction- if you change the "name" property, it's still the same spell. Anyone that has it in a wand or a shop will still have it. If you change the "key", it becomes a completely new spell, and the old spell if effectively gone.
I hope that helps!
-
View User Profile
-
Send Message
Posted Jan 9, 2015@DiscipleGeek
Yeah- I think I realized this at the same time! It uses a particle effect that only works while underwater, and the new ParticleEffect lib complains about that. I've silenced it in the latest build. Thanks!
@rnoa
I'll see what I can do! I'd like to move forward, too, but I'm not sure I want to break backwards compatibility- not everyone's on WG6 yet.
-
View User Profile
-
Send Message
Posted Jan 8, 2015@NathanWolf
I think it's gills that's causing those errors.
-
View User Profile
-
Send Message
Posted Jan 8, 2015@NathanWolf
Please could you add WG6 compatibility? My players are impatiently waiting for the plugin to be enabled again, but I can't until that is done.It works but spams with errors as the ones I posted before. Thank you! :)
-
View User Profile
-
Send Message
Posted Jan 8, 2015@NathanWolf
Sorry. I removed both those spells because they caused problems but I can add them back. I do indeed wish to start with the HP default spells then I wish to modify some of them (when I add an existing spell with, say, a different particle effect, then try to cast it in game, it says its unknown) and then I want to make my own spells. Every time I try to make a spell (I copy paste an existing one I see in the defaults then change it a bit and rename it to something original. Then I put it in the spells.yml and save it but when I cast in game it says its unknown). I need some sort of a rubric or model to go off of when creating custom spells because I have no idea what im doing. I need like a tutorial or something.
-
View User Profile
-
Send Message
Posted Jan 8, 2015@Hirodetsu
I don't see "blessing" or "curse" in your spells.yml - but that's the one you're trying to modify?
The "add_examples" thing is not great to use if you don't want 100's of spells- that you had to go and individually disable like 50 of them is a good sign of that!
That's *adding* the potter configs on top of the default configs, so you have all spells from both. "Blessing", for instance, is a default spell not an HP spell. And there is already a "Curse" spell in the default configs.
Maybe let me know what you're trying to do - do you want to start with the HP configs and modify from there? Or are you wanting to make a completely custom config?
-
View User Profile
-
Send Message
Posted Jan 8, 2015@NathanWolf
I have a server version 1.7.9, and have Magic version 3.8, and I have the example added in the configs:
add_examples:
- potter
And I tried to modify one of the Potter example's spells (Blessing) and turn it into a different spell by changing its effects and particle and naming it Curse in the spells.yml config, and when I try to use the new spell I made with /cast curse, it says it is unknown. also the Patronus spell does not work and I have no clue why. please give me a tutorial or something on how to make spells and wands, the Patronus problem is a lower priority.
HERE IS MY WHOLE SPELLS.YML CONFIG FILE, there might be a problem in it but Im not too sure:
shell:
enabled: false
shields:
enabled: false
disc:
enabled: false
superdisc:
enabled: false
superring:
enabled: false
supershell:
enabled: false
superdome:
enabled: false
frost:
enabled: false
paint:
enabled: false
fill:
enabled: false
place:
enabled: false
stalactite:
enabled: false
superblob:
enabled: false
superpyramid:
enabled: false
box:
enabled: false
superbox:
enabled: false
supercube:
enabled: false
earthquake:
enabled: false
superblast:
enabled: false
superconvert:
enabled: false
supercollapse:
enabled: false
commit:
enabled: false
breach:
enabled: false
sphere:
enabled: false
blob:
enabled: false
pyramid:
enabled: false
stream:
enabled: false
earth:
enabled: false
iterate:
enabled: false
superiterate:
enabled: false
imperiomaxima:
icon: coal:1
hidden: true
category: staff
class: ForceSpell
pvp_restricted: true
cast_on_no_target: true
worth: 500
effects:
cast:
- class: EffectSingle
sound: portal_trigger
- class: EffectTrail
particle: spell
length: 16
parameters:
target_type: Player
target: other_entity
range: 32
item_force: 1
entity_force: 1
target_breakables: 1
bypass_backfire: true
check_protection: true
costs:
mana: 200
detonate:
- class: EffectVariable
brightness:
'0.5':
- class: EffectSingle
location: target
particle_override: particle
effectlib:
class: BigBangEffect
explosions: 1
sound: wither_hurt
sound_volume: 2
sound_pitch: 0.8
color: 010101
color2: 111111
color3: 222222
fadeColor: 888888
iterations: 1
'5':
- class: EffectSingle
location: target
particle_override: particle
effectlib:
class: BigBangEffect
explosions: 1
sound: wither_hurt
color: FFFFFF
color2: DDDDDD
color3: 888888
fadeColor: 222222
iterations: 1
'5':
- class: EffectSingle
location: target
particle_override: particle
effectlib:
class: WaveEffect
particle: spell
cloudParticle: enchantment_table
iterations: 8
particlesFront: 5
particlesBack: 5
rows: 10
parameters:
target: other
target_type: Entity
range: 32
type: chicken
cooldown: 5000
damage: 100
damage_range: 4
speed: 0.8
float_speed: 0.6
float_interval: 6
float_direction: 0,0.5,0
damage_interval: 10
type: chicken
duration: 1000
bypass_backfire: true
py: ~1.5
costs:
mana: 150
morsmordremaxima:
icon: skull_item:4
category: dark
class: CommandSpell
worth: 20
effects:
cast:
- class: EffectSingle
sound: wither_hurt
- class: EffectTrail
particle: flame
- class: EffectRing
location: target
firework: creeper
radius: 12
target_offset: 0,16,0
color: '00FF00'
color2: '88FF88'
parameters:
target: any
allow_max_range: true
range: 16
cooldown: 60000
transparent: apparate
op: true
commands:
- e broadcast @pd cast §aMorsmordre Maxima, and 3 Dementors appeared!
- moremobs wraith @tworld,@tx,@ty,@tz
- moremobs wraith @tworld,@tx,@ty,@tz
- moremobs wraith @tworld,@tx,@ty,@tz
costs:
mana: 100
mayday:
icon: firework
category: charms
class: CommandSpell
worth: 20
effects:
cast:
- class: EffectSingle
sound: enderdragon_growl
- class: EffectTrail
particle: spell
- class: EffectRing
location: target
firework: ball_large
radius: 12
target_offset: 0,16,0
parameters:
target: any
allow_max_range: true
range: 16
cooldown: 60000
transparent: apparate
op: true
commands:
- e broadcast @pd cast §aMayday!
costs:
mana: 55
maydaymaxima:
icon: firework
category: charms
class: CommandSpell
worth: 20
effects:
cast:
- class: EffectSingle
sound: enderdragon_growl
- class: EffectTrail
particle: spell
- class: EffectRing
location: target
firework: ball_large
radius: 12
target_offset: 0,16,0
parameters:
target: any
allow_max_range: true
range: 16
cooldown: 60000
transparent: apparate
op: true
commands:
- broadcast @pd cast §aMayday Maxima, and two Giants appear!
- moremobs Giant
- moremobs Giant
costs:
mana: 100
avadamaxima:
icon: ink_sack:10
category: staff
class: CommandSpell
pvp_restricted: true
worth: 1000
cast_on_no_target: true
hidden: true
effects:
cast:
- class: EffectSingle
sound: ambience_thunder
location: target
effectlib:
class: AtomEffect
iterations: 32
particleNucleus: slime
- class: EffectSingle
location: origin
effectlib:
class: ConeEffect
iterations: 15
particle: slime
lengthGrow: 0.4
- class: EffectSingle
location: target
effectlib:
class: SmokeEffect
iterations: 50
parameters:
commands:
- tempban @t 3m Avada Kadavra
- e broadcast §aAvada Kadavra Maxima §c@t!
target_type: Player
target: other
target_breakables: 1
range: 16
cooldown: 30000
bypass_backfire: true
check_protection: true
costs:
mana: 300
morsmordre:
icon: skull_item:4
category: dark
class: CommandSpell
worth: 20
effects:
cast:
- class: EffectSingle
sound: wither_hurt
- class: EffectTrail
particle: flame
- class: EffectRing
location: target
firework: creeper
radius: 12
target_offset: 0,16,0
color: '00FF00'
color2: '88FF88'
parameters:
target: any
allow_max_range: true
range: 16
cooldown: 60000
transparent: apparate
op: true
commands:
- e broadcast @pd cast §aMorsmordre!
costs:
mana: 55
silencio:
icon: ink_sack:3
category: staff
class: CommandSpell
hidden: true
worth: 500
effects:
cast:
- class: EffectSingle
sound: shoot_arrow
sound_volume: 0.4
sound_pitch: 0.1
location: origin
effectlib:
class: ConeEffect
iterations: 15
particle: barrier
lengthGrow: 0.4
- class: EffectSingle
location: target
effectlib:
class: IconEffect
iterations: 15
particle: barrier
parameters:
commands:
- mute @t 3m Silencio
target_type: Player
target: other
range: 16
target_breakables: 1
bypass_backfire: true
cooldown: 1000
check_protection: true
silenciomaxima:
icon: ink_sack:3
category: staff
class: CommandSpell
hidden: true
worth: 500
effects:
cast:
- class: EffectSingle
sound: shoot_arrow
sound_volume: 0.4
sound_pitch: 0.1
location: origin
effectlib:
class: ConeEffect
iterations: 15
particle: barrier
lengthGrow: 0.4
- class: EffectSingle
location: target
effectlib:
offset: 0,4,0
class: HelixEffect
iterations: 1
particle: barrier
parameters:
range: 32
allow_max_range: true
radius: 16
commands:
- mute @a 3m Silencio Maxima
target: block
bypass_backfire: true
check_protection: true
silenciototalus:
icon: ink_sack:3
category: staff
class: CommandSpell
hidden: true
worth: 500
effects:
cast:
- class: EffectSingle
sound: shoot_arrow
sound_volume: 0.4
sound_pitch: 0.1
location: origin
effectlib:
offset: 0,5,0
class: HelixEffect
iterations: 1
particle: barrier
parameters:
commands:
- mute @a 30s
- e broadcast §dSILENCIO TOTALUS!
target: none
bypass_backfire: true
check_protection: true
amplify:
icon: ink_sack:3
category: staff
class: CommandSpell
hidden: true
worth: 500
effects:
cast:
- class: EffectSingle
sound: shoot_arrow
sound_volume: 0.4
sound_pitch: 0.1
location: origin
effectlib:
class: AtomEffect
particleNucleus: witch_magic
particleOrbital: magic_critical
iterations: 20
parameters:
commands:
- unmute @t
target: none
bypass_backfire: true
check_protection: true
amplifytotalus:
icon: ink_sack:3
category: staff
class: CommandSpell
hidden: true
worth: 500
effects:
cast:
- class: EffectSingle
sound: shoot_arrow
sound_volume: 0.4
sound_pitch: 0.1
location: origin
effectlib:
class: AtomEffect
particleNucleus: witch_magic
particleOrbital: magic_critical
iterations: 20
parameters:
commands:
- unmute @a
- say §dAMPLIFY TOTALUS!
target: none
bypass_backfire: true
check_protection: true
expulsion:
icon: ink_sack:3
category: staff
class: CommandSpell
hidden: true
worth: 500
effects:
cast:
- class: EffectSingle
sound: shoot_arrow
sound_volume: 0.4
sound_pitch: 0.1
location: origin
effectlib:
class: DnaEffect
iterations: 24
parameters:
commands:
- nick @t @t_of_azkaBAN
- e broadcast @td was sent to azkaBAN by @pd!
- spawn @t
target_type: Player
target: other
range: 16
target_breakables: 1
bypass_backfire: true
cooldown: 1000
check_protection: true
grenade:
enabled: false
wither:
enabled: false
neutron:
enabled: false
meteor:
enabled: false
-
View User Profile
-
Send Message
Posted Jan 7, 2015@t2yacool
Ha, get to sleep! :)
And thank you!
The 4.0 version may change quite a bit before release, I'm sort of calling it a do-over. I'll do my best to make it a painless transition though.