Plugin support
MythicMobs
With MythicMobs installed, RP Engine adds three skill mechanics so a MythicMobs mob can wear one of your models and animate from its skills: a boss that wears its model when it spawns, roars when it is hit, and drops it when it dies.
Skills:
- rpmodel{model=mypack:golem} @self ~onSpawn
- rpanimate{animation=roar} @self ~onDamaged
- rpunmodel @self ~onDeathThere is nothing to enable.
You can also go the other way: RP Engine's own custom mobs run MythicMobs' skill lines without MythicMobs installed, so a mob can move across whole. See Porting your MythicMobs mobs.
The mechanics#
| Mechanic | What it does |
|---|---|
rpmodel{model=…;scale=…} | Put the model on. scale defaults to 1 |
rpanimate{animation=…} | Play one by name. animation=stop stops |
rpunmodel | Take it off |
Short forms work too: m (or id) for model, s for scale, a (or
anim) for animation.
All three act on their target, so @self dresses the caster and any other
targeter dresses whatever it names. That is how a summoner can dress what it
summons.
Use ~onSpawn#
A model stays on for as long as the entity exists. Putting it on in
~onSpawn means every mob of that type wears it, including ones that come
back after a chunk reload.
Animations come from the skill tree#
RP Engine's own animation triggers do not fire for a
model worn by a mob. Use rpanimate from whatever trigger suits:
~onDamaged, ~onAttack, a timer, a health threshold.
- rpanimate{animation=enrage} @self ~onDamaged =50%The mob stays MythicMobs'#
RP Engine changes what it looks like and nothing else. Its health, damage, AI, drops and skills are all still MythicMobs'. See Putting a model on a mob.
Porting your MythicMobs mobs#
RP Engine's custom mobs read MythicMobs' skill lines, drop lines, drop tables and spawners, so a mob can be moved across and MythicMobs (and ModelEngine) taken off the server. Needs RP Engine 0.2.53 or newer.
- Write the mob in
entities/in RP Engine's shape (below), withmodel:naming its Blockbench file. - Copy its
Skills:block in as it is. - Copy its metaskills into
skills/, its drop tables intodrop-tables/and its spawners intospawners/. Those files keep MythicMobs' own key names. /rp reloadand read the warnings: each line that can't run is named, with its file and place, and only that line is skipped.
# MythicMobs: Mobs/golem.yml
GolemKing:
Type: IRON_GOLEM
Display: "&6Golem King"
Health: 300
Damage: 12
Options:
MovementSpeed: 0.2
PreventOtherDrops: true
Skills:
- model{mid=golem} @self ~onSpawn
- skill{s=GroundSlam} @self ~onTimer:120
- state{mid=golem;s=roar} @self ~onDamaged =50%
Drops:
- diamond 1to3 0.5# RP Engine: entities/golem.yml
golem_king:
type: IRON_GOLEM
model: bosses:golem # replaces the model{mid=...} line
name: "&6Golem King"
health: 300
damage: 12
speed: 0.8 # a multiple of the golem's own speed, not a copied number
skills:
- skill{s=GroundSlam} @self ~onTimer:120
- animate{a=roar} @self ~onDamaged =50%
drops:
- minecraft:diamond 1to3 0.5What ports unchanged#
- Skill lines, as written: mechanics,
@targeters,~triggers,?conditions, health parts and chances, with MythicMobs' names and short names. The Skills page lists every one that runs. - Metaskills, in their own file shape:
Cooldown,Conditions,TargetConditions,TriggerConditions,Skills. - Drop lines (
diamond 1to3 0.5,exp 10to20,droptable name,command{c=...}), drop tables withTotalItems,MinItems,MaxItemsand conditions, and spawners with their own key spellings. See Drops and spawners. - Phases:
=50%fires once per mob, as in MythicMobs.
What to change#
The mob file around the skills is RP Engine's, not MythicMobs'
(type, model, health, not Type, Display, Options):
| MythicMobs | RP Engine |
|---|---|
Type, Display, Health, Damage, Armor | type, name, health, damage, armor |
Template: | extends: (template: and Template: read the same) |
Equipment: | equipment: (the list form copies across) |
DamageModifiers: | damage-modifiers: (the list form copies across) |
Faction: | faction: |
Options.Despawn | despawn: |
Options.Invincible, Collidable, NoGravity | invincible:, collidable:, gravity: |
Options.PreventLeashing, PreventRenaming | prevent: [leash, rename] |
Options.MovementSpeed, FollowRange, KnockbackResistance | speed: (a multiple of the type's own), follow-range:, knockback-resistance: |
Level, LevelModifiers | level:, per-level: (LevelModifiers reads the same) |
KillMessages: | kill-messages: |
Mount: | mount: |
BossBar: | boss-bar: |
Drops:, DropTables/ | drops: (the line form copies across), drop-tables/ |
Spawners/ | spawners/ |
Modules.ThreatTable | threat-table: true (the MythicMobs spelling reads the same) |
Variables: | variables: |
Skills: | skills: (Skills: reads the same) |
- Models are
model:, so drop ModelEngine'smodel{mid=...}line.state{mid=...;s=attack}runs asanimate, and RP Engine playsidle,walk,attackand the rest by itself fromanimations:, so moststatelines can go. - Draw the model facing North in Blockbench, as for ModelEngine, or set
turn:. drops:replaces the vanilla loot, soPreventOtherDropsis never needed.=50%is remembered while the server runs, so a restart lets a phase fire once more.
What isn't supported#
Each is a load warning naming the line:
- variable maths and scopes other than the mob's (
variableMath,skill.andglobal.variables); switchandforeach;- custom AI goals (
AIGoalSelectors): picktypefor behaviour, and move it with the mechanics; disguiseandonHear;- composite conditions (
a && b); - riding a mob as a player (
mountmodel); ImmunityTablesandTrades;command{asop=true}run as an op player.
Mechanics, conditions and targeters a MythicMobs add-on gave you can be written as a plugin of your own against the Plugin API.