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
allowVoidDeathboolean - single_world mode: Checks if world is in
voidDeathWorldslist
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.flypermission (not affected by this config) - Timed fly: Granted via
/islandadmin flytimecommand, 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
}
}