Skip to content

Configuration

This page documents all configuration options available in HTSkyBlock's config.json file. The configuration file is automatically generated on first server start with default values.

Configuration File Location

plugins/HTSkyBlock/config.json

Reloading Configuration

After making changes to the config file, use /islandadmin reload to apply changes without restarting the server.

Language

Controls which language file to load from the lang/ directory.

Field Type Default Description
language String "en" Language code (e.g., "en", "de", "fr"). Loads lang/<code>.json

Example:

{
  "language": "en"
}


Economy

Economy system settings for currency management and external plugin integration.

Field Type Default Description
enabled Boolean true Enable/disable economy system
provider String "self" Economy provider: "self", "theeconomy", "ecotale", or "arefyeconomy"
startingBalance Double 0.0 Starting money for new players
currencySymbol String "$" Symbol displayed for currency
currencyFormat String "#,##0.00" Number format pattern for currency display

Example:

{
  "economy": {
    "enabled": true,
    "provider": "self",
    "startingBalance": 100.0,
    "currencySymbol": "$",
    "currencyFormat": "#,##0.00"
  }
}

External Economy Plugins

When using provider: "theeconomy", "ecotale", or "arefyeconomy", ensure the respective plugin is installed. HTSkyBlock will delegate all economy operations to the external plugin.


Generator

Cobblestone generator configuration for creating ores when cobblestone regenerates.

Basic Settings

Field Type Default Description
enabled Boolean true Enable/disable cobblestone generator ore spawning
oreChance Double 0.20 Base chance (0.0-1.0) for ore generation instead of cobblestone
regenDelayMs Long 1000 Delay in milliseconds before cobblestone regenerates
spawnRubble Boolean true Spawn rubble item on top of generated blocks

Ore Table

The ores array defines which ores can spawn and their relative weights.

Default Ore Table:

Block ID Weight Rarity
Ore_Copper_Stone 35 Common (~35%)
Ore_Iron_Stone 30 Common (~30%)
Ore_Silver_Stone 15 Uncommon (~15%)
Ore_Gold_Stone 10 Rare (~10%)
Ore_Thorium_Mud 3 Very Rare (~3%)
Ore_Mithril_Stone 1.5 Ultra Rare (~1.5%)
Ore_Adamantite_Magma 1 Ultra Rare (~1%)

Format:

{
  "ores": [
    {
      "blockId": "Ore_Copper_Stone",
      "weight": 35.0
    },
    {
      "blockId": "Ore_Iron_Stone",
      "weight": 30.0
    }
  ]
}

Customizing Ore Rates

Higher weight = more common. Total weight is ~100 for easy percentage reading. Add or remove entries to customize available ores.

Generator Tiers

Permission-based tiers allow VIP players to receive better ore rates. Tiers are checked top-to-bottom, and the first matching permission wins.

Default Tiers:

Tier Name Permission Ore Chance Weight Overrides
vip_plus htskyblock.generator.vipplus 0.30 (30%) Iron: 35, Gold: 15, Mithril: 3, Adamantite: 2
vip htskyblock.generator.vip 0.25 (25%) Iron: 32, Gold: 12

Format:

{
  "tiers": [
    {
      "name": "vip_plus",
      "permission": "htskyblock.generator.vipplus",
      "oreChance": 0.30,
      "overrides": {
        "Ore_Iron_Stone": 35.0,
        "Ore_Gold_Stone": 15.0,
        "Ore_Mithril_Stone": 3.0,
        "Ore_Adamantite_Magma": 2.0
      }
    }
  ]
}

Tier Permissions

Grant tier permissions to players via your permissions plugin. Players without any tier permission use the base oreChance and ore weights.


Island

Core island settings for creation, sizing, upgrades, and behavior.

Basic Settings

Field Type Default Description
enabled Boolean true Enable/disable island system
autoTeleportToIsland Boolean true Auto-teleport players to their island on join
islandSpacing Integer 1000 Distance between islands in per-world mode
creationType String "schematic" Island creation method: "schematic" or "prefab"
worldgen String "void" World generation type: "void" or "void_floating"
defaultSchematic String "start_hytale.schem" Schematic file for island creation (in schematics/ folder)
defaultPrefab String "island.prefab.json" Prefab file for island creation (Hytale native format)
resetCooldownHours Long 24 Cooldown in hours between island resets
resetConfirmTimeoutSeconds Integer 30 Time in seconds for reset confirmation prompt

World Mode Settings

Field Type Default Description
mode String "single_world" Island world mode: "per_world" (one world per player) or "single_world" (all islands in one world)
sharedWorldName String "skyblock_islands" World name for single_world mode
singleWorldSpacing Integer 500 Distance between island centers in single_world mode

Island Size Tiers

Controls island boundary sizes in single_world mode with barriers.

Field Type Default Description
tier1Size Integer 50 Tier 1 island radius (starting size)
tier2Size Integer 100 Tier 2 island radius
tier3Size Integer 150 Tier 3 island radius
tier4Size Integer 200 Tier 4 island radius (maximum)
barrierBlockId String "Barrier" Block type for invisible barriers around islands

Island Size

Size values represent the radius in blocks from the island center. A tier1Size of 50 means a 100x100 block area.

Island Upgrade Costs

Field Type Default Description
upgradeCurrencyType String "score" Upgrade currency: "score" (island score) or "economy" (money)
tier2UpgradeCost Long 10000 Cost to upgrade from tier 1 to tier 2
tier3UpgradeCost Long 50000 Cost to upgrade from tier 2 to tier 3
tier4UpgradeCost Long 200000 Cost to upgrade from tier 3 to tier 4

Border Visualization

Particle effects displayed near island edges to show boundaries.

Field Type Default Description
borderVisualizationEnabled Boolean true Enable/disable border particle effects
borderVisualizationParticle String "Shield_Block" Particle system ID for border effect
borderVisualizationDistance Integer 5 Distance in blocks from edge to trigger particles (when useTierSize is false)
borderVisualizationUseTierSize Boolean false Always show particles at tier size boundary (visible from anywhere)
borderVisualizationScale Float 1.5 Scale multiplier for particle effect

Fly Settings

Field Type Default Description
disableFlyOnLeave Boolean true Disable fly mode when player leaves their island

Island Creation Settings

Field Type Default Description
showCreateUI Boolean true Show mode selection UI (normal/hardcore) or create directly with /island create [mode]
allowModes Array ["normal", "hardcore"] Allowed island modes for creation
clearInventoryOnReset Boolean true Clear player inventory when resetting island (hardcore always clears)

Restricting Island Modes

Remove "hardcore" from allowModes to disable hardcore mode entirely. Remove "normal" to force hardcore-only.

Allowed Worlds

Worlds where players can travel freely without being pulled back to their island.

Field Type Default Description
allowedWorlds Array [] List of world names where players can freely travel

Format:

{
  "allowedWorlds": ["world_nether", "world_end", "lobby"]
}

Instance Worlds

Worlds starting with "instance-" (dungeon portals) are automatically allowed.

Void Death Prevention

Settings for preventing player deaths from falling into the void.

Field Type Default Description
allowVoidDeath Boolean false Allow players to die from void (false = teleport back to island)
voidDeathTeleportLevel Integer 0 Y level at which players get teleported back
voidDeathWorlds Array ["skyblock_islands"] Worlds where void death prevention is active (single_world mode only)

Mode-Specific Behavior

  • per_world mode: Uses the allowVoidDeath boolean
  • single_world mode: Checks if world is in voidDeathWorlds list

Spawn

Custom spawn location configuration for the /spawn command.

Field Type Default Description
enabled Boolean true Enable/disable custom spawn system
messageEnabled Boolean true Enable/disable spawn welcome messages
worldName String "" Spawn world name (empty or "default" uses default world)
x Double 0 X coordinate
y Double 65 Y coordinate
z Double 0 Z coordinate
yaw Float 0 Horizontal rotation (0-360 degrees)
pitch Float 0 Vertical rotation (-90 to 90 degrees)

Example:

{
  "spawn": {
    "enabled": true,
    "messageEnabled": true,
    "worldName": "world",
    "x": 0.5,
    "y": 65.0,
    "z": 0.5,
    "yaw": 90.0,
    "pitch": 0.0
  }
}

Setting Spawn Location

Use /islandadmin setspawn while standing at the desired location to automatically update these coordinates.


Starter Items

Items placed in the starter chest when a new island is created. Separate item lists for normal and hardcore modes.

Normal Mode Items (Default)

Item ID Quantity Purpose
Furniture_Crude_Bed 1 Set spawn point
Tool_Pickaxe_Wood 1 Basic mining
Tool_Hatchet_Crude 1 Tree chopping
Tool_Shovel_Crude 1 Digging
Plant_Sapling_Beech 4 Tree farming
Plant_Seeds_Lettuce_Eternal 8 Crop farming
Plant_Seeds_Carrot_Eternal 8 Crop farming
*Container_Bucket_State_Filled_Water 2 Cobblestone generator
*Container_LBucket_State_Filled_Water 1 Lava for generator
Food_Pie_Apple 8 Food
Food_Fish_Raw 4 Food
Wood_Oak_Trunk_Full 16 Building materials

Hardcore Mode Items (Default)

Item ID Quantity Purpose
*Container_Bucket_State_Filled_Water 1 Cobblestone generator
*Container_LBucket_State_Filled_Water 1 Lava for generator

Configuration Format

{
  "starterItems": {
    "normalItems": [
      {
        "id": "Furniture_Crude_Bed",
        "quantity": 1
      },
      {
        "id": "Tool_Pickaxe_Wood",
        "quantity": 1
      }
    ],
    "hardcoreItems": [
      {
        "id": "*Container_Bucket_State_Filled_Water",
        "quantity": 1
      }
    ]
  }
}

Item ID Prefixes

Items with * prefix (like *Container_Bucket_State_Filled_Water) use special state handling. Consult Hytale item ID documentation for valid item IDs.


Shop

Built-in shop system configuration.

Field Type Default Description
enabled Boolean true Enable/disable shop system
provider String "self" Shop provider: "self" (built-in) or "theeconomy" (external plugin)
hardcorePriceMultiplier Double 2.0 Price multiplier for hardcore island players

Example:

{
  "shop": {
    "enabled": true,
    "provider": "self",
    "hardcorePriceMultiplier": 2.5
  }
}

Hardcore Price Multiplier

Hardcore players pay more for items to balance the increased difficulty. Set to 1.0 to disable this feature.


Visit Requests

Configuration for requesting to visit private islands.

Field Type Default Description
enabled Boolean true Enable/disable visit request system
expireSeconds Integer 300 Time in seconds before requests expire (default: 5 minutes)
maxRequestsPerPlayer Integer 5 Maximum pending requests per player

Example:

{
  "visitRequests": {
    "enabled": true,
    "expireSeconds": 600,
    "maxRequestsPerPlayer": 10
  }
}


Challenges

Island challenge system configuration.

Field Type Default Description
enabled Boolean true Enable/disable challenge system

Example:

{
  "challenges": {
    "enabled": true
  }
}

Challenge Data

Challenge definitions are stored in challenges.json. This setting only enables/disables the system.


Auction House

Player-to-player marketplace configuration.

Field Type Default Description
enabled Boolean true Enable/disable auction house
listingDurationHours Integer 24 Default listing duration in hours
minPrice Double 1.0 Minimum price for items not in shop
maxListingsPerPlayer Integer 10 Maximum active listings per player
broadcastListings Boolean true Announce new listings in chat
listingFee Double 0.0 Fee to create listing (0 = free)
saleTax Double 0.05 Tax on sales as decimal (0.05 = 5%)
listingCooldownSeconds Integer 3 Cooldown in seconds between placing auctions

Example:

{
  "auctionHouse": {
    "enabled": true,
    "listingDurationHours": 48,
    "minPrice": 5.0,
    "maxListingsPerPlayer": 20,
    "broadcastListings": false,
    "listingFee": 10.0,
    "saleTax": 0.10,
    "listingCooldownSeconds": 5
  }
}

Economic Balance

Use listingFee and saleTax to create money sinks and prevent economy inflation.


Block Stacking

Allows stacking multiple blocks in a single location to save space.

Field Type Default Description
enabled Boolean true Enable/disable block stacking
maxStackSize Integer 64000 Maximum blocks per stack
stackableBlocks Array See below List of block ID patterns for stackable blocks

Default Stackable Blocks

The stackableBlocks array uses partial matching patterns:

Categories: - Soil: soil_dirt, soil_sand, soil_gravel, soil_clay, soil_mud, soil_snow - Rock: rock_stone, rock_sandstone, rock_basalt, rock_shale - Ores: ore_iron, ore_gold, ore_cobalt, ore_thorium, ore_copper - Wood: wood_oak, wood_birch, wood_pine, wood_aspen, wood_beech, wood_burnt - Gems: rock_gem, rock_crystal - Other: cloth_block, glass

Example:

{
  "blockStack": {
    "enabled": true,
    "maxStackSize": 100000,
    "stackableBlocks": [
      "soil_dirt",
      "rock_stone",
      "ore_iron",
      "wood_oak"
    ]
  }
}

Partial Matching

Pattern "ore_iron" matches Ore_Iron_Shale, Ore_Iron_Stone, etc. This allows flexible block categorization.


Cinematic

New player intro cinematic sequence configuration.

Basic Settings

Field Type Default Description
enabled Boolean true Enable/disable cinematic system
showToNewPlayers Boolean false Auto-play cinematic for new players on first join
defaultCinematic String "default" Name of the default cinematic sequence

Post-Processing Effects

Visual effects applied during cinematic playback.

Field Type Default Description
postFx.enabled Boolean true Enable/disable post-processing effects
postFx.bloomIntensity Float 0.4 Bloom effect intensity (glow)
postFx.bloomPower Float 10.0 Bloom effect power
postFx.sunshaftIntensity Float 0.5 God rays intensity
postFx.sunshaftScale Float 5.0 God rays scale
postFx.sunIntensity Float 0.3 Sun brightness multiplier

Example:

{
  "cinematic": {
    "enabled": true,
    "showToNewPlayers": true,
    "defaultCinematic": "intro_tour",
    "postFx": {
      "enabled": true,
      "bloomIntensity": 0.5,
      "bloomPower": 12.0,
      "sunshaftIntensity": 0.6,
      "sunshaftScale": 6.0,
      "sunIntensity": 0.4
    }
  }
}

Cinematic Locations

Camera paths and locations are configured in cinematics.json, not in the main config. The config only controls basic system settings.


Fly Time

Timed fly mode system for temporary flight permissions (e.g., voting rewards).

Field Type Default Description
enabled Boolean true Enable/disable timed fly system
pauseOnDisconnect Boolean true Pause fly timer when player disconnects
gracePeriodSeconds Integer 5 Grace period in seconds before fly timer starts counting down
warningThresholds Array [300, 60, 30, 10, 5] Time remaining thresholds (in seconds) to warn player
hudEnabled Boolean true Show fly time remaining on HUD

Example:

{
  "flyTime": {
    "enabled": true,
    "pauseOnDisconnect": true,
    "gracePeriodSeconds": 10,
    "warningThresholds": [600, 300, 120, 60, 30, 10, 5],
    "hudEnabled": true
  }
}

Unlimited vs Timed Fly

  • Unlimited fly: htskyblock.island.fly permission (not affected by this config)
  • Timed fly: Granted via /islandadmin flytime command, uses this config

Example: Complete Configuration

{
  "language": "en",
  "economy": {
    "enabled": true,
    "provider": "self",
    "startingBalance": 100.0,
    "currencySymbol": "$",
    "currencyFormat": "#,##0.00"
  },
  "generator": {
    "enabled": true,
    "oreChance": 0.20,
    "regenDelayMs": 1000,
    "spawnRubble": true,
    "ores": [
      {"blockId": "Ore_Copper_Stone", "weight": 35},
      {"blockId": "Ore_Iron_Stone", "weight": 30}
    ],
    "tiers": [
      {
        "name": "vip",
        "permission": "htskyblock.generator.vip",
        "oreChance": 0.25,
        "overrides": {
          "Ore_Gold_Stone": 15.0
        }
      }
    ]
  },
  "island": {
    "enabled": true,
    "autoTeleportToIsland": true,
    "mode": "single_world",
    "sharedWorldName": "skyblock_islands",
    "singleWorldSpacing": 500,
    "tier1Size": 50,
    "tier2Size": 100,
    "tier3Size": 150,
    "tier4Size": 200,
    "resetCooldownHours": 24,
    "allowVoidDeath": false,
    "voidDeathTeleportLevel": 0
  },
  "spawn": {
    "enabled": true,
    "worldName": "",
    "x": 0,
    "y": 65,
    "z": 0
  },
  "shop": {
    "enabled": true,
    "provider": "self",
    "hardcorePriceMultiplier": 2.0
  },
  "auctionHouse": {
    "enabled": true,
    "listingDurationHours": 24,
    "saleTax": 0.05,
    "maxListingsPerPlayer": 10
  },
  "blockStack": {
    "enabled": true,
    "maxStackSize": 64000
  },
  "cinematic": {
    "enabled": true,
    "showToNewPlayers": false
  },
  "flyTime": {
    "enabled": true,
    "pauseOnDisconnect": true,
    "hudEnabled": true
  }
}