Skip to content

[Feature] Add MythicMobs ModelPlayerSkin mechanic support #367

@masha228as

Description

@masha228as

🐞 Feature Description

Please add support for the MythicMobs modelplayerskin mechanic from Model Engine 4:

https://git.mythiccraft.io/mythiccraft/model-engine-4/-/wikis/Skills/Mechanics/ModelPlayerSkin

This mechanic is very useful for models that need to display a real player's skin on specific player-limb bones.

The main use case is creating player-like models, cosmetics, NPC-like effects, custom skill visuals, and animated body overlays where some model bones should use the target player's skin texture.

Currently, without modelplayerskin support, it is difficult to properly recreate Model Engine setups that depend on player skin bones. Simply renaming or replacing bones is not enough in many cases, because the model needs to dynamically apply the correct skin texture to selected limbs during MythicMobs skills.

Expected behavior:

  • BetterModel should recognize the modelplayerskin MythicMobs mechanic.

  • It should be possible to apply the target player's skin to all player-limb bones.

  • It should be possible to apply the skin only to specific limbs/bones.

  • It should support the same or very similar attributes as Model Engine:

    • modelid / mid / model
    • limbs / p / pbone
    • uuid
    • username / user / name
    • skin
    • slim
  • It should work with MythicMobs targeters such as @trigger, @self, etc.

  • The mechanic should be usable in normal MythicMobs skill configs.

This would make migration from Model Engine to BetterModel much easier for servers that use player-skin-based models and animated effects.


🧪 Example / Mock-up (Optional)

Example from Model Engine style syntax:

Skills:
  - model{m=skin} @self ~onSpawn
  - modelplayerskin @trigger ~onInteract

Apply the interacting player's skin to specific limbs only:

Skills:
  - model{m=skin} @self ~onSpawn
  - modelplayerskin{mid=skin;p=left_arm,right_arm} @trigger ~onInteract

Use skin from UUID:

Skills:
  - model{m=skin} @self ~onSpawn
  - modelplayerskin{uuid=853c80ef3c3749fdaa49938b674adae6} @self ~onSpawn

Use skin from username:

Skills:
  - model{m=skin} @self ~onSpawn
  - modelplayerskin{username=Ticxo} @self ~onSpawn

Use Base64 skin texture data:

Skills:
  - model{m=skin} @self ~onSpawn
  - modelplayerskin{skin=e3RleHR1cmVzOntTS0lOOnt1cmw6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNjNhOTY0Y2I3ZTM2Yzc2NzM4ODY1ZjhjYzdmZGRmZTQ5MDYwOWUxZDdkZTQ5NTlkN2I1NzZlYmQxYjZmZjBhIn19fQ==} @self ~onSpawn

🌍 Environment (Optional but Helpful)

  • Server software & version: Paper 1.21.4+
  • BetterModel version: latest
  • MythicMobs version: latest
  • Java version: 21+

Disclaimer

The following environments are not supported, and feature requests relying on these conditions will not be considered:

- Informal / modified launchers (e.g., Feather Client)
- Closed-source mods/plugins (Optifine, ItemsAdder, Nexo, etc.)
- Hybrid server platforms (e.g., Arclight)
- Legacy server versions (1.20.1 or lower)
- Bedrock Edition
- Extremely outdated CPU / hardware
- Features fundamentally impossible on server-side due to engine or protocol limitations

Metadata

Metadata

Assignees

Labels

help wantedExtra attention is needed

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions