Skip to content
Tink edited this page Mar 1, 2025 · 20 revisions

Craft Template Files

Index

  1. Overview
  2. General Rules
  3. Basic Example
  4. Advanced Configuration
  5. Permissions

Overview

Movecraft requires .craft file templates to function, None are included in the initial download, as to not conflict/overwrite existing .craft files during an update. You will need to create or use the examples below to get started. {name}.craft files are stored in the plugins/movecraft/types folder. The {name}.craft template's define characteristics and capabilities of each moveable_craft_, Whether you want to use Sea based ships, Air ships, Submarines or Torpedo's; each needs its own {name}.craft file.

General Rules

  • You can't use tabs in the {name}.craft file. You have to use spaces instead.
  • Use # to put comments in your {name}.craft file. The # character and everything after it on that line will be ignored.
  • .craft files are a YAML format file, and any .craft file in the types directory will be loaded.
  • Permission to use each ship is based on the {name}.craft files name, For example, if you have a craft named "Airship", you would need movecraft.Airship.pilot, movecraft.Airship.move, and movecraft.Airship.rotate in order to completely use it, Check the permissions section below.
  • Your .craft file must consist of at least the following fields in the basic example below.

Permissions

Movecraft uses the following permissions:

movecraft.<craft name>.pilot
movecraft.<craft name>.move
movecraft.<craft name>.rotate

For example, if you have a craft named "Airship", you would need movecraft.Airship.pilot, movecraft.Airship.move, and movecraft.Airship.rotate in order to completely use it.

Basic Example

Filename: example.craft

Location: plugins/movecraft/types

# This is the name of the craft type.
# To pilot this craft type, A sign needs to be put on the craft with this exact name.
name: example

# The Maximum size in blocks this craft type can be.
maxSize: 1000000

# The minimum size in blocks this craft type can be.
minSize: 1

# true for planes, false for boats.
blockedByWater: false

# if you can use cruise command or cruise signs
canCruise: true

# prevent piloting craft above that y level
maxHeightLimit: 200

# false for something liek an elevator or space rocket?
allowHorizontalMovement: true

# false for something that should never leave the y level it was made on.
allowVerticalMovement: true

# speed in blocks per second, to move when using pilot stick
speed: 1.0

# how much of the needed fly blocks can be missing to sink automatically
# A value >0 is needed for the moveblock related checks
sinkPercent: 99.0

# how much of the original blocks need to be missing to sink automatically
overallSinkPercent: 60.0

# prevent piloting craft below that y level
minHeightLimit: 10

# how fast the craft uses its fuel type (like coal) don't exceed 64
fuelBurnRate: 0.01

# if set to false, will rotate around helm sign, otherwise true takes the ships center.
rotateAtMidpoint: true

# similar to the other cruise skip blocks, but for use when cruising vertically?
vertCruiseSkipBlocks: 1

# how many blocks per second the cruise speed of the vessel is
cruiseSpeed: 12

# decides how many blocks of travel can be skipped, try using 1/3 the cruisespeed.
cruiseSkipBlocks: 4

# be a boat, not an airplane, if no water, no move
requireWaterContact: false

# ticks between each sink move
sinkRateTicks: 60

# prevent piloting craft above that y level above the ground?
maxHeightAboveGround: 100

# range before "contact" message is given to other craft pilots
detectionMultiplier: 10.0

# range before "contact" message is given to other craft pilots when underwater
underwaterDetectionMultiplier: 1.0

# when fully under water, should vessel speed be half
halfSpeedUnderwater: true

# vessel is started its automatically cruising, not ideal for piloted
cruiseOnPilot: false

# must be part another craft in order to create this craft.
mustBeSubcraft: false

# prevent using remote rotate sign.
blockRemoteRotate: true

# good for planes, will continue flying while sinking.
keepMovingOnSink: true

# should the entire craft blow up in one explosion
focusedExplosion: false

# number of blocks to skip per gravity drop move
gravityDropDistance: 0

# to get all entities to move with, set only players to false, and move entities to true
onlyMovePlayers: false

# to get no entities to move with, set both onlymoveplayers and move entities to false.
moveEntities: true

# can hover a certain distance above terrain, will follow contours of ground
canHover: false

# can hover a certain distance above water and ground?
canHoverOverWater: false

# Over powered, sign "Teleport:" second line example "100,87,300" teleport sign enabled.
canTeleport: false

# How high up is hovering, keep value low due to lag?
hoverLimit: 0

# if set craft will fall until it reaches hover limit
useGravity: false

# when a piloted craft impacts another nonpassable block, it should explode with the given power
collisionExplosion: 3.0

# when a craft sinks, 5% chance to explode at the given power, per block that impacts a solid block
explodeOnCrash: 5.0

# set this to the water level, will replace the ships area with water if block(s) are below that y level
staticWaterLevel: 62

# allows static move signs, 1st line "Move:"or"Rmove:" 2nd line example "0,0,10"
canStaticMove: false

# sets the max value a craft sign can attempt a staticmove.
maxStaticMove: 0

# if a piston extends outside the bounding box oft he craft, this will increase the bounding box with the piston.
mergePistonExtensions: true

# leftclick with pilot stick to enable, allows using sneak, left/right clicking, and slots 4/6 to steer.
canDirectControl: false

# prevent moving up and down, only allow diagonal up and down.
allowVerticalTakeoffAndLanding: true

