OrbisGuard | Region Management

Region protection plugin for Hytale servers. Define areas, set flags (block-break, block-place, use), and control who can build where. Based on WorldGuard for Minecraft.

File Details

OrbisGuard-ALL-0.7.0.zip

  • R
  • Jan 24, 2026
  • 444.45 KB
  • 265
  • Early Access

File Name

OrbisGuard-ALL-0.7.0.zip

Supported Versions

  • Early Access

[0.7.0] - 2026-01-24

Updated to work with latest Hytale Server version.

Added

Protection Hook API - Other plugins can now hook into OrbisGuard's protection checks. Register via OrbisGuardAPI.getInstance().getProtectionHookRegistry(). Hooks return ALLOW, DENY, or ABSTAIN.

NICE_NAME flag - Custom display name for region titles. Usage: /rg flag spawn nice-name <<green>>Spawn Zone

Hyfaction integration - Faction territories and party claims now show on the world map.

Exit flag actually works now - Setting exit to deny will teleport non-members back when they try to leave.

Inline flag conditions - Add conditions to flags using [condition] prefix. Example: /rg flag spawn build [{player_rank}==vip]allow

Inline command conditions - Same syntax for entry/exit commands. Example: /rg flag vip entry-command add [{player_vip}==true]CONSOLE:give %player% diamond 1

Full WPAPI support in commands - Entry/exit commands now parse all WiFlowPlaceholderAPI placeholders, not just %player%.

Global flag conditions - New flagConditions config section. Set allowIf/denyIf conditions that apply to all regions. Good for things like blocking combat-tagged players from entering safe zones.

PAPI status in startup - Shows whether WiFlowPlaceholderAPI is detected.

total_players metric - FancyAnalytics now tracks unique region members/owners.

Performance

Spatial indexing - Region lookups use 256-block buckets now. Way faster with lots of regions.

Bounded caches - Chunk cache capped at 10k entries with LRU eviction. No more memory creep.

Map batching - Minimap updates batched to 2 second intervals instead of per-change.

Chunk region precompute - Minimap builder caches region data per chunk instead of checking every pixel.

Less GC pressure - PlayerState is mutable now, MethodHandles cached in mixins, flags use HashMap instead of ConcurrentHashMap.

Changed

These flags now default to NON_MEMBERS group: use, seat, item-pickup, item-pickup-auto, item-drop, crafting, entry, exit. Members/owners won't be blocked by default anymore.

SelectionVisualizer runs on game thread now instead of separate scheduler.

Cleaner startup logs.

Fixed

Inverted entry/exit events - Entry commands and titles were firing on exit (and vice versa) due to RegionTitleSystem using a different position source than EntryProtectionSystem.

Thread safety - Race conditions in chunk cache and tick data fixed.

Shutdown cleanup - Everything actually cleans up properly now.

Memory leaks - Tick data for disconnected players no longer sticks around forever.

Condition Syntax

Works the same everywhere (inline flags, commands, config):

  • {placeholder}==value - equals
  • {placeholder}!=value - not equals
  • {placeholder} - truthy (not empty/false/0/no)

Examples

/rg flag arena pvp [{combatlog_active}]deny
/rg flag mine block-break [{player_level}!=0]allow
/rg flag vip entry-command add [{player_vip}==true]CONSOLE:give %player% diamond 1

Config:

"flagConditions": {
  "entry": { "allowIf": "{combatlog_active} == false" },
  "pvp": { "denyIf": "{arena_mode} != true" }
}