Mechanics added:
-
funnel:
example:
Code (Text):
- funnel{sync=true;d=9999999;b="%rng_random%";is="netherite_ingot[enchantment_glint_override=true]";ot=[ - m{m=hello} @self ];oat=tick;oac=10} @self
Generates a floating item that floating around the player.
All parameters inherit from MythicMobs’ original
Aura skill.
Parameters and their default values:
- itemString (is) = stone
Floating item in vanilla Minecraft format, e.g. apple[unbreakable={}]
- itemId (id) = stone
MythicMobs item ID of the floating item.
Vanilla format is parsed first; if parsing fails, this item will be used instead.
- fixTarget (ft) = true
Whether to keep the current target when it moves too far away or dies (do not retarget)
- searchRadius (sr) = 15
Radius used to search for a valid target
- discardRadius (dr) = 15
Distance at which the current target is discarded and follow is canceled
- moveToTarget (mtt) = true
Whether to move near the target after one is found
- onActiveTick (oat) = null
Skill executed while a target is active
- onActiveCooldown (oac) = 0
Cooldown for the active-state skill (ticks)
- offActiveTick (fat) = null
Skill executed while in idle (no target) state
- offActiveCooldown (fac) = 0
Cooldown for the idle-state skill (ticks)
- targetPlayers (tp) = false
Whether players can be targeted
- targetNonMythics (tnm) = false
Whether non-Mythic mobs can be targeted
- targetOwner (to) = false
Whether owner can be targeted
- keepLocationAfterMoving (klam) = false
Whether the funnel stays at the first location it reached when it targeted an entity until the target is lost
- distanceFromTarget (dft) = 5
Distance from target after the funnel moves to the target
-
setPose, format: setpose{p=SITTING}
-
setTicksLived(stl): format: stl{t=1}
ticks must >= 1
-
savePDC, format:
Code (Text):
savePDC{slot=HAND;data="data";n="mmaddon:pdc"}
-
removePDC, format:
Code (Text):
removePDC{slot=HAND;n="mmaddon:pdc"}
slot:
EquipmentSlot or integer(which corresponding to the inventory slot, only work for player)
data/d: String to be saved to item
namespacedkey/n: Self explanatory
-
parabolic, format: parabolic{g=0.5;tyo=5;oh=....}
gravity/g: gravity, same as projectile mechanic
tyo: topYOffset, represents the height difference between the apex of the parabola and the higher one of the caster or the target.
Note: parabolic is also a projectile mechanic, so you can use all parameters from it(like onHit, hitNonPlayer etc.).
-
tempAttributeModifier(tam,tempam), format is the same with
AttributeModifier mechanic, the modifier expires after player log out.
Conditions added:
-
origindistance/od, format: same as distance condition, but this checks the distance from origin to target
-
sit/
sitting/
issitting, format: sit{s=true/false}
-
pose/
haspose, format: pose{p=SITTING}
-
sameteam, format: sameteam
-
team, format: team{t=teamName}
-
input, format: input{forward=true;backward=false}, undefined inputs will always get passed(like input{forward=true;backward=false} will only check if the player pressed the forward key and didn't press the backward key, no matter other keys are pressed or not), entities other than player will return false
Triggers added:
-
onKill, the trigger is the victim, for example: - m{m="I killed <trigger.name>"}
@server ~onKill
-
onRealBlockBreak, triggers when a player broke a block, and the BlockBreakEvent is not cancelled, requires MythicCrucible
-
onRegainHealth(onHeal), cancellable, triggers when entity regains health, with two skill variables: amount, reason(<skill.var.amount> and <skill.var.reason>). For reasons, see EntityRegainHealthEvent.RegainReason
-
onEffect(onPotionEffect, onEntityPotionEffect), cancellable, triggers when entity's potion effects changed(instant potions do effects directly, not changing effects), see EntityPotionEffectEvent
Code (Text):
- variables:
- action(<skill.var.action>, below share the same format): EntityPotionEffectEvent.Action
- cause: EntityPotionEffectEvent.Cause
- type: modified type, if old effect exists, return the old type, instead return new type.
- old:
- Old potion effect, a Map variable, you can get its potion attributes with format like this <skill.var.old.type>, if old potion effect doesn't exist, all the variables below will return null
- variables:
- type: potion type
- amplifier: amplifier
- ambient: is the effect an ambient effect
- icon: does the effect has icon showed in HUD
- particles: does the effect shows particles
- new: same as old
-
onEffectTick(onEntityEffectTick), cancellable, triggers when a potion effect ticks on entity, including instant ones, see EntityEffectTickEvent
Code (Text):
- variables:
- type: potion type
- amplifier: amplifier
-
onInput,
not cancellable, triggers when a player or the passenger of a vehicle (also should be a player) press or release one of the keys below: forward, backward, left, right, sneak, jump, sprint. Available skill variables:
- input string(<skill.var.input>, return "none" when all keys are released, format: "forward,backward......")
- forward(<skill.var.forward>, return true or false)
- backward
- etc.
requires MythicCrucible
Options added:
-
CancelInteract: Cancel the interaction with the entity, better than cancelevent mechanic
-
RemoveVanillaAttributes: Set the armor attribute to 0, and remove all other attribute modifiers
Targeters added:
-
Team{t=teamname;st=false}
t: team/t, the team to be selected
st: sameteam/sameTeam/st, whether to target the entities in the team if the caster is in the same team, false by default
-
sourceOwner{depth=1000}
depth: depth/d, the searching depth, by default infinity
this targeter lets you get the owner of the owner of the owner...until the searching depth
Placeholder added:
- caster/target.eyeheight
very self-explanatory
- caster/target.height
very self-explanatory
- caster/target.tickslived
Gets the ticks that entity lived, also known as age
- caster/target.pdc.slot$namespacedKey
slot, namespacedKey: see above
$ is used for splitting
Example:
Code (Text):
<caster.pdc.hand$mmaddon:pdc>
returns blablabla
- caster.relative.(o/a)(x/y/z).n,n,n
For example:
- caster.relative.ox.2,0,0
- caster.relative.ax.2,1,1
This is used to return coordinate-related values based on a relative coordinate system.
In this system, the player’s current position is treated as the coordinate origin, and the direction the player is facing defines the positive Z-axis.
- The X-axis represents left and right.
- The Y-axis represents up and down.
- The Z-axis represents forward and backward.
- Expressions starting with o return the offset (difference) of the specified axis between the relative position and the player. For example,
caster.relative.ox.2,0,0 returns the difference in the X-axis between the player's current position and the position that is 2 blocks to the player's left.
- Expressions starting with a return the absolute coordinate value of the specified axis at the relative position. For example,
caster.relative.ax.2,0,0 returns the absolute X coordinate of the position that is 2 blocks to the player's left.