Skip to content

Releases: HyperSystemsDev/HyperFactions

HyperFactions v0.10.2

28 Feb 20:10

Choose a tag to compare

Server Version: 2026.02.19-1a311a592

What's New in v0.10.2

Added

PvE Damage Permission Flag

  • New per-role faction permission flag: PveDamage (4 flags total across outsider/ally/member/officer)
  • Faction owners can control who can kill mobs in their territory per relationship level
  • Defaults: member/officer = allowed, ally = allowed, outsider = denied
  • Configurable in config/faction-permissions.json with server lock support
  • Territory protection check: players without PvE permission cannot damage mobs in claimed territory
  • Faction settings, admin faction settings, and create faction GUIs all include PveDamage toggles
  • CrateUse and NpcTame toggles added to Create Faction GUI for parity with Faction Settings (9 → 12 permission rows)

Protection Message Debounce

  • New centralized debounce system prevents chat spam from repeated protection denial messages
  • Per-player, per-action cooldown (2 seconds) — different action types have independent cooldowns
  • Integrated across all 9 protection systems: block break/place/use, harvest/pickup, fluid place/refill, NPC interact, PvP damage, crop harvest
  • Automatic cleanup of stale entries every 30 seconds

What's New in v0.10.1

Added

PvE Damage Zone Flag

  • New pve_damage zone flag: controls whether players can damage mobs/NPCs within a zone
  • Added to Combat category in admin zone settings GUI
  • Safe zone preset defaults to PvE damage disabled; PvP zone preset defaults to enabled
  • Renamed mob_damage display name to "Take Mob Damage" for clarity; new flag displays as "Give Mob Damage"

Fixed

  • Mob-on-mob damage (both attacker and target UUIDs null) no longer triggers protection checks in mixin hook

HyperFactions v0.10.0

27 Feb 22:53

Choose a tag to compare

[0.10.0] - 2026-02-27

Closes: #26, #59, #61, #62, #64, #65, #66, #67, #68, #69, #70, #71, #72

Server Version: 2026.02.19-1a311a592

Added

Gameplay

Per-World Settings (#59)

  • New config/worlds.json module config for per-world behavior overrides
  • Four settings per world: claiming, powerLoss, friendlyFireFaction, friendlyFireAlly
  • Wildcard pattern support using % (e.g., arena_% matches arena_1, arena_pvp)
  • Priority resolution: exact name match → wildcard patterns (fewer wildcards = higher priority) → default policy
  • claimBlacklist for unconditionally blocking claims in specific worlds
  • Legacy worldWhitelist/worldBlacklist in CoreConfig still works as fallback when worlds module is disabled
  • Admin commands: /f admin world list|info|set|reset

Faction Leaderboard (#67)

  • New /f leaderboard command (alias /f top) with sortable rankings
  • Sort modes: POWER, TERRITORY, BALANCE, MEMBERS, K/D (default)
  • 10 entries per page with pagination, numbered rankings
  • Integrated into faction nav bar between map and relations
  • Aggregated faction K/D ratio from member stats with configurable background cache refresh (gui.leaderboardKdRefreshSeconds, default 300s)

Faction Power Hardcore Mode (#69)

  • New power.hardcoreMode config option (default: false)
  • Shared faction power pool — deaths/kills affect the faction total directly
  • No per-death cap or floor — faction power can reach 0
  • Power regen applies to the faction pool when enabled

Persistent Admin Bypass (#71)

  • Admin bypass state now persists across server restarts
  • Stored in PlayerData, restored on connect if player has hyperfactions.admin.use
  • Automatically cleared if player no longer has the permission

Configurable Role Display Names

  • New roles section in config/factions.json for custom role names and abbreviations
  • Server owners can rename roles (e.g., "Boss" / "Underboss" / "Soldier") and set short forms (e.g., "BO" / "UB" / "SO")
  • New placeholders: factions_role_display (custom name), factions_role_short (abbreviation)
  • All GUIs, commands, and log messages use configured display names
  • Existing factions_role placeholder unchanged (returns internal name)

Instance World Protection

  • Default instance-% wildcard rule in config/worlds.json blocks claiming in temporary instance worlds (power loss defers to global config)
  • /f sethome now blocked in worlds where claiming is disallowed
  • Automatic cleanup of stale claims and homes in disallowed worlds on startup and config reload

Protection

Capture Crate & NPC Tame Protection

  • 2 new per-role faction permission flags: CrateUse (covers both crate pickup and placement), NpcTame (8 new flags total across outsider/ally/member/officer)
  • 3 new zone flags: crate_pickup, crate_place, npc_tame — separate zone-level control for crate pickup, crate placement, and NPC taming
  • Faction owners can independently control capture crate use and NPC taming per relationship level
  • Defaults: member/officer = allowed, ally/outsider = denied
  • Configurable in config/faction-permissions.json with server lock support
  • NPC interaction protection handler uses NPC_TAME interaction type for event-based NPC interaction blocking
  • Requires HyperProtect-Mixin v1.0.0+ for mixin-based protection (CaptureCrateGate, NPC entries in SimpleInstantInteractionGate)

Zone Notification Settings

  • Per-zone notification toggle: suppress entry/leave title notifications for specific zones
  • Customizable upper title text (default: zone status like "PvP Disabled")
  • Customizable lower title text (default: zone name)
  • Admin commands: /f admin zone notify <zone> <true|false>, /f admin zone title <zone> upper|lower <text|clear>
  • Zone info (/f admin zone info) now displays notification settings

GUI & Admin

Activity Log (#68)

  • Wired existing LogsViewerPage into faction nav bar
  • /f logs command for viewing faction activity
  • New AdminActivityLogPage aggregating logs from all factions
  • Type filter, player filter, time filter (1h/24h/7d)
  • /f admin log command and admin nav bar integration

Admin K/D Management

  • Per-player K/D reset button on admin player info page (two-column redesign)
  • New "Actions" page in admin nav with global K/D reset (two-step confirmation)
  • Admin commands: /f admin info [faction] and /f admin who [player] to open admin GUIs directly

Admin Info Page Redesign

  • Admin player info now uses two-column layout: stats/info/history on left, controls on right
  • Admin player info now mirrors /f who data: first joined, last online, faction card with View Faction button, and scrollable membership history
  • Admin faction info now uses two-column layout: leadership on left, power/economy/disband controls on right
  • Disband button added to admin faction info page (danger zone section)

Admin Version Page

  • New /f admin version command — opens GUI for players, prints integration status for console
  • Admin Version page in nav bar (after Help) showing HyperFactions version, server version, Java version
  • Integration status display: HyperPerms, LuckPerms, VaultUnlocked, HytaleNative, HyperProtect, OrbisGuard Mixins, OrbisGuard API, Mixin Hooks, Gravestones, PlaceholderAPI, WiFlow PAPI, Treasury
  • Treasury status shows economy provider name via VaultUnlocked (e.g. "Active (Ecotale)")
  • Color-coded status: green (active), yellow (installed but limited), gray (not found)

Admin Zone Properties Page

  • New consolidated zone properties page combining name editing, type changing, and notification settings
  • Zone list entry replaces separate "Rename" and "Type" buttons with single "Settings" button
  • Type change modal navigates back to properties page (instead of zone list) when accessed from properties
  • Flags page back button returns to properties when opened from properties context

Config & Storage

Config Restructure — Split config.json into Module Configs

  • New config/factions.json for all faction gameplay settings (faction, power, claims, combat, relations, invites, stuck)
  • New config/server.json for server behavior settings (teleport, autoSave, messages, gui, permissions, updates, configVersion)
  • 9 new claim protection server overrides in config/factions.json under claims:
    • outsiderPickupAllowed — control outsider item pickup in claims (previously hardcoded deny)
    • outsiderDropAllowed — control outsider item drop in claims
    • factionlessExplosionsAllowed, enemyExplosionsAllowed, neutralExplosionsAllowed — granular explosion control replacing allowExplosionsInClaims
    • fireSpreadAllowed — control fire spread in claims (previously hardcoded block)
    • factionlessDamageAllowed, enemyDamageAllowed, neutralDamageAllowed — outsider entity damage control
  • V5→V6 config migration: automatically splits config.json, transforms allowExplosionsInClaims into 3 granular flags, preserves all existing values
  • Legacy fallback: plugin loads from old config.json if migration fails or hasn't run
  • Treasury permission flags (treasuryDeposit, treasuryWithdraw, treasuryTransfer) added to faction-permissions.json for server-level defaults and locks
  • territoryNotifications.enabled moved to config/announcements.json
  • Allow Explosions in Claims (#65) — original territory.allowExplosionsInClaims toggle, superseded by the 3 granular explosion flags above

Data Directory Restructure

  • All data files now live under data/ subdirectory (factions, players, chat, economy, zones, invites, join requests)
  • DataV0ToV1Migration automatically moves existing data files into data/ on first startup
  • data/.version marker tracks data layout version independently from config version
  • Fresh installs create data/ directory directly (no migration needed)

Atomic Writes & Backup Expansion

  • All storage types now use StorageUtils.writeAtomic() for crash-safe writes (economy, invites, join requests upgraded from direct writes)
  • .bak files cleaned up after successful atomic writes — no more indefinite accumulation
  • Backup system now includes chat history, economy, invites, and join requests in ZIP archives

Placeholders

Expanded Placeholders (#72)

  • Colored variants: name_colored, tag_colored, name_colored_legacy, tag_colored_legacy
  • Legacy color code: color_legacy (nearest &X code from hex color)
  • Relational placeholders (PAPI only): rel_factions_relation, rel_factions_relation_color

Treasury Placeholders (#66)

  • treasury_balance — formatted via EconomyManager.formatCurrency()
  • treasury_balance_raw — raw Bi...
Read more

HyperFactions v0.9.0

23 Feb 02:30

Choose a tag to compare

[0.9.0] - 2026-02-22

Server Version: 2026.02.19-1a311a592

Closes: #10, #13, #14, #46, #50, #51, #52, #53, #55, #56, #57

Added

Granular Friendly Fire Flags

  • friendly_fire_faction: Controls whether same-faction members can damage each other (child of friendly_fire)
  • friendly_fire_ally: Controls whether allied faction members can damage each other (child of friendly_fire)
  • 3-level combat hierarchy: pvp_enabledfriendly_firefriendly_fire_faction / friendly_fire_ally. Projectile Damage and Mob Damage remain standalone
  • Recursive parent check: Admin zone settings GUI greys out grandchildren when any ancestor is OFF (e.g., faction/ally flags disabled when PvP is off)
  • Config fallback preserved: When zone friendly_fire is OFF, config.factionDamage and config.allyDamage still serve as independent overrides
  • Block Interact as Interaction parent: Moved Block Interact from the Building box into the Interaction box as the parent flag with indented children (Door Use, Container Use, etc.), matching the Mob Spawning pattern
  • Backward compatible: Existing zones with friendly_fire=true get both children defaulting to true (same behavior as before). No data migration needed

HyperProtect-Mixin Integration

  • ProtectionMixinBridge: Facade that auto-detects which mixin system(s) are available (HyperProtect-Mixin, OrbisGuard-Mixins, or both) and provides a unified API. New BOTH provider mode registers OG hooks for OG-handled features and HP hooks for HP’s unique features. Falls back to JAR file detection in earlyplugins/ when system properties aren’t set
  • HyperProtectIntegration: 20 hook wrappers using HyperProtect’s bridge-slot architecture (AtomicReferenceArray at hyperprotect.bridge), verdict protocol (ALLOW/DENY_WITH_MESSAGE/DENY_SILENT/DENY_MOD_HANDLES). Registers all hooks unconditionally with lazy bridge initialization (creates bridge if not yet present). Caches ChatFormatter MethodHandle at slot 15 for cross-classloader message formatting
  • Auto-download HyperProtect-Mixin: On startup, if HyperProtect-Mixin is not installed and autoDownload is enabled, downloads the latest release to earlyplugins/ and prompts for server restart. Disabled by default — server logs instructions for manual install or how to enable. Gracefully handles repositories with no published releases (logs info, no crash/error)
  • Auto-update checking for HyperProtect-Mixin: When HyperProtect-Mixin is installed, checks for newer versions on startup via GitHub Releases API and notifies admins with version comparison (e.g., "v1.0.0 -> v1.1.0"). Configurable via updates.hyperProtect.autoUpdate (default: true)
  • /f admin update mixin: Manual command to check for and download HyperProtect-Mixin updates (or initial install). Works regardless of auto-download config — creates an on-the-fly UpdateChecker if needed
  • /f admin update toggle-mixin-download: Runtime command to toggle HP-Mixin auto-download on/off, persisted to config
  • Config: updates.hyperProtect section: New nested config section with autoDownload (bool), autoUpdate (bool), and url (GitHub Releases API endpoint) settings for managing HyperProtect-Mixin lifecycle
  • 7 new zone flags: explosion_damage, fire_spread, block_place, hammer_use, builder_tools_use, teleporter_use, portal_use — all mixin-dependent, with SafeZone (false) and WarZone (true) defaults
  • New “Transport” zone flag category: Groups teleporter_use and portal_use flags
  • Unified "Transport" faction permission: Merged teleporterUse and portalUse into a single transportUse permission per role level (outsider/ally/member/officer). Both teleporter and portal interactions now check the same flag
  • ~15 new ProtectionChecker methods: shouldBlockExplosion, shouldBlockFireSpread, checkBuilderTool, checkTeleporter, checkPortal, shouldKeepInventory, shouldPreventDurability, canAccessContainer, and more
  • Admin zone settings GUI: Updated for 31 total flags (was 24), new flag categories, mixin provider indicator
  • Configurable power loss by death cause: New powerLossOnMobDeath and powerLossOnEnvironmentalDeath config options in the power section (both default true for backward compatibility). Set either to false to skip the death power penalty for that cause type while still incrementing kill/death counters and announcing gravestone locations. PvP deaths always incur power loss. Zone flag power_loss=false takes priority over these settings
  • Death cause tracking: DamageProtectionHandler now records the type of each damage event (PVP, MOB, ENVIRONMENTAL) that passes through protection checks into CombatTagManager, which PlayerDeathSystem reads at death time to apply the correct power loss policy
  • JitPack publishing: Added maven-publish plugin and jitpack.yml — other developers can now depend on HyperFactions via com.github.HyperSystemsDev:HyperFactions:<version> from JitPack
  • Standalone build support: Build resolves Hytale server version independently when built outside the monorepo (JitPack, CI)
  • Contributor docs: Updated CONTRIBUTING.md and README.md with soft dependency download instructions and CurseForge links
  • Developer docs: Updated README and API reference with JitPack dependency instructions, marked WiFlow/Gravestone libs as optional

New Player Experience GUI

  • Create faction page redesign: Two-column form combining name, tag, color picker, description, recruitment setting, and full territory permissions with live preview into a single screen. Permission toggles support parent-child hierarchy with server-locked flags greyed out
  • New player map terrain mode: New player territory map now respects terrain-map-enabled config, showing terrain imagery with semi-transparent claim overlays matching the faction map style. All claims shown as "Other" since new players have no faction
  • New player map OG rendering: OrbisGuard-protected regions shown on new player territory map in both flat and terrain modes with dynamic legend entry

Admin Tools

  • Admin zone map terrain mode: /f admin zone map now respects terrain-map-enabled config, showing terrain imagery behind semi-transparent zone overlays (75% opacity for current zone, 50% for other zones, 63% for faction claims). Uses ChunkMapAsset async pipeline matching the faction territory map pattern
  • Admin zone map OG rendering: OrbisGuard-protected regions shown on admin zone map in both flat and terrain modes with dynamic legend entry

OrbisGuard Compatibility

  • Hook chaining: All 11 OrbisGuard-Mixins hooks now chain with existing OG hooks instead of overwriting them. When OG registers hooks before HF, the originals are captured and called first — if OG denies the action (region protection), HF respects it; if OG allows, HF applies faction-based checks on top. Hooks are restored to originals on unregister
  • OrbisGuard API integration: New OrbisGuardIntegration class provides soft-dependency access to OG's region container via reflection and cached MethodHandles. Supports getRegionsAt() for point queries, canCreateClaim() for chunk-level AABB checks, and getLoadedManagers() for region enumeration
  • Claim blocking in OG regions: Claims are denied in any chunk that overlaps an OrbisGuard-protected region. Uses canCreateClaim API when available (checks corners, center, and full overlap), falls back to 5-point sampling (4 corners + center). Global (__global__) regions are excluded
  • World map OG region rendering: OrbisGuard regions are rendered on the world map (M key) as colored overlays using OG's 8-color palette with priority-based stacking, border detection, and opacity blending. Region candidates are pre-filtered per chunk via AABB overlap to minimize per-pixel work
  • Territory Map GUI OG rendering: Chunks overlapping OrbisGuard regions are shown as dark orange (#FF8C00) "Protected" cells in the /f map chunk grid. Click events are suppressed on protected chunks. Works in both flat and terrain rendering modes
  • Dynamic legend entry: When OrbisGuard is detected, a "Protected" legend entry with orange swatch is dynamically appended to the Territory Map GUI legend
  • RegionInfo record: Exposes OG region spatial data (id, world, type, priority, AABB bounds) with chunk coordinate helpers for map rendering

Changed

  • Faction settings UI redesign: Rotated the permission grid — permissions are now rows with role columns (Out/Ally/Mem/Off) instead of role rows with permission columns. Fixes "Processing" truncation, eliminates crowding, and makes adding future permissions trivial (just add rows). Building and Interaction permissions unified into a single "Territory Permissions" section with parent-child indentation
  • Faction permission flags: Reduced from 49 to 45 flags by merging 8 teleporter/portal flags (4 each) into 4 transport flags. ALL_FLAGS updated accordingly
  • Data migration: JsonFactionStorage automatically migrates old teleporterUse/portalUse flags to transportUse on load using OR logic (permissive — allows if either was allowed)
  • *Plugin initialization...
Read more

HyperFactions v0.8.1

17 Feb 20:58

Choose a tag to compare

[0.8.1] - 2026-02-17

Server Version: 2026.02.17-255364b8e

Fixed

  • Map GUI crash: Fixed NoSuchMethodError on PacketHandler.write(Packet[]) — changed to ToClientPacket[] for server compatibility
  • World map generator: Fixed generator not being set on live worlds added after startup
  • Server version warning: Manifest now specifies target server version (prevents PluginManager "does not specify a target server version" warning)

Added

  • Centralized player resolution (PlayerResolver): Unified player name lookup used across all commands and GUIs — resolves online players, then faction member records, then PlayerDB API as fallback
  • Offline player support: Treasury transfer search, /f who, /f power, and admin commands now resolve offline players via faction member records and PlayerDB
  • Search debounce: Treasury transfer search waits 500ms after last keystroke before searching to avoid spamming PlayerDB API
  • PlayerDB integration: New PlayerDBService utility for looking up any Hytale player by username (5-minute TTL cache, min 3-char query for API calls)
  • Debug logging: Added diagnostic logging to player connection, online player search, world map setup, and world map generation

Changed

  • Target-aware build: Compile against release or prerelease server JAR via -PhytaleTarget Gradle flag

HyperFactions v0.8.0

17 Feb 00:37

Choose a tag to compare

Closes: #30, #31, #32, #34, #36

Added

Help Center Redesign

  • Guide-first help GUI: Complete rewrite of the help system from command-dump format to conceptual guides with commands woven in contextually
  • Wide sidebar layout (750x650): Colored category sidebar with 7 topic categories, scrollable card-based content area replacing the old flat list
  • 7 help categories: Welcome (cyan), Your Faction (green), Power & Land (gold), Diplomacy (blue), Combat & Safety (red), Economy (orange), Quick Reference (gray) — each with unique accent color on sidebar
  • 22 guide-first topics: Organized into conceptual guides that teach game mechanics with commands referenced in context, rather than raw command lists
  • Typed content entries: New HelpEntry record with 5 entry types (TEXT, COMMAND, TIP, HEADING, SPACER) replacing fragile string-based line type detection
  • i18n foundation (HelpMessages.java): All help content uses message key lookups (HelpMessages.get("help.welcome.title")) — hardcoded English now, locale file loading in the future
  • Deep-linking support: /f <command> help opens directly to the relevant category (e.g., /f claim help opens Power & Land)
  • Card-based topic rendering: Dark background cards with teal titles, body text, yellow command callouts, green tips, and teal sub-headings
  • All 43 commands verified: Quick Reference section verified against actual command implementations with correct syntax and permission requirements
  • Deleted 8 obsolete UI templates, added 5 new templates (topic card, line text, line tip, line heading, spacer)

Faction Treasury & Economy System (#36)

  • Treasury page (/f treasury): Full GUI with balance display, deposit/withdraw buttons, transfer system, transaction log, and treasury settings — accessible from the faction nav bar
  • Deposit/Withdraw modals: Amount input with live preview, fee calculation display, and balance validation via VaultUnlocked player wallets
  • Transfer system: Search factions by name, confirm transfer with fee preview, complete inter-faction treasury transfers
  • Treasury settings page: Officers can configure deposit/withdraw limits, toggle auto-pay upkeep, and view fee rates
  • Transaction log: Scrollable history of all treasury activity (deposits, withdrawals, transfers, admin adjustments) with timestamps and actor names
  • Economy CLI commands: /f balance, /f deposit <amount>, /f withdraw <amount>, /f money for quick treasury access without GUI
  • Admin economy page (/f admin economy): Server economy overview with total balance, faction count, average balance stats, and sortable/searchable faction treasury list with per-row Adjust and Info buttons
  • Admin economy adjust modal: Set exact balance or add/deduct amounts with live preview, faction info card, and error display
  • Admin economy CLI (/f admin economy <balance|set|add|take|total|reset> ...): Full console-compatible treasury management
  • Economy stats on admin dashboard: Total economy, wealthiest faction, and average balance cards (conditionally visible when economy enabled)
  • Economy stats on faction dashboard: Treasury balance, next upkeep, and personal wallet cards (conditionally visible)
  • Treasury info on admin faction info page: Balance display in stats grid, "Adjust Balance" and "View Treasury" quick action buttons in Economy Management section
  • Treasury balance on faction info page: Gold-colored treasury card visible to all players when economy is enabled
  • Economy configuration (economy.json): Starting balance, treasury limits (deposit/withdraw min/max/daily), transfer fees, upkeep settings, fee rates
  • VaultUnlocked integration: Player wallet operations (balance check, deposit, withdraw) via VaultUnlocked economy API
  • Faction permissions for economy: DEPOSIT, WITHDRAW, TRANSFER, MANAGE_TREASURY permission flags per role
  • hyperfactions.admin.economy permission node for admin economy operations
  • ECONOMY debug category with Logger.debugEconomy() — togglable via /f admin debug toggle economy and debug.json config
  • UiUtil shared utility class for CustomUI text sanitization and amount parsing

Player Info & Membership History (#32)

  • Player info page (/f who [player]): Full GUI page with faction membership, power stats, combat stats (kills/deaths/KDR), and membership history
  • Membership history tracking: Records all faction joins, leaves, kicks, and disbands with timestamps, highest role achieved, and leave reason
  • Player data expansion: New PlayerData model with firstJoined, lastOnline, kills, deaths, username caching, and membership history — backwards-compatible with existing player JSON files
  • "View Profile" button on members page to navigate to player info
  • /f admin clearhistory <player> command to clear a player's membership history
  • Upgrade migration: Existing faction members automatically get an active membership record on first startup, using their actual faction join date and current role
  • First joined / last online tracking displayed on the player info page header
  • maxMembershipHistory config option (default: 10) to cap history records per player

Admin Power Management (#34)

  • Admin power command (/f admin power): Full admin control over player power — set, adjust, reset, per-player max override, power loss bypass, claim decay exemption
  • Admin Player Info page: GUI page accessible from admin member list with power controls, bypass toggles, and kick/promote/demote actions
  • Faction bulk power operations: Reset All / +/-1/5 All buttons on AdminFactionInfoPage
  • ADMIN_POWER log type for faction activity logs
  • hyperfactions.admin.power permission node

Terrain Map Mode (#30)

  • Terrain map mode for territory GUI: Territory map now renders actual terrain imagery behind claim overlays using ChunkWorldMap, making it much easier to orient yourself and identify terrain features when claiming (rivers, biomes, elevation)
  • Dynamic terrain image asset delivery via ChunkMapAsset — generates a composite PNG from chunk world map data and sends it to the player's client at runtime
  • Static placeholder Map.png sent immediately on page open, with terrain loading asynchronously in the background
  • Semi-transparent claim color overlays on top of terrain: own (green), ally (blue), enemy (red), other (gold), safe zone (teal), war zone (purple), wilderness (transparent)
  • Clickable cells for claim/unclaim actions in terrain mode (officers only)
  • Centered "+" player marker via dedicated chunk_map_marker.ui template
  • Compact 2-row legend showing all territory types and player marker
  • terrainMapEnabled config toggle in GUI section (default: true) — set to false to revert to the flat colored grid

Admin GUI Improvements

  • Admin players page (/f admin players): New admin page for browsing all known server players with search, sort (Name/Faction/Power/Last Online), expandable entries with power stats, faction membership, and quick actions (View Profile, View Faction, Teleport)
  • Admin search on all list pages: Added search bars to admin factions, admin faction members, and admin zones pages matching the faction browser search pattern
  • Admin zone sort dropdown: Zones can now be sorted by Name, Type, Chunks, or World (previously name-only)
  • Admin faction members overhaul: Upgraded from read-only list to full admin tool with search, sort dropdown (Role/Online/Name/Power), pagination (8 per page), and 700x500 container matching the admin factions page layout
  • getAllPlayerUuids() storage method for admin player list enumeration

Relations Redesign

  • Relations page redesign: Merged three tabs (Allies/Enemies/Pending) into two tabs (Relations/Pending) with collapsible row entries showing faction name, leader, relation badge, member count, power stats, and inline quick actions (View, Set Neutral, Set Enemy, Request Ally, Accept, Decline, Cancel)

Faction-Aware Map & Compass Visibility (#31)

  • Player visibility filtering on world map and compass: Only faction members and allies are visible by default — enemies, neutrals, and factionless players are hidden from the map and compass
  • Configurable per-relation visibility: showOwnFaction, showAllies, showNeutrals, showEnemies, showFactionlessPlayers, showFactionlessToFactionless in worldmap.json under playerVisibility
  • Master toggle (playerVisibility.enabled) to disable filtering entirely (vanilla behavior: all players visible)
  • hyperfactions.bypass.mapfilter permission — player can see all others on map regardless of faction filter
  • hyperfactions.bypass.mapvisibility permission — player is always visible to everyone on the map
  • Filters update automatically on faction join/leave/kick/disband and relation changes

Fixed

  • Zone power loss flag ignored on deathPlayerDeathSystem passed already-converted chunk coordinates to getZoneAt() (which expects world coordinates), causing a double conversion that looked up the wrong chunk. Zone flags like power_loss=false were never applied. Changed to getZone() which accepts chunk coordinates directly.
  • Zone flags reset on server restart: WarZone migration code ran on every startup and unc...
Read more

HyperFactions v0.7.4

15 Feb 04:30

Choose a tag to compare

Added

  • power_loss zone flag: Controls whether players lose faction power on death in a zone (default: false for both SafeZone and WarZone — no power loss in admin zones)
  • Config migration v4→v5: Removes deprecated warzonePowerLoss config option (replaced by per-zone power_loss flag)
  • Zone settings GUI now shows Power Loss toggle in the Death category
  • HytaleNative permission provider: Automatic compatibility with any permission plugin that registers with Hytale's native PermissionsModule (LuckPerms, PermissionsPlus, etc.)
  • LuckPerms permission discovery: All 53 HyperFactions permission nodes register with LuckPerms' PermissionRegistry on boot for web editor autocomplete
  • Lazy initialization for permission providers: LuckPerms and VaultUnlocked providers now retry initialization on first use if they failed at startup
  • Integration detail commands: /f admin integration luckperms, vaultunlocked, and native now provide detailed status
  • Console support for admin commands: All admin commands that don't require player context now work from the server console
  • LuckPerms and VaultUnlocked declared as SoftDependencies in manifest.json

Fixed

  • Fluid protection via interaction codecs: Liquid placement and fluid pickup now blocked in protected zones and faction territory via PlaceFluid and RefillContainer codec replacements (no mixin dependency)
  • WarZone denial message: Zone-denied actions in WarZones now show "You cannot do that in a WarZone." instead of the generic fallback
  • LuckPerms prefix/suffix not showing in chat: Lazy init ensures the LuckPerms provider retries on first chat message when LuckPerms is loaded
  • VaultUnlocked provider using wrong class paths: Corrected class paths, method names, and Optional unwrapping
  • Admin commands crashing on world thread assertion: Restructured to dispatch player commands back to world thread
  • WiFlow PlaceholderAPI NoClassDefFoundError: Wrapped in try-catch for NoClassDefFoundError
  • PermissionRegistrar silent failure: Changed to private field access for LuckPerms plugin field
  • World-specific permissions not working with HyperPerms: HyperPermsProviderAdapter now calls context-aware hasPermission with auto-resolved player contexts

Full Changelog: https://github.com/HyperSystemsDev/HyperFactions/blob/main/CHANGELOG.md

HyperFactions v0.7.3

13 Feb 22:48

Choose a tag to compare

Fixed

  • Startup crash when GravestonePlugin is outdated: GravestoneIntegration.init() threw NoSuchMethodError when an older Gravestones version was installed without the v2 API (getInstance()). Now catches LinkageError (covers both missing plugin and missing methods) so HyperFactions starts cleanly regardless of Gravestones version.

HyperFactions v0.7.2

12 Feb 04:19

Choose a tag to compare

[0.7.2] - 2026-02-11

Added

Integration Flags GUI Sub-Page

  • New Admin Zone Integration Flags page for configuring integration-specific zone flags
  • Accessible via "Integration Flags" button in Zone Settings footer
  • Shows gravestone_access flag with clear description
  • Dedicated Reset to Defaults button (only clears integration flags)
  • Integration flags disabled with "(no plugin)" indicator when not installed

Expanded Admin Integrations Command

  • /f admin integrations now shows all 7 integrations organized by category
  • /f admin integration <name> detail views for all integrations

Fixed

  • GUI crash on promotion: Players with the faction GUI open would crash when another player promoted/demoted a member, due to stale ActivePageTracker entries
  • World map empty after teleport: Batch refresh was using nuclear wipe instead of surgical chunk invalidation
  • Placeholders not resolving for factionless players: Both PAPI and WiFlow expansions returned null instead of empty defaults
  • Set Relation search interrupting typing: Modal reopened on every keystroke instead of using partial updates

GravestonePlugin Integration

Note: The gravestone integration requires a new release of GravestonePlugin that includes the v2 API with AccessChecker and events. This is pending review in zurkubusiness/gravestones#2. Until that PR is merged and released, the integration will detect the plugin but the AccessChecker will not be registered.

  • Reflection-based soft dependency on Zurku's GravestonePlugin for faction-aware gravestone protection
  • Faction-aware access control for gravestone break and collection events
  • Admin bypass and hyperfactions.gravestone.bypass permission support
  • Death location announcements for faction members
  • New /f admin gravestone command and config/gravestones.json module config

Changed

  • Zone flag gravestone_access display name changed to "Others Loot Graves" for clarity
  • Placeholder expansions (PAPI + WiFlow) now return empty strings/defaults for factionless players instead of null

HyperFactions v0.7.1

09 Feb 01:18

Choose a tag to compare

What's New in 0.7.0 → 0.7.1

Added

Faction & Alliance Chat Overhaul (0.7.1)

  • Persistent chat history with per-faction JSON storage and debounced disk writes
  • Chat history GUI page with Faction/Ally tabs, scrollable message list, and send-from-GUI input
  • Toggle-only chat command: /f c cycles modes, /f c f, /f c a, /f c off
  • Configurable colors and prefixes per channel in config/chat.json
  • Ally tab merges all allied faction messages into a chronological timeline
  • Automatic retention cleanup and real-time GUI push for new messages

Dashboard Chat Mode Button (0.7.1)

  • Unified chat toggle replacing separate F-Chat/A-Chat buttons
  • Cycles Public → Faction → Ally with color-coded labels

Server-Wide Faction Announcements (0.7.0)

  • Broadcasts for faction creation, disbands, leadership transfers, overclaims, wars, and alliances
  • Per-event toggles in announcements.json

Create Faction Page Redesign (0.7.0)

  • Single two-column wizard with preview, color picker, and permission defaults

Permission-Based GUI Filtering (0.7.0)

  • Nav bar, dashboard buttons, and action buttons auto-hide when the player lacks permission

Real-Time GUI Updates (0.7.0)

  • All GUI pages refresh automatically when data changes (claims, members, relations, invites)

PlaceholderAPI & WiFlow Integration (0.7.0 + 0.7.1)

  • 30+ placeholders for scoreboards, holograms, and menus
  • Refactored for cleaner resolution and consistent null handling

Other Additions

  • GUI map player position now shows "+" marker instead of solid white cell
  • Configurable allowWithoutPermissionMod for servers without a permission plugin
  • Backup retention with automatic cleanup
  • Admin faction list quick-action buttons (Members, Settings)

Changed

  • Chat command no longer supports one-shot /f c <message> (use toggle mode)
  • War zone color changed from red to purple on GUI maps
  • Non-faction players now see the correct new player nav bar
  • Admin faction settings unified with normal settings layout
  • GUI button styles migrated to custom $S.@ButtonStyle, ALL CAPS → Title Case

Fixed

  • Shadow JAR clobbering in multi-project builds
  • Overclaim/teleport messages now use configured prefix
  • Faction member events properly published for promote/demote
  • Non-faction nav bar routing

Full Changelog: https://github.com/HyperSystemsDev/HyperFactions/blob/main/CHANGELOG.md

HyperFactions v0.7.0

08 Feb 05:22

Choose a tag to compare

Closes Issues

  • #7 — Announcement system for major faction events
  • #16 — Add data import from ElbaphFactions
  • #18 — Integrate with Better Scoreboard for faction placeholders
  • #22 — Hide GUI buttons when player lacks permission
  • #23 — Add Placeholders for scoreboards, holograms, and menus

Added

Server-Wide Faction Announcements

  • New announcements.json module config with master toggle and per-event toggles
  • Broadcasts to all online players for: faction created/disbanded, leadership transfer, overclaim, war declared, alliance formed/broken
  • Admin actions and auto-disbands do not trigger announcements

Create Faction Page Redesign

  • Single two-column page with preview card, name/tag/description inputs, color picker, territory permission toggles, and PvP toggle

Permission-Based GUI Filtering

  • Nav bar entries and action buttons respect server permissions

Real-Time GUI Updates

  • GUI pages refresh automatically when data changes (members, relations, claims, invites)

PlaceholderAPI Integration

  • Soft dependency on PlaceholderAPI and WiFlow PlaceholderAPI for scoreboards and chat

ElbaphFactions Data Importer

  • Import factions, claims, and zones from ElbaphFactions

Configuration

  • allowWithoutPermissionMod boolean for servers without a permission mod
  • Configurable faction permissions with lock/override support (config v3→v4 migration)
  • Configurable backup retention, combat tag duration, power gain/loss

GUI Map Improvements

  • Player position shows white "+" marker overlaid on chunk color

Changed

  • Admin faction settings layout unified with boxed sections
  • GUI Native UI Audit: custom button styles, Title Case text, cleaned up styles.ui
  • War zone color changed from red to purple on all GUI maps
  • Non-faction players now see the new player nav bar on shared pages

Fixed

  • Overclaim notification and teleport messages use configured prefix instead of hardcoded "HyperFactions"
  • Faction member events properly published for promote/demote
  • Non-faction players seeing wrong nav bar

Full Changelog: https://github.com/HyperSystemsDev/HyperFactions/blob/main/CHANGELOG.md