Skip to main content

Configuration Reference

Complete reference for all HyperFactions configuration options.

Configuration Reference

This page provides a complete reference for all 47 HyperFactions configuration options. For a guide-style walkthrough, see Configuration.

For Server Owners

This reference documents all available configuration options. Most servers can use the defaults - only customize what you need.

Configuration File Location

mods/com.hyperfactions_HyperFactions/config.json

Reload Required

Changes require /f admin reload or a server restart to take effect.

Configuration Sections

The config is organized into 14 sections with 47 total options:

SectionOptionsPurpose
faction4Faction naming and member limits
power6Power system mechanics
claims6Territory claiming rules
combat9Combat and spawn protection
relations2Ally and enemy limits
invites2Invitation expiration
stuck2Stuck command timing
teleport4Home teleport settings
updates3Update checking
autoSave2Auto-save settings
messages2Message formatting
gui1GUI settings
territoryNotifications1Enter/exit notifications
worldMap1Map marker settings
permissions2Permission behavior

faction

Settings for faction names and member limits.

KeyTypeDefaultRangeDescription
maxMembersint50≥1Maximum members per faction
maxNameLengthint241-64Maximum faction name length
minNameLengthint31-maxMinimum faction name length
allowColorsbooltrue-Allow color codes in faction names

Name Validation

Faction names must be between minNameLength and maxNameLength characters. If allowColors is true, color codes don't count toward the length.


power

Power system settings that govern territory capacity and warfare.

KeyTypeDefaultRangeDescription
maxPlayerPowerdouble20.0≥0Maximum power per player
startingPowerdouble10.00-maxInitial power for new players
powerPerClaimdouble2.0≥0Power required per claim
deathPenaltydouble1.0≥0Power lost on death
regenPerMinutedouble0.1≥0Power regenerated per minute
regenWhenOfflineboolfalse-Regenerate power while offline

Power Calculations

Regeneration rate examples:

regenPerMinutePer HourFull Recovery (0→20)
0.053 power~6.7 hours
0.1 (default)6 power~3.3 hours
0.212 power~1.7 hours

Max claims formula:

maxClaims = min(floor(totalFactionPower / powerPerClaim), claims.maxClaims)

claims

Territory claiming rules and restrictions.

KeyTypeDefaultRangeDescription
maxClaimsint100≥0Hard cap on claims per faction
onlyAdjacentboolfalse-Require claims to be adjacent
decayEnabledbooltrue-Enable inactive claim decay
decayDaysInactiveint30≥1Days before decay starts
worldWhitelistarray[]-Only allow claims in these worlds
worldBlacklistarray[]-Block claims in these worlds

World Filtering

World filtering follows these rules:

  1. If worldWhitelist is not empty, only listed worlds allow claims
  2. If worldWhitelist is empty but worldBlacklist is not, all worlds except listed ones allow claims
  3. If both are empty, all worlds allow claims
{
  "claims": {
    "worldWhitelist": ["default", "dungeon_realm"],
    "worldBlacklist": []
  }
}

combat

Combat settings including PvP rules and spawn protection.

KeyTypeDefaultRangeDescription
tagDurationSecondsint15≥0Combat tag duration in seconds
allyDamageboolfalse-Allow damage to allies
factionDamageboolfalse-Allow damage to faction members
taggedLogoutPenaltybooltrue-Penalize logout while combat tagged
logoutPowerLossdouble1.0≥0Power lost on combat logout

Spawn Protection (nested)

KeyTypeDefaultRangeDescription
spawnProtection.enabledbooltrue-Enable spawn protection
spawnProtection.durationSecondsint5≥0Protection duration
spawnProtection.breakOnAttackbooltrue-Remove protection on attack
spawnProtection.breakOnMovebooltrue-Remove protection on movement

Combat Tagging

When a player is combat tagged, they cannot teleport or use /f stuck. If they log out while tagged and taggedLogoutPenalty is true, they lose logoutPowerLoss power.


relations

Diplomatic relationship limits.

KeyTypeDefaultRangeDescription
maxAlliesint10≥-1Maximum ally factions (-1 = unlimited)
maxEnemiesint-1≥-1Maximum enemy factions (-1 = unlimited)

Balancing Alliances

Limiting allies encourages faction conflict and prevents server-wide alliance networks. A value of 3-5 allies creates interesting diplomacy.


invites

Invitation and join request expiration.

KeyTypeDefaultRangeDescription
inviteExpirationMinutesint5≥1Minutes before invite expires
joinRequestExpirationHoursint24≥1Hours before join request expires

stuck

Stuck command settings for escaping enemy territory.

KeyTypeDefaultRangeDescription
warmupSecondsint30≥0Warmup before teleport
cooldownSecondsint300≥0Cooldown between uses

Stuck Command

The /f stuck command teleports players to the nearest safe (unclaimed) chunk. The long warmup prevents combat exploitation.


teleport

Faction home teleportation settings.

KeyTypeDefaultRangeDescription
warmupSecondsint5≥0Warmup before teleport
cooldownSecondsint300≥0Cooldown between uses (5 minutes)
cancelOnMovebooltrue-Cancel warmup on movement
cancelOnDamagebooltrue-Cancel warmup on taking damage

updates

Automatic update checking.

KeyTypeDefaultDescription
enabledbooltrueEnable update checks
urlstringGitHub APIUpdate check URL
releaseChannelstring"stable"Release channel ("stable" or "prerelease")

autoSave

Automatic data saving.

KeyTypeDefaultRangeDescription
enabledbooltrue-Enable auto-save
intervalMinutesint5≥1Minutes between saves

messages

Message formatting.

KeyTypeDefaultDescription
prefixstring\u00A7b[HyperFactions]\u00A7r Message prefix (color codes)
primaryColorhex#00FFFFPrimary accent color

gui

GUI settings.

KeyTypeDefaultDescription
titlestring"HyperFactions"Main GUI title

territoryNotifications

Territory enter/exit notifications.

KeyTypeDefaultDescription
enabledbooltrueShow notifications when entering/leaving territory

worldMap

World map integration.

KeyTypeDefaultDescription
enabledbooltrueShow faction claims on world map

permissions

Permission system behavior.

KeyTypeDefaultDescription
adminRequiresOpbooltrueAdmin commands require OP if no permission system
fallbackBehaviorstring"deny"Behavior when no permission system ("deny" or "allow")

Permission Fallback

When HyperPerms is not installed:

  • deny (default): Players need OP for admin commands
  • allow: All players can use basic commands (not recommended)

Default Configuration

This is the complete default configuration file:

{
  "configVersion": 2,
  "faction": {
    "maxMembers": 50,
    "maxNameLength": 24,
    "minNameLength": 3,
    "allowColors": true
  },
  "power": {
    "maxPlayerPower": 20.0,
    "startingPower": 10.0,
    "powerPerClaim": 2.0,
    "deathPenalty": 1.0,
    "regenPerMinute": 0.1,
    "regenWhenOffline": false
  },
  "claims": {
    "maxClaims": 100,
    "onlyAdjacent": false,
    "decayEnabled": true,
    "decayDaysInactive": 30,
    "worldWhitelist": [],
    "worldBlacklist": []
  },
  "combat": {
    "tagDurationSeconds": 15,
    "allyDamage": false,
    "factionDamage": false,
    "taggedLogoutPenalty": true,
    "logoutPowerLoss": 1.0,
    "spawnProtection": {
      "enabled": true,
      "durationSeconds": 5,
      "breakOnAttack": true,
      "breakOnMove": true
    }
  },
  "relations": {
    "maxAllies": 10,
    "maxEnemies": -1
  },
  "invites": {
    "inviteExpirationMinutes": 5,
    "joinRequestExpirationHours": 24
  },
  "stuck": {
    "warmupSeconds": 30,
    "cooldownSeconds": 300
  },
  "teleport": {
    "warmupSeconds": 5,
    "cooldownSeconds": 300,
    "cancelOnMove": true,
    "cancelOnDamage": true
  },
  "updates": {
    "enabled": true,
    "url": "https://api.github.com/repos/ZenithDevHQ/HyperFactions/releases/latest",
    "releaseChannel": "stable"
  },
  "autoSave": {
    "enabled": true,
    "intervalMinutes": 5
  },
  "messages": {
    "prefix": "\u00A7b[HyperFactions]\u00A7r ",
    "primaryColor": "#00FFFF"
  },
  "gui": {
    "title": "HyperFactions"
  },
  "territoryNotifications": {
    "enabled": true
  },
  "worldMap": {
    "enabled": true
  },
  "permissions": {
    "adminRequiresOp": true,
    "fallbackBehavior": "deny"
  }
}

