Customize Waystone

Where is the file located for waystone types?

You can find it under /plugins/FancyWaystones/waystone_types/ directory.

How do I make it so that players can use Custom Icon for Waystones?

Inside the waystone type configuration file, navigate to Custom Icon you will find Enable option there, go ahead and set it to true . There is also Allow Custom Icon option, if you set it to true players will be able to choose item from their inventory to use it as Waystone Custom Icon.

Custom Icon:
    Enable: true
    Allow Custom Icon: true
    Pre-Made Icons:
    -   type: DIAMOND
    -   type: CAKE
    -   type: IRON_INGOT
    -   type: GOLD_INGOT
    -   type: STRING
    Change Condition:
        Criteria: LOGIC_OR
        Conditions:
        -   Criteria: IS_OWNER
        -   Criteria: HAS_PERMISSION
            Permission: fancywaystones.admin

How do I make it so that waystones automatically activates when the players found it?

Your answer is to enable Proximity Discover under waystone type configuration.

Proximity Discover:
    Enable: false
    Message: '{language.proximity-discover}'
    Check Radius: 10
    Condition:
        Criteria: ALWAYS

I don't like particle effects around my waystone, can I disable it?

Yes! Inside waystone type configuration, there is Waystone Effect . You can set it to null or remove it from the config.

Waystone Effect:
    Idle: null
    Activated: null
    Warm Up: wuExample
    Post Teleport: ptExample
  • Idle effect is an effect that will always shown near the waystone

  • Activated same as Idle, but this one shown when the waystone is activated/discovered by players

  • Warm Up effect is an effect that played during the teleportation warm up, removing this will cause the teleportation warm up become instant

  • Post Teleport effect is an effect that played after the teleportation is done

I want Custom Items to be dropped when the player break the waystone instead of just waystone item

There is Item Drops option which you can configure easily. By default, there is only 1 loot drop which contains the waystone item. You can remove it and make your own loot drop. Here is an example:

Item Drops:
    my_custom_loot1:
        Condition: 
            Criteria: ENCHANTED
            Type: SILK_TOUCH
            Level: 1
        Items:
        - type: WAYSTONE
          meta: 
              id: '{type}'
              model: '{model}'
        Conflicting: []
    my_custom_loot2:
        Condition:
            Criteria: ALWAYS
        Items:
        - type: ENDER_CHEST
        - type: GOLD_BLOCK
        Conflicting: 
        - my_custom_loot1
    my_custom_loot3:
        Condition:
            Criteria: RANDOM
            Chance: 50
        Items:
        - type: DIAMOND
        Conflicting: []
        

From the example above, if the player breaks the waystone, it will drop the waystone item if the player is using a Silk Touch enchanted tools, and if not, it will drop Ender Chest and Gold Block. mycustomloot1 and mycustomloot2 cannot be dropped at the same time because mycustomloot2 is conflicting with mycustomloot1, so if mycustomloot1 is dropped, then mycustomloot2 will not be dropped. And the last one is mycustomloot3 which drops Diamond with 50% chance of its dropping.

How to remove or change amount limitations?

By default, players can only activate up to 5 waystones (same type) if they dont have the permission fancywaystones.activate.5 You can change this at Amount Limitations option.

Amount Limitations:
    '20':
        Criteria: HAS_PERMISSION
        Permission: fancywaystones.activate.20
    '10':
        Criteria: HAS_PERMISSION
        Permission: fancywaystones.activate.10
    '5':
        Criteria: HAS_PERMISSION
        Permission: fancywaystones.activate.5

If you don't want this feature, you can remove it

Amount Limitations: {}

How to change the price of Waystone Teleportation?

There is Price option inside waystone type configuration.

Price:
    Entity:
        Enable: false
        Cost:
            '*':
                Level: 1
                EnderPearl: 1
            VILLAGER:
                Level: 10
                EnderPearl: 10
            WITHER:
                Level: 1000
                EnderPearl: 1000
    Multiworld:
        Enable: false
        Cost:
            Level: 1
            EnderPearl: 1
    Multidimensional:
        Enable: false
        Cost:
            Level: 1
            EnderPearl: 1
    Multiserver:
        Enable: false
        Cost:
            Level: 1
            EnderPearl: 1
    Distance:
        Enable: false
        Divide: 100
        Floor Divide: true
        Cost:
            Level: 3
            EnderPearl: 3
    Basic Fee:
        Enable: false
        Cost:
            Level:
                default: 1
                fancywaystones.vip: 0
            EnderPearl:
                default: 0
                fancywaystones.vip: 0

Entity Price

Entity Price is a price that is calculated based on entities attached to the players (since you can teleport with attached entities).

Multiworld Price

Multiworld price is a price that is calculated when the teleportation is between the worlds.

Multidimensional Price

Similar to Multiworld price, this price is calculated when the teleportation is between dimensions (e.g. from overworld to nether, or from overworld to the end)

Multiserver Price

Similar to Multiworld price, this price is calculated when the teleportation is between servers. For example, from lobby to survival server.

Distance Price

Distance price calculates the price based on how far the teleportation occurs. This will only be calculated if the teleportation is in the same world, dimension, and server. This is the formula of how distance price is calculated

Price = (Distance / divide option value) * cost

If the Floor Divide is set to true, it will round the distance division before multiplying it with cost

Price = Math.floor(Distance / divide option value) * cost

For example based on the default configuration, you will be charged with 30 Level or 30 Enderpearls if you teleported with 1.015 blocks distance (the price is rounded to 30 due to Floor Divide)

Basic Fee

Basic fee is a price that will be calculated no matter what.

Per-Permission Cost

You can have your VIPs to get discounted price by setting the cost value like this

    Distance:
        Enable: false
        Divide: 100
        Floor Divide: true
        Cost:
            Level: 3
                default: 3
                fancywaystones.vip: 1
                fancywaystones.admin: 0
            EnderPearl: 
                default: 3
                fancywaystones.vip: 2
                fancywaystones.admin: 0

How do I disable teleport with attached entities feature?

By default, when you teleport between waystones, any entities that are attached to you (ridden horse, leashed pigs, ridden boats, head passengers) will be teleported with you. To disable this, simply set the Condition of Entity Teleport to NEVER

Entity Teleport:
    Criteria: NEVER

If you want just specific entities to be teleported, you can do this

Entity Teleport:
    Criteria: LOGIC_AND
    Conditions:
    - Criteria: IS_SAME_SERVER
    - Criteria: WHITELISTED_ENTITIES
      Entity Types: 
      - 'HORSE'
      - 'COW'
      - 'PIG'
      - 'CAT'
      - 'WOLF'

The entity teleportation requires you to have IS_SAME_SERVER condition because cross-server entity teleportation is not recommended and might cause issues on your end.

Which waystone price is gonna be used? The target waystone or the source waystone?

The target waystone price will be used.

Last updated