# a factor for how much a crafts cruise speed is slowed by lag
dynamicLagSpeedFactor: 0.25		

# a factor for how much a crafts cruise speed is slowed by lag
dynamicLagPowerFactor: 0.875

# This is a list of blocks, using their Block ID, you can make your craft out of.
# If you have a block that isn't on the list, that block won't be part of your ship.
# This could prevent your craft from being able to be piloted or possible being able to move, because it is blocking the ship.
allowedBlocks:
    - "#planks"
    - "#logs"
    - "#glass"
    - "#beds"
    - "#wool"
    - "#slabs"
    - "#stairs"
    - "#chests"
    - "#signs"
    - "#all_hanging_signs"
    - "#doors"
    - "#pressure_plates"
    - "#buttons"
    - "#fences"
    - "#trapdoors"
    - "#stone_bricks"
    - "#fence_gates"
    - "#walls"
    - "#heads"
    - "#anvil"
    - "#concrete"
    - "#carpets"
    - "#shulker_boxes"
    - "#candles"
    - "#banners"
    - crafter
    - sculk_shrieker
    - vault
    - skeleton_skull
    - player_head
    - piglin_head
    - zombie_head
    - dragon_head
    - creeper_head
    - wither_skeleton_skull
    - skeleton_wall_skull
    - player_wall_head
    - piglin_wall_head
    - zombie_wall_head
    - dragon_wall_head
    - creeper_wall_head
    - wither_skeleton_wall_skull
    - respawn_anchor
    - beehive
    - bee_nest
    - decorated_pot
    - lodestone
    - campfire
    - soul_campfire
    - conduit
    - raw_gold_block
    - raw_iron_block
    - raw_copper_block
    - redstone_block
    - copper_block
    - gold_block
    - emerald_block
    - diamond_block
    - lapis_block
    - amethyst_block
    - coal_block
    - iron_block
    - quartz_block
    - chiseled_quartz_block
    - slime_block
    - honey_block
    - shroomlight
    - pearlescent_froglight
    - verdant_froglight
    - ochre_froglight
    - obsidian
    - crying_obsidian
    - observer
    - mossy_cobblestone
    - cobblestone
    - dispenser
    - sticky_piston
    - piston
    - bricks
    - bookshelf
    - chiseled_bookshelf
    - torch
    - wall_torch
    - soul_torch
    - soul_wall_torch
    - fire
    - redstone_wire
    - ladder
    - lever
    - redstone_torch
    - redstone_wall_torch
    - lantern
    - soul_lantern
    - sea_lantern
    - clay
    - glowstone
    - cake
    - repeater
    - iron_bars
    - nether_brick
    - dragon_egg
    - redstone_lamp
    - ender_chest
    - tripwire_hook
    - beacon
    - chain
    - flower_pot
    - comparator
    - daylight_detector
    - hopper
    - quartz_pillar
    - smooth_quartz
    - activator_rail
    - dropper
    - end_stone_bricks
    - end_rod
    - smooth_stone
    - bell
    - crafting_table
    - furnace
    - blast_furnace
    - smoker
    - enchanting_table
    - brewing_stand
    - cauldron
    - cartography_table
    - composter
    - fletching_table
    - grindstone
    - lectern
    - loom
    - smithing_table
    - stonecutter

# check these values on craft creation, but not checked after that time. Often used to limit useful blocks
detectionblocks:
    ["#minecraft:chests"]:
        - 0.0
        - 1.0
    ["#minecraft:smelter"]:
        - 0.0
        - N200
    "#wool":
        - 50.0
        - 100.0
    furnace:
        - 50.0
        - 100.0

# This is a list of blocks that if your ship is touching when you go to pilot a craft, will cause it to fail. 
# You can add blocks to this list to use as "locks", for example a piston_head, piston_head can cause issues if not forbidden.
forbiddenBlocks:
    - piston_head

# blocks use to enable fuel use, and ship movement.
moveblocks:
    redstone_block: # redstone represents engines
        - 1.0
        - 100.0
    iron_block: # iron represents ballast tanks
        - 10.0
        - 100.0

# This is the type of block(s) that are required for the craft to be piloted.
# Block Types are measured in percentages (Second - {num}) from your entire ship size that are required number of flyblocks your ship must have.
# In the example below; If the total number of blocks in your craft equal 100. 25 of those blocks, but no more than 50, must be wool blocks. The rest can be any other allowedBlocks.
# the example also shows Obsidian (Block 49) is not required, but can only have a maximum of 10% on the craft.
flyblocks:
    "#wool":
        - 50.0
        - 100.0
    ["#planks", "#wooden_slabs"]:
        - 25.0
        - 100.0

# when these blocks contact harvestBlocks, they will "mine up" the blocks.
harvesterBladeBlocks:
    - iron_block

# the blocks that are "broken/mined" when coliding with the harvesterBladeBlocks
harvestBlocks:	
    - "#flowers"

# types of fuel that the ship will use if found inside a container block.
fuelTypes:
    - COAL_BLOCK: 2.0

# blocks you aren't allowed to hover over
forbiddenHoverOverBlocks:
    - magma

# blocks that the craft will move through, and will not be destroyed after passing through.
passthroughBlocks:
    - kelp_plant
    - seagrass
    - kelp
    - tall_seagrass
    - bubble_column