Configuration Profiles

PvP-Focused Server

High-stakes combat with meaningful consequences:

{
  "power": {
    "maxPlayerPower": 15,
    "startingPower": 10,
    "deathPenalty": 2.0,
    "regenPerMinute": 0.15,
    "powerPerClaim": 1.5
  },
  "combat": {
    "tagDurationSeconds": 20,
    "taggedLogoutPenalty": true,
    "logoutPowerLoss": 2.0
  },
  "relations": {
    "maxAllies": 3,
    "maxEnemies": -1
  }
}

Casual/Building Server

Relaxed settings for creative communities:

{
  "power": {
    "maxPlayerPower": 50,
    "startingPower": 25,
    "deathPenalty": 0,
    "regenPerMinute": 0.05,
    "powerPerClaim": 5
  },
  "combat": {
    "tagDurationSeconds": 0,
    "factionDamage": false,
    "allyDamage": false
  },
  "relations": {
    "maxAllies": -1,
    "maxEnemies": 0
  }
}

Roleplay Server

Balanced settings encouraging diplomacy:

{
  "power": {
    "maxPlayerPower": 30,
    "startingPower": 15,
    "deathPenalty": 0.5,
    "regenPerMinute": 0.1,
    "powerPerClaim": 3
  },
  "relations": {
    "maxAllies": 5,
    "maxEnemies": 5
  },
  "claims": {
    "onlyAdjacent": true,
    "decayDaysInactive": 14
  }
}

Module Configuration Files

In addition to the main config.json, HyperFactions uses module configuration files stored in the config/ subdirectory. Each module can be enabled/disabled independently.

Configuration File Structure

mods/com.hyperfactions_HyperFactions/
├── config.json                       ← Main configuration (documented above)
└── config/
    ├── backup.json                   ← Backup system settings
    ├── chat.json                     ← Chat formatting and relation colors
    ├── debug.json                    ← Debug logging options
    ├── economy.json                  ← Economy integration
    └── faction-permissions.json      ← Default territory permissions

config/backup.json

Controls the automatic backup system using GFS (Grandfather-Father-Son) rotation.

KeyTypeDefaultDescription
enabledbooltrueEnable automatic backups
hourlyRetentionint24Hourly backups to keep
dailyRetentionint7Daily backups to keep
weeklyRetentionint4Weekly backups to keep
manualRetentionint10Manual backups to keep (0 = unlimited)
onShutdownbooltrueCreate backup on server shutdown
{
  "enabled": true,
  "hourlyRetention": 24,
  "dailyRetention": 7,
  "weeklyRetention": 4,
  "manualRetention": 10,
  "onShutdown": true
}

config/chat.json

Controls how faction tags appear in chat and relation-based color coding.

KeyTypeDefaultDescription
enabledbooltrueEnable chat formatting
formatstringSee belowChat format template
tagDisplaystring"tag"Display mode: "tag", "name", or "none"
tagFormatstringSee belowFormat for the faction tag
noFactionTagstring""Tag for players without a faction
prioritystring"LATE"Event priority: EARLIEST, EARLY, NORMAL, LATE, LATEST
relationColors.ownstring"#00FF00"Color for same-faction members (green)
relationColors.allystring"#FF69B4"Color for allies (pink)
relationColors.neutralstring"#AAAAAA"Color for neutral factions (gray)
relationColors.enemystring"#FF0000"Color for enemies (red)

Format templates:

  • format uses placeholders for chat message formatting
  • tagFormat uses the tag placeholder for the faction tag display

Available placeholders: faction_tag, prefix, player, suffix, message, tag (wrap in curly braces)

{
  "enabled": true,
  "format": "{faction_tag}{prefix}{player}{suffix}: {message}",
  "tagDisplay": "tag",
  "tagFormat": "[{tag}] ",
  "noFactionTag": "",
  "priority": "LATE",
  "relationColors": {
    "own": "#00FF00",
    "ally": "#FF69B4",
    "neutral": "#AAAAAA",
    "enemy": "#FF0000"
  }
}

config/debug.json

Controls debug logging output by category.

KeyTypeDefaultDescription
enabledboolfalseEnable debug module
enabledByDefaultboolfalseEnable all categories by default
logToConsolebooltrueLog debug messages to console
categories.powerboolfalseDebug power calculations
categories.claimboolfalseDebug claim operations
categories.combatboolfalseDebug combat tagging
categories.protectionboolfalseDebug protection checks
categories.relationboolfalseDebug relation changes
categories.territoryboolfalseDebug territory notifications
{
  "enabled": false,
  "enabledByDefault": false,
  "logToConsole": true,
  "categories": {
    "power": false,
    "claim": false,
    "combat": false,
    "protection": false,
    "relation": false,
    "territory": false
  }
}

Runtime Debug Toggle

Use /f admin debug <category> to toggle debug categories at runtime without restarting the server.


config/economy.json

Controls faction economy integration (for future economy features).

KeyTypeDefaultDescription
enabledbooltrueEnable economy features
currencyNamestring"dollar"Singular currency name
currencyNamePluralstring"dollars"Plural currency name
currencySymbolstring"$"Currency symbol
startingBalancedouble0.0Starting balance for new factions
{
  "enabled": true,
  "currencyName": "dollar",
  "currencyNamePlural": "dollars",
  "currencySymbol": "$",
  "startingBalance": 0.0
}

config/faction-permissions.json

Controls default territory permissions for new factions and server-enforced permission locks.

Structure:

  • defaults - Default permissions for new factions
  • locks - Which permissions factions cannot change
  • forced - Values to use when a permission is locked
PermissionDefaultDescription
outsiderBreakfalseNon-members can break blocks
outsiderPlacefalseNon-members can place blocks
outsiderInteractfalseNon-members can interact
allyBreakfalseAllies can break blocks
allyPlacefalseAllies can place blocks
allyInteracttrueAllies can interact
memberBreaktrueMembers can break blocks
memberPlacetrueMembers can place blocks
memberInteracttrueMembers can interact
pvpEnabledtruePvP allowed in territory
officersCanEditfalseOfficers can edit permissions
{
  "enabled": true,
  "defaults": {
    "outsiderBreak": false,
    "outsiderPlace": false,
    "outsiderInteract": false,
    "allyBreak": false,
    "allyPlace": false,
    "allyInteract": true,
    "memberBreak": true,
    "memberPlace": true,
    "memberInteract": true,
    "pvpEnabled": true,
    "officersCanEdit": false
  },
  "locks": {
    "outsiderBreak": false,
    "outsiderPlace": false,
    "outsiderInteract": false,
    "allyBreak": false,
    "allyPlace": false,
    "allyInteract": false,
    "memberBreak": false,
    "memberPlace": false,
    "memberInteract": false,
    "pvpEnabled": false,
    "officersCanEdit": false
  },
  "forced": {
    "outsiderBreak": false,
    "outsiderPlace": false,
    "outsiderInteract": false,
    "allyBreak": false,
    "allyPlace": false,
    "allyInteract": true,
    "memberBreak": true,
    "memberPlace": true,
    "memberInteract": true,
    "pvpEnabled": true,
    "officersCanEdit": false
  }
}

Lock Behavior

When a permission is locked (locks.permName = true), factions cannot change it and the value from forced.permName is always used instead.


Related Topics