### Example MMOCore Quest Setup Source: https://docs.phoenixdevt.fr/mmocore/features/quests Defines a tutorial quest with level requirements, lore, parent quest dependencies, cooldown, and a series of objectives. Each objective has a type, lore, and triggers that execute upon completion. ```yaml # Levels players must have in # order to unlock this quest. level-req: main: 10 mining: 5 # Quest name displayed in the quest menu. name: 'A Whole New World' # Quest lore displayed in the quest menu. lore: - 'This is the tutorial quest.' - 'Lore example...' - '' - '&eRewards:' - '&7► Wooden Tools' - '&7► Leather Armor' - '&7► 100 EXP' # Quests the player must finish # in order to unlock this one. parent: [] # Cooldown in hours. Don't put any # to make the quest a one-time quest. # Put it to 0 to make it instantly redoable. delay: 12 # Objectives the player needs to # complete. Once they're all complete, # the quest will end. objectives: 1: type: 'clickon{world="world";x=56;y=68;z=115;range=5}' lore: 'Head to the camp.' bar-color: PURPLE triggers: - 'message{format="&aGood job, now get some oak logs!"}' - 'sound{sound=ENTITY_EXPERIENCE_ORB_PICKUP}' 2: type: 'mineblock{type="OAK_LOG";amount=3}' lore: 'Get three oak logs!' triggers: - 'message{format="&aGood job, now give these logs to the blacksmith."}' - 'sound{sound="ENTITY_EXPERIENCE_ORB_PICKUP"}' 3: type: 'getitem{type="OAK_LOG";amount=3;npc=0}' lore: 'Give these oak logs to the blacksmith.' triggers: - 'message{format="&aGood job, now talk to the blacksmith again to claim your weapons!"}' - 'sound{sound=ENTITY_EXPERIENCE_ORB_PICKUP}' 4: type: 'talkto{npc=0}' lore: 'Get your weapons from the blacksmith!' triggers: - 'message{format="&aNow go kill 5 skeletal knights to finish tutorial!"}' - 'sound{sound=ENTITY_PLAYER_LEVELUP}' 5: type: 'killmythicmob{name="SkeletalKnight";amount=5}' lore: 'Kill 5 skeletal knights!' triggers: - 'message{format="&a&lYou have successfully finished the tutorial!"}' - 'sound{sound="ENTITY_PLAYER_LEVELUP"}' - 'mmoitem{type=SWORD;id=CUTLASS}' ``` -------------------------------- ### Advanced Mining Configuration Example Source: https://docs.phoenixdevt.fr/mmocore/features/mining An example demonstrating custom material, drop table, vanilla drop disabling, regeneration, and triggers for a specific block. ```yaml on-mine: diamond_ore: # ..... VOID_SHROOM: material: 'mushroom{type=BROWN_MUSHROOM_BLOCK;faces="SOUND,DOWN"}' conditions: - 'region{name=lapis,redstone}' drop-table: items: - 'mmoitem{type=QUEST;id=VOID_SHROOM} 1 1' options: vanilla-drops: false regen: time: 150 temp-block: 'vanilla{type=BLACK_CONCRETE}' triggers: - 'exp{profession=mining;amount=4}' ``` -------------------------------- ### Full Waypoint Configuration Example Source: https://docs.phoenixdevt.fr/mmocore/features/waypoints This example demonstrates a complete configuration for a single waypoint, including its name, location, warp time, costs, and linked destinations. It shows how to define unlockable and dynamic options. ```yml # Waypoint identifier, used as reference for admin commands. # Make sure all the waypoints have different identifiers. spawn: # Name of waypoint displayed in the waypoint GUI. name: Spawn # Location of waypoint: # Yaw and pitch represent where the player will be looking at when teleported. location: 'world 69 71 136 136 0' # Radius of waypoint around the specified location. radius: 2.0 # Time it takes to warp to target location when using # the waypoint through the GUI. warp-time: 100 cost: # Cost when not standing on any waypoint to dynamically teleport to this one. dynamic-use: 5 option: # When enabled, players can unlock the waypoint # by sneaking on it (true by default) unlockable: true # When enabled, opens up the teleportation menu # when sneaking (true by default) enable-menu: true # When set to true (false by default) players don't # have to be standing on any waypoint to teleport # to that waypoint. This could be a nice option for # spawn waypoints alongside with the 'default' option. dynamic: false # Should the waypoint be unlocked by default? default: true # All the waypoints you can teleport to when standing # on that waypoint. Each value is associated with the cost of the travel. linked: spawn1: 2 spawn2: 3 forest: 4 ``` -------------------------------- ### Attribute Buff and Lore Configuration Example 1 Source: https://docs.phoenixdevt.fr/mmocore/features/attributes This example shows a matching configuration where attribute buffs defined in 'attributes.yml' are correctly represented in the 'attribute-view.yml' lore placeholders. ```yaml # attributes/default_attributes.yml intelligence: #... buff: magical_damage: 2 cooldown_reduction: 1 ``` ```yaml # gui/attribute-view.yml items: #... int: #... lore: ... - '&8When Leveled Up:' - '&7 +{buff_magic_damage}% Magic Damage (&a+{total_magic_damage}%&7)' - '&7 +{buff_cooldown_reduction}% Cooldown Reduction (&a+{total_cooldown_reduction}%&7)' ``` -------------------------------- ### Command Trigger Example Source: https://docs.phoenixdevt.fr/mmocore/misc/triggers Executes a console command. Supports PlaceholderAPI placeholders. ```plaintext command{format="tellraw @a {"text":"Hello!"}"} ``` -------------------------------- ### Diamond Ore Mining Example Source: https://docs.phoenixdevt.fr/mmocore/features/mining Configure custom drops, experience, and regeneration for mining diamond ore. This example sets up custom drops, gives 20 Mining experience, and regenerates the block as stone for 100 seconds. ```yaml on-mine: diamond: material: vanilla{type=DIAMOND_ORE} drop-table: items: - 'vanilla{type=DIAMOND} 1 1-3' triggers: - 'exp{profession=mining;amount=20}' options: vanilla-drops: false regen: time: 2000 temp-block: vanilla{type=STONE} ``` -------------------------------- ### Path Configuration Example Source: https://docs.phoenixdevt.fr/mmocore/features/skill-trees Define paths between skill tree nodes, specifying the grid coordinates they occupy and their states. ```yaml nodes: a1: ... coordinates: 0,0 children: strong: a2: level: 1 paths: ['1 0', '2 0'] a3: level: 1 paths: ['-1 0', '-2 0'] a2: ... coordinates: 3,0 a3: ... coordinates: -3,0 ``` -------------------------------- ### Message Trigger Example Source: https://docs.phoenixdevt.fr/mmocore/misc/triggers Sends a message to the player. Supports PlaceholderAPI placeholders. ```plaintext message{format="&aYour message here... "} ``` -------------------------------- ### Attribute Buff and Lore Configuration Example 3 Source: https://docs.phoenixdevt.fr/mmocore/features/attributes This example shows a configuration where lore placeholders in 'attribute-view.yml' reference buffs not defined in the corresponding 'attributes.yml' entry, which can cause parsing errors. ```yaml # attributes/default_attributes.yml dexterity: #... buff: physical_damage: 1.5 attack_speed: 0.5% ``` ```yaml # gui/attribute-view.yml items: #... int: #... lore: #... - '&8When Leveled Up:' - '&7 +{buff_physical_damage}% Physical Damage (&a+{total_physical_damage}%&7)' - '&7 +{buff_projectile_damage}% Projectile Damage (&a+{total_projectile_damage}%&7)' - '&7 +{buff_attack_speed} Attack Speed (&a+{total_attack_speed}&7)' ``` -------------------------------- ### MMOItem Trigger Example Source: https://docs.phoenixdevt.fr/mmocore/misc/triggers Gives the player a specified amount of a particular MMOItem. ```plaintext mmoitem{type=SWORD;id=FALCON_BLADE;amount=2} ``` -------------------------------- ### Sound Trigger Example Source: https://docs.phoenixdevt.fr/mmocore/misc/triggers Broadcasts a sound to the player with specified volume and pitch. ```plaintext sound{sound=;volume=;pitch=} ``` -------------------------------- ### Tool Inheritance Example Source: https://docs.phoenixdevt.fr/mmocore/misc/tool-restrictions Demonstrates how a stronger tool (TOOL?DIAMOND_PICKAXE) can inherit permissions from a weaker tool (DIAMOND_PICKAXE) using the 'parent' option. ```yml TOOL?DIAMOND_PICKAXE: parent: DIAMOND_PICKAXE can-mine: - ... ``` -------------------------------- ### Skill Tree Display Configuration Source: https://docs.phoenixdevt.fr/mmocore/features/skill-trees Example configuration for customizing the display of paths and nodes in a skill tree. This can be placed in `gui/skill-tree.yml` or individual skill tree configurations. ```yaml display: paths: unlocked: up: "WHITE_DYE:0" up-right: "WHITE_DYE:0" up-left: "WHITE_DYE:0" down-right: "WHITE_DYE:0" down-left: "WHITE_DYE:0" right: "WHITE_DYE:0" default: "WHITE_DYE:0" locked: ... unlockable: ... fully-locked: ... nodes: unlocked: up-right-down-left: "WHITE_CONCRETE:0" up-right-down: "WHITE_CONCRETE:0" up-right-left: "WHITE_CONCRETE:0" up-down-left: "WHITE_CONCRETE:0" down-right-left: "WHITE_CONCRETE:0" up-right: "WHITE_CONCRETE:0" up-down: "WHITE_CONCRETE:0" up-left: "WHITE_CONCRETE:0" down-right: "WHITE_CONCRETE:0" down-left: "WHITE_CONCRETE:0" right-left: "WHITE_CONCRETE:0" right: "WHITE_CONCRETE:0" left: "WHITE_CONCRETE:0" up: "WHITE_CONCRETE:0" down: "WHITE_CONCRETE:0" no-path: "WHITE_CONCRETE:0" locked: ... unlockable: ... fully-locked: ... ``` -------------------------------- ### Attribute Buff and Lore Configuration Example 2 Source: https://docs.phoenixdevt.fr/mmocore/features/attributes This example illustrates a mismatch where a buff is defined in 'attributes.yml' but not correctly referenced in the 'attribute-view.yml' lore, leading to potential confusion or parsing failures for placeholders. ```yaml # attributes/default_attributes.yml dexterity: # [...] buff: physical_damage: 1.5 projectile_damage: 1 attack_speed: 0.5% ``` ```yaml # gui/attribute-view.yml items: # [...] int: # [...] lore: ... - '&8When Leveled Up:' - '&7 +{buff_physical_damage}% Physical Damage (&a+{total_physical_damage}%&7)' - '&7 +{buff_attack_speed} Attack Speed (&a+{total_attack_speed}&7)' ``` -------------------------------- ### Item Trigger Example Source: https://docs.phoenixdevt.fr/mmocore/misc/triggers Gives the player a specified amount of a certain item. ```plaintext item{type=DIAMOND;amount=3} ``` -------------------------------- ### MMOItems Tool Restriction Example Source: https://docs.phoenixdevt.fr/mmocore/misc/tool-restrictions Example of how to define mining restrictions for an MMOItems tool using the 'ITEM_TYPE?ITEM_ID' syntax. ```yml 'TOOL?STEEL_PICKAXE': parent: IRON_PICKAXE can-mine: - 'vanilla{type=EMERALD_ORE}' ``` -------------------------------- ### MythicMobs Skill Trigger Example Source: https://docs.phoenixdevt.fr/mmocore/misc/triggers Casts a skill defined within MythicMobs. ```plaintext mmskill{id=MythicMobsSkillInternalName} ``` -------------------------------- ### MMOItems Recipe with Experience Trigger Source: https://docs.phoenixdevt.fr/mmocore/compatibility/mmoitems This example shows how to add an experience trigger to an MMOItems crafting recipe. Using this recipe grants the player 10 experience points in the Smithing profession. ```yaml steel-sword: output: type: SWORD id: STEEL_SWORD ... triggers: - 'exp{profession=smithing,amount=10}' ``` -------------------------------- ### Apply Skill Buffs Source: https://docs.phoenixdevt.fr/mmocore/skills/intro These examples demonstrate how to apply skill buffs using the 'skill_buff' trigger. You can target all skills, a specific skill by name, or skills within a category. ```yaml triggers: # -10% cooldown to ALL skills - 'skill_buff{formula="true";modifier="cooldown";amount=-10;type=RELATIVE}' # +20 Flat damage to skill with name FIRE_STORM - 'skill_buff{formula="";modifier="damage";amount=20;type=FLAT}' # 20 Flat damage to skills with category MY_OWN_CATEGORY - 'skill_buff{formula="";modifier="damage";amount=20;type="FLAT"}' ``` -------------------------------- ### Bind Skill Trigger Example Source: https://docs.phoenixdevt.fr/mmocore/misc/triggers Binds a specified skill to a particular slot. ```plaintext bind_skill{skill=FIREBALL;slot=10} ``` -------------------------------- ### Loot Chest Configuration Example Source: https://docs.phoenixdevt.fr/mmocore/features/loot-chests Defines a loot chest at specific coordinates with a custom drop table, respawn time, and particle effect. Use this to set up individual chests with unique loot and visual cues. ```yaml 'world 59 71 131': # Create directly your drop table here. drop-table: items: - 'vanilla{type=DIAMOND} 1 1-3' - 'gold{} .9 1-3' - 'gold{} .9 1-3' - 'gold{} .9 1-3' - 'gold{} .9 1-3' - 'gold{} .9 1-3' - 'gold{} .9 1-3' - 'note{min=1;max=10} .9 1-3' # Ticks the chest takes to appear again. regen-time: 40 # The particle played every 4sec around the chest. # Types available: helix|offset|galaxy # Particle names here: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Particle.html effect: type: helix particle: FLAME ``` -------------------------------- ### Example Config: Emerald Ore Source: https://docs.phoenixdevt.fr/mmocore/misc/block-types This configuration makes vanilla emerald ore drop emeralds and temporarily replace it with a custom skull. It demonstrates using block types for custom drops and temporary block replacements. ```yaml on-mine: emerald: material: vanilla{type=EMERALD_ORE} drop-table: items: - 'vanilla{type=EMERALD} 1 1-9' vanilla-drops: false regen: time: 2000 temp-block: skull{value="long_texture_value_here"} ``` -------------------------------- ### Main Class Experience Trigger Example Source: https://docs.phoenixdevt.fr/mmocore/misc/triggers Grants experience points for the player's main class. ```plaintext exp{amount=} ``` -------------------------------- ### Custom Skill Tree Configuration Source: https://docs.phoenixdevt.fr/mmocore/features/skill-trees Example of a custom skill tree configuration. The type is set to CUSTOM, requiring manual definition of node relations and paths. ```yaml id: "sample_skill_ree" name: "&6My Skill Tree" type: CUSTOM # <<==== Here ... ``` -------------------------------- ### Proximity Skill Tree: Neighboring Nodes as Parents Source: https://docs.phoenixdevt.fr/mmocore/features/skill-trees Demonstrates how direct neighbors in a proximity skill tree are automatically considered parents. This example shows two nodes that are direct neighbors. ```yaml nodes: a1: name: 'Cooldown Reduction I' ... coordinates: 2,1 a2: name: 'Cooldown Reduction II' ... coordinates: 2,2 ``` -------------------------------- ### Level Up Skill Trigger Example Source: https://docs.phoenixdevt.fr/mmocore/misc/triggers Increases the player's level for a specified skill. ```plaintext levelup_skill{skill=;amount=1} ``` -------------------------------- ### Unlock Skill Trigger Example Source: https://docs.phoenixdevt.fr/mmocore/misc/triggers Unlocks a specific skill for the player. ```plaintext unlock_skill{skill=FIREBALL} ``` -------------------------------- ### Weighted Drop Table Example Source: https://docs.phoenixdevt.fr/mmocore/features/drop-tables Configures a drop table with item weights to control the probability of drops when a capacity limit is applied. This ensures a balanced distribution of items. ```yml weighted-drop-table: items: - 'vanilla{type=DIAMOND} .33 1-3 1' - 'vanilla{type=EMERALD} .5 1-3 1' - 'vanilla{type=GOLD_INGOT} 1 1-3 1' ``` -------------------------------- ### MMOItems Recipe with Profession Level Restriction Source: https://docs.phoenixdevt.fr/mmocore/compatibility/mmoitems This example demonstrates how to add a profession level restriction to an MMOItems crafting recipe. The player must be at least level 5 in Smithing to use this recipe. ```yaml steel-sword: output: type: SWORD id: STEEL_SWORD conditions: - 'profession{profession=smithing,level=5}' ingredients: - 'vanilla{type=STICK,amount=2}' - 'mmoitem{type=MATERIAL,id=STEEL_INGOT,amount=4}' ``` -------------------------------- ### Enchanting Experience Calculation Example Source: https://docs.phoenixdevt.fr/mmocore/profession/enchanting Illustrates how to calculate the total experience gained by a player when enchanting an item with multiple enchantments. The total experience is the sum of experience from each enchant, weighted by its level. ```plaintext efficiency exp = 4 * 40 = 160 unbreaking exp = 3 * 10 = 30 silk touch exp = 1 * 50 = 50 total exp = sum of exp from all enchants = 240 exp ``` -------------------------------- ### Stat Trigger Example Source: https://docs.phoenixdevt.fr/mmocore/misc/triggers Grants a permanent stat to the player. Use FLAT to add a fixed amount or RELATIVE for a percentage increase. ```plaintext stat{stat=;amount=;type=FLAT/RELATIVE} ``` -------------------------------- ### Basic EXP Curve Text File Format Source: https://docs.phoenixdevt.fr/mmocore/level/curves Defines the experience required for each level. Each line represents the experience needed to reach that level, starting from level 2. These values are not cumulative. ```text 200 400 600 800 1000 1200 1400 1600 1800 2000 2200 2400 2600 [...] ``` -------------------------------- ### Proximity Skill Tree Configuration Source: https://docs.phoenixdevt.fr/mmocore/features/skill-trees Example of a proximity skill tree configuration. The type is set to PROXIMITY, which automatically infers parent-child relationships between neighboring nodes. ```yaml id: "sample_skill_ree" name: "&6My Skill Tree" type: PROXIMITY # <<==== Here ... ``` -------------------------------- ### Root Node Configuration Source: https://docs.phoenixdevt.fr/mmocore/features/skill-trees Marks a node as a root node in the skill tree. Root nodes are the first nodes to be unlocked. This example sets 'a1' as a root node. ```yml nodes: a1: name: '&6Some Node' ... root: true # Here! ``` -------------------------------- ### Base Resource Regeneration Configuration Source: https://docs.phoenixdevt.fr/mmocore/misc/resources Example configuration for a Mage class, showing base and max health regeneration attributes. It includes an option to enable off-combat health regeneration. ```yaml options: off-combat-health-regen: true attributes: health-regeneration: base: 0.13 per-level: 0 max-health-regeneration: base: 1 per-level: 0 ``` -------------------------------- ### Symmetrical Parent/Children Configuration Source: https://docs.phoenixdevt.fr/mmocore/features/skill-trees Illustrates the symmetrical nature of 'children' and 'parents' configurations. This example shows 'a1' having 'a2' as a strong child, which is equivalent to 'a2' having 'a1' as a strong parent. ```yml nodes: a1: ... children: strong: a2: 3 a2: ... ``` ```yml nodes: a1: ... a2: ... parents: strong: a1: 3 ``` -------------------------------- ### Mining Experience Source Configuration Source: https://docs.phoenixdevt.fr/mmocore/features/mining Define experience gain for mining specific blocks. This example configures experience for mining any block material, with options to exclude Silk Touch, require crops to be fully grown, and ignore player-placed blocks. ```yaml mineblock{type=BLOCK_MATERIAL;silk-touch=true;crop=false;player-placed=false} ``` -------------------------------- ### Vanilla Block Type with Age Option Source: https://docs.phoenixdevt.fr/mmocore/misc/block-types Use the 'age' option with vanilla block types to regenerate crops. This example spawns fully grown wheat crops after a wheat block is broken. ```plaintext vanilla{type=WHEAT,age=7} ``` -------------------------------- ### From Experience Source Source: https://docs.phoenixdevt.fr/mmocore/level/sources Loads all experience sources from exp-sources.yml that match the specified exp-source-id. ```plaintext from{source=exp-source-id} ``` -------------------------------- ### Profession Experience Trigger Example Source: https://docs.phoenixdevt.fr/mmocore/misc/triggers Grants experience points for a specific profession. ```plaintext exp{profession=;amount=} ``` -------------------------------- ### Configuring Vanilla Experience for Fishing Items Source: https://docs.phoenixdevt.fr/mmocore/profession/fishing Use 'vanilla-exp=min-max' to provide players with vanilla Minecraft experience upon catching a fish. This functions identically to the 'experience' parameter. ```plaintext vanilla-exp=min-max ``` -------------------------------- ### Configure Party Plugin Source: https://docs.phoenixdevt.fr/mmocore/features/parties Set the party-plugin option in MMOCore/config.yml to choose the desired party system. Remember to restart the server after changes. ```yaml party-plugin: MMOCORE ``` -------------------------------- ### Unlock Slot Trigger Example Source: https://docs.phoenixdevt.fr/mmocore/misc/triggers Unlocks a designated skill slot for the player. ```plaintext unlock_slot{slot=""} ``` -------------------------------- ### Configuring Experience for Fishing Items Source: https://docs.phoenixdevt.fr/mmocore/profession/fishing Add 'experience=min-max' to an item line to grant players a random amount of MMOCore experience when they catch it. A constant experience value can be set using 'experience=30'. ```plaintext experience=min-max ``` ```plaintext experience=30 ``` -------------------------------- ### Money Trigger Example Source: https://docs.phoenixdevt.fr/mmocore/misc/triggers Modifies the player's balance by giving, taking, or setting the amount. ```plaintext money{operation=;amount=2-3} ``` -------------------------------- ### Stellium Trigger Example Source: https://docs.phoenixdevt.fr/mmocore/misc/triggers Modifies the player's stellium by giving, taking, or setting the amount. ```plaintext stellium{operation=;amount=2-3} ``` -------------------------------- ### Proximity Skill Tree: Specifying a Root Node Source: https://docs.phoenixdevt.fr/mmocore/features/skill-trees Demonstrates how to manually specify a root node in a proximity skill tree. This is necessary because MMOCore cannot infer roots in linked trees. ```yaml nodes: a1: name: '&6Some Node' root: true # This option ... ``` -------------------------------- ### Stamina Trigger Example Source: https://docs.phoenixdevt.fr/mmocore/misc/triggers Modifies the player's stamina by giving, taking, or setting the amount. ```plaintext stamina{operation=;amount=2-3} ``` -------------------------------- ### Skill Casting Configuration Source: https://docs.phoenixdevt.fr/mmocore/skills/casting Configure the skill casting mode, action bar format, keybinds, and sounds in the config.yml file. ```yaml skill-casting: mode: SKILL_SCROLLER # General options action-bar-format: 'CLICK TO CAST: {selected}' quit-on-cast: false # Should the player quit casting mode when skill is cast? quit-on-switch-empty-hand: false # Player quits casting mode when switching to an empty hand ignore-sneak: false # Ignore pressed keys when player is sneaking # Keybinds enter-key: SWAP_HANDS cast-key: LEFT_CLICK scroll-key: key: RIGHT_CLICK sneak: false # No sneak + right click scroll-back-key: key: RIGHT_CLICK sneak: true # Sneak + right click # Edit sounds here sound: enter: sound: BLOCK_END_PORTAL_FRAME_FILL volume: 1 pitch: 2 change: sound: BLOCK_LEVER_CLICK volume: 1 pitch: 2 change-back: sound: BLOCK_LEVER_CLICK volume: 1 pitch: 1.5 leave: sound: BLOCK_FIRE_EXTINGUISH volume: 1 pitch: 2 ``` -------------------------------- ### Mana Trigger Example Source: https://docs.phoenixdevt.fr/mmocore/misc/triggers Modifies the player's mana by giving, taking, or setting the amount. ```plaintext mana{operation=;amount=2-3} ``` -------------------------------- ### Define and Reference Condition Tables Source: https://docs.phoenixdevt.fr/mmocore/misc/conditions Demonstrates how to define reusable condition sets in `conditions.yml` and reference them using the 'from' condition. This allows for modularity and avoids repetition. ```yaml test-condition: - 'level{amount=10}' #Will load the 2 conditions from test-condition-2. - 'from{source=test-condition-2}' test-condition-2: - 'world{name=world}' - 'level{profession=mining;amount=3}' ``` -------------------------------- ### Example Axe Restrictions Source: https://docs.phoenixdevt.fr/mmocore/misc/tool-restrictions Defines mining restrictions for an IRON_AXE, allowing it to break specific log types. ```yml IRON_AXE: default: true can-mine: - vanilla{type=OAK_LOG} - vanilla{type=SPRUCE_LOG} ``` -------------------------------- ### Configure Vanilla EXP Redirection Source: https://docs.phoenixdevt.fr/mmocore/misc/vanilla-exp Configure the redirection of vanilla experience orbs to MMOCore class experience. Define the percentage of experience to transfer. Requires a server reload when changed. ```yaml # Redirects vanilla experience obtained to MMOCore # class experience. You can define the % of the vanilla # experience that is being transfered as MMOCore exp. # Requires a SERVER reload when changed. vanilla-exp-redirection: enabled: false ratio: 0.8 ``` -------------------------------- ### Skill Buff Trigger Example Source: https://docs.phoenixdevt.fr/mmocore/misc/triggers Applies a permanent buff to skills matching a formula by modifying a specific modifier like cooldown or damage. ```plaintext skill_buff{formula="";modifier=;amount=;type=FLAT/RELATIVE} ``` -------------------------------- ### Default Pickaxe Restrictions Source: https://docs.phoenixdevt.fr/mmocore/misc/tool-restrictions Example of default pickaxe restrictions, including WOODEN_PICKAXE, STONE_PICKAXE, IRON_PICKAXE, GOLDEN_PICKAXE, and DIAMOND_PICKAXE, with specific blocks they can mine. ```yml WOODEN_PICKAXE: parent: AIR # What the tool can mine. can-mine: - vanilla{type=COAL_ORE} # You can also use MMOItems specifically TYPE?ID TOOL?STONE_PICKAXE: # What the tool can mine. can-mine: - vanilla{type=COAL_ORE} STONE_PICKAXE: can-mine: - vanilla{type=IRON_ORE} # MMOItems custom blocks with ID 1 - mmoitems{id=1} # The block break permissions the tool inherits. # e.g a stone pickaxe can mine iron ores PLUS # any block that the wooden pickaxe can mine. # Used to make the config much clearer. parent: WOODEN_PICKAXE IRON_PICKAXE: parent: STONE_PICKAXE can-mine: - vanilla{type=GOLD_ORE} # Custom skull with diamond ore texture - skull{value="eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvY2EzYmI4NWRlYzEzMjlmZTgyOWNjNmNkY2QzNGUxYmQ2MGVlODMyZjU3MjYyOTY1MWYxNGI1ZTE0NTU1ZGJiMSJ9fX0="} GOLDEN_PICKAXE: parent: IRON_PICKAXE can-mine: - vanilla{type=LAPIS_ORE} DIAMOND_PICKAXE: parent: GOLDEN_PICKAXE can-mine: - vanilla{type=DIAMOND_ORE} - vanilla{type=EMERALD_ORE} - vanilla{type=REDSTONE_ORE} # Default permission set AIR: default: true can-mine: - vanilla{type=OAK_LOG} - vanilla{type=SPRUCE_LOG} ``` -------------------------------- ### Configure Class-Specific Key Combos Source: https://docs.phoenixdevt.fr/mmocore/skills/casting Define custom key combo mappings for specific classes by adding this configuration to their respective class files within the MMOCore/classes folder. ```yaml skill-casting: combos: '1': - LEFT_CLICK - LEFT_CLICK '2': - LEFT_CLICK - SWAP_HANDS '3': - RIGHT_CLICK - LEFT_CLICK '4': - SWAP_HANDS - RIGHT_CLICK '5': - RIGHT_CLICK - SWAP_HANDS '6': - LEFT_CLICK - RIGHT_CLICK ``` -------------------------------- ### Enable Vanilla EXP Display Source: https://docs.phoenixdevt.fr/mmocore/misc/vanilla-exp Enable this option to override the vanilla EXP bar and display MMOCore level progress. Requires a server reload when changed. ```yaml # Enable this open to override vanilla EXP and display # level progress on the vanilla experience bar. # Requires a SERVER reload when changed. override-vanilla-exp: true ``` -------------------------------- ### Maximum Children Configuration Source: https://docs.phoenixdevt.fr/mmocore/features/skill-trees Limits the number of children a parent node can have unlocked. In this example, 'a1' can only have one child unlocked ('a2' or 'a3'), forcing a choice. ```yml nodes: a1: ... max-children: 1 a2: ... parents: strong: a1: level: 1 a3: ... parents: a1: level: 1 ``` -------------------------------- ### Configure Key Combo Skill Casting Source: https://docs.phoenixdevt.fr/mmocore/skills/casting Set the skill casting mode to KEY_COMBOS and define general, sound, action bar, and combo keybind options in the main MMOCore configuration file. ```yaml skill-casting: mode: KEY_COMBOS # General options initializer-key: SWAP_HANDS # Optional. Press to enter skill casting, otherwise any combo key will automatically have the player enter skill casting. quit-key: SWAP_HANDS # Optional. Press to quit skill casting. Can be the same as the 'initializer-key' stay-in: false # When enabled, player will remain in skill-casting after casting a skill. allowed-keys: # Disable some keys here, MMOCore will stop listening to them. - LEFT_CLICK - RIGHT_CLICK - DROP - SWAP_HANDS - CROUCH # Sound options sound: begin-combo: # When entering combo casting sound: BLOCK_END_PORTAL_FRAME_FILL volume: 1 pitch: 2 combo-key: # The click sound whenever pressing a keybind sound: BLOCK_LEVER_CLICK volume: 1 pitch: 2 fail-combo: # If the keybind sequence does not correspond to any preconfigured combo sound: BLOCK_FIRE_EXTINGUISH volume: 1 pitch: 2 fail-skill: # If you cast a skill but it fails. sound: BLOCK_FIRE_EXTINGUISH volume: 1 pitch: 2 # Action bar options action-bar: prefix: "&c❤ {health}/{max_health} &f| " suffix: " &f| {mana_icon} {mana}/{max_mana} &f| &7⛨ {armor}" is-subtitle: false #If the message is shown as a subtitle rather than in the action-bar. separator: ' - ' no-key: '****' key-name: LEFT_CLICK: 'LEFT' RIGHT_CLICK: 'RGHT' DROP: 'DROP' SWAP_HANDS: 'SWAP' CROUCH: 'SHFT' # Edit default combos here combos: '1': - LEFT_CLICK - LEFT_CLICK '2': - LEFT_CLICK - SWAP_HANDS '3': - RIGHT_CLICK - LEFT_CLICK '4': - SWAP_HANDS - RIGHT_CLICK '5': - RIGHT_CLICK - SWAP_HANDS '6': - LEFT_CLICK - RIGHT_CLICK ``` -------------------------------- ### Configure Quest Plugin in MMOCore Source: https://docs.phoenixdevt.fr/mmocore/features/quests Set the 'quest-plugin' option in MMOCore's config.yml to choose the desired quest system. Remember to restart the server after making changes. ```yaml # Edit the plugin handling quests here. # Supported values (just copy and paste): # - MMOCORE (Default, built-in quest system) # - NONE (Used to fully disable quests) # - BEAUTYQUESTS # - QUESTCREATOR (https://www.spigotmc.org/resources/questcreator.38734/) # - QUESTS (https://www.spigotmc.org/resources/quests.3711/) quest-plugin: MMOCORE ``` -------------------------------- ### Default exp-tables.yml Configuration Source: https://docs.phoenixdevt.fr/mmocore/level/tables This snippet shows the default structure and options for configuring experience tables in MMOCore. It includes settings for reward periods, chances, first/last triggers, fail reduction, and the specific triggers to be activated. ```yaml example_exp_table: first_table_item: # This item will drop every 3 levels period: 3 # This item has a 80% chance in fact to drop chance: 80 # The level at which the item will be claimed for the first time first-trigger: 5 # Every successive fail in claiming the item will reduce # the risk of failing future claims by X%. With a 80% # fail reduction rate, chances become: # - 80% # - 96% # - 99.2% # - 99.84% # so on forever.. # # This is better than just increasing the claim chance by a # certain amount each time because otherwise the claim chance # just becomes/surpasses 100% at some point. fail-reduction: 80 # What happens when that item is claimed triggers: - 'exp{amount=20}' - 'command{format="broadcast That''s three levels"}' # Will be used at level 7,9,11,13 second_table_item: period: 2 first-trigger: 7 last-trigger: 13 triggers: - 'exp{amount=80}' - 'command{format="broadcast Boy, %player_name% level up twice in one of his(her) professions!"}' second_exp_table: # Base exp every level up, sweet. some_item: period: 1 triggers: - 'exp{amount=100}' # Extra exp every 3 levels some_other_item: period: 3 triggers: - 'exp{amount=100}' last_example: # Only triggers when getting lvl2 # Perfect for meticulous exp tables level_two: level: 2 triggers: - 'exp{amount=100}' # Only triggers at lvl 3 # Perfect for meticulous exp tables level_three: level: 3 triggers: - 'exp{amount=120}' # Etc. # Add as many items as you want ``` -------------------------------- ### Proximity Skill Tree: Non-Neighboring Nodes Not Parents Source: https://docs.phoenixdevt.fr/mmocore/features/skill-trees Illustrates that nodes which are not direct neighbors in a proximity skill tree are not automatically considered parents. This example shows two nodes with a gap between them. ```yaml nodes: a1: name: 'Cooldown Reduction I' ... coordinates: 2,1 a2: name: 'Cooldown Reduction II' ... coordinates: 2,4 ``` -------------------------------- ### Skill Tree Basic Configuration Source: https://docs.phoenixdevt.fr/mmocore/features/skill-trees Defines a custom skill tree with a unique ID, name, maximum points, lore, and an icon. Includes configuration for nodes with levels, points consumed, experience tables, and triggers. ```yaml id: "custom_combat" # Unique Identifier for the Skill Tree name: "Combat" # Name of the skill tree that will be displayed in the GUI type: custom # See below for explanations max-points-spent: 20 # Maximum amount of points spent in that skill tree lore: - "&6This skill tree is used for combat abilities!" icon: # The item representing the skill tree in the GUI. material: GOLDEN_AXE item_flags: [HIDE_ATTRIBUTES] #custom_model_data: 10 #custom_model_data_string: 'test' #item_model: 'minecraft:dirt' nodes: a1: name: "Mana Regeneration" coordinates: -3,-2 paths: a2: path1: -2,-2 path2: -1,-2 max-level: 2 is-root: true point-consumed: 1 experience-table: first_table_item: level: 1 triggers: - 'stat{stat="MANA_REGENERATION";amount=1;type="FLAT"}' second_table_item: level: 2 triggers: - 'stat{stat="MANA_REGENERATION";amount=1;type="FLAT"}' lores: 0: - "&eMana regen in pts/sec +1" 1: - "&eMana regen in pts/sec +1" 2: - "&eMana regen in pts/sec +1" ``` -------------------------------- ### Define Trigger Tables in triggers.yml Source: https://docs.phoenixdevt.fr/mmocore/misc/triggers Example of defining trigger tables in the triggers.yml configuration file. These tables allow grouping multiple triggers under a single ID, which can then be referenced and fired by other triggers. ```yaml #Example test-trigger: - 'command{format="broadcast Triggered!"}' #Will fire the 2 commands in test-trigger-2 - 'from{source="test-trigger-2"}' test-trigger-2: - 'command{format="mmocore admin skill-points give %player_name% 1"}' - 'command{format="mmocore admin atr-realloc-points give %player_name% 3"}' ``` -------------------------------- ### Advanced Class Item Configuration Source: https://docs.phoenixdevt.fr/mmocore/features/classes Provides more detailed options for configuring class icons, including item material, custom model data, and texture for player heads. ```yaml display: item: # More icon options item: BLAZE_POWDER custom-model-data: 10 custom-model-data-string: 'whatever' item-model: 'minecraft:dirt' texture: 'base64skulltexture' # Requires 'item' to be 'PLAYER_HEAD' ``` -------------------------------- ### Class Additional Options Configuration Source: https://docs.phoenixdevt.fr/mmocore/features/classes Sets various options for a class, such as default status, display in menus, and resource regeneration behavior. ```yaml options: default: false display: true off-combat-health-regen: false off-combat-mana-regen: false off-combat-stamina-regen: false off-combat-stellium-regen: false ``` -------------------------------- ### Configure Passive Skill with ATTACK Trigger Source: https://docs.phoenixdevt.fr/mmocore/skills/config Set up a passive skill that is triggered every time the player attacks an entity. Ensure the skill is registered in the MythicLib/skill folder. ```yaml skills: MY_CUSTOM_SKILL_2: level: 1 max-level: 30 trigger: ATTACK # <<==== Here ... ``` -------------------------------- ### Strong Parent - Children Configuration Source: https://docs.phoenixdevt.fr/mmocore/features/skill-trees Defines strong parent-child relationships where all strong parents must be unlocked for a child node to be unlocked. This example shows 'a1' as the parent of 'a2', 'a3', and 'a4'. ```yml nodes: a1: ... children: strong: a2: level: 2 a3: level: 1 a4: level: 3 a2: ... a3: ... a4: ... ``` -------------------------------- ### Add Phoenix Maven Repository Source: https://docs.phoenixdevt.fr/mmocore/api/maven Configure your Maven settings.xml to include the Phoenix repository for accessing MMO-Core API builds. ```xml phoenix https://nexus.phoenixdevt.fr/repository/maven-public/ ``` -------------------------------- ### Selective Custom Mining Enablement Source: https://docs.phoenixdevt.fr/mmocore/features/mining Enable custom mining for specific worlds and regions by adjusting the `conditions` in `MMOCore/config.yml`. This example enables custom mining in 'world' and 'world_nether' within the 'mmocore_custom_mining' region. ```yaml custom-mining: enable: true conditions: - 'world{name="world,world_nether"}' - 'region{name="mmocore_custom_mining"}' ``` -------------------------------- ### Class Stats Configuration with Formula Options Source: https://docs.phoenixdevt.fr/mmocore/features/classes Defines class stats using a formula, with options to disable PlaceholderAPI integration and set a fallback value if the formula fails. ```yaml stats: max-health: formula: 'min(100, 19 + {level} * {level})' papi: false # Disable PAPI placeholder checks failsafe: 20 # In case the formula goes wrong, fallback to 20 ``` -------------------------------- ### Place Block Experience Source Source: https://docs.phoenixdevt.fr/mmocore/level/sources Grants experience when a block of the specified material type is placed. ```plaintext placeblock{type=BLOCK_MATERIAL} ``` -------------------------------- ### Soft Parent - Children Configuration Source: https://docs.phoenixdevt.fr/mmocore/features/skill-trees Defines soft parent-child relationships where at least one soft parent must be unlocked for a child node. This example shows 'a1' as a soft parent for 'a2' and 'a3'. ```yml nodes: a1: ... children: soft: a2: level: 3 a3: level: 2 a2: ... a3: ... ``` -------------------------------- ### Proximity Skill Tree: Defining Custom Parent Relations Source: https://docs.phoenixdevt.fr/mmocore/features/skill-trees Shows how to explicitly define parent-child relationships (children) within a proximity skill tree, even though neighboring nodes are automatically soft parents. This syntax still works. ```yaml nodes: a1: name: 'Cooldown Reduction I' ... coordinates: 2,1 children: # This syntax still works. strong: a1: 1 a2: name: 'Cooldown Reduction II' ... coordinates: 2,4 ``` -------------------------------- ### Class Stats Configuration with Min/Max Bounds Source: https://docs.phoenixdevt.fr/mmocore/features/classes Configures class statistics with minimum and maximum bounds to control stat ranges. This prevents stats from becoming too low or too high. ```yaml stats: max-health: base: 18 per-level: 3 max: 80 # Cannot go above 80 max health min: 20 # Cannot go under 20 max health ``` -------------------------------- ### Farming Profession Configuration Source: https://docs.phoenixdevt.fr/mmocore/profession/intro Example configuration for a 'Farming' profession. It defines the display name, experience curve, experience sources (mining carrots, potatoes, wheat), maximum level, experience table, and main class experience rewards. ```yml # Display options name: Farming # Must match an existing exp curve filename from the 'exp-curves' folder exp-curve: levels # How to get exp in that profession exp-sources: - 'mineblock{type=CARROTS;amount=1-3;crop=true;player-placed:true}' - 'mineblock{type=POTATOES;amount=1-3;crop=true;player-placed:true}' - 'mineblock{type=WHEAT;amount=1-3;crop=true;player-placed:true}' # The maximum profession level max-level: 10 # See below for full explanation exp-table: example_exp_table # Experience given to the main level # when leveling up this profession experience: base: 10 per-level: 2 ``` -------------------------------- ### Default Drop Table Configuration Source: https://docs.phoenixdevt.fr/mmocore/features/drop-tables Defines custom drop tables with various item types including vanilla items, MMOItems, and other drop tables. Supports defining drop chance and amount ranges. ```yml diamond-drop-table: items: - 'vanilla{type=DIAMOND} 1 1-3' - 'mmoitem{type=material;id=RARE_DIAMOND} .1 1-3' - 'droptable{id=other-drop-table} .1' other-drop-table: items: - 'vanilla{type=STONE} 1 1-3' ```