

Centralized placeholder system for Hytale. Parse placeholders, create expansions, share data between plugins.
Think PlaceholderAPI but for Hytale.
Features
- Universal Placeholders - Use
{identifier_placeholder} syntax across all compatible plugins
- Built-in Expansions - Player and server placeholders included out of the box
- Remote Expansions - Download expansions in-game with
/WPAPI exp
- Hot Reload - Load and unload expansions without restarting the server
- High Performance - Template caching and MethodHandle reflection for minimal overhead
- Public API - Other plugins can parse placeholders and create custom expansions
Quick Start
/WPAPI list - List all loaded expansions
/WPAPI parse {player_name} - Test placeholder parsing
/WPAPI exp list - Browse available expansions
/WPAPI exp download luckperms - Install an expansion
/WPAPI reload - Reload all expansions
Built-in Placeholders
Player
| Placeholder |
Description |
{player_name} |
Player's username |
{player_uuid} |
Player's UUID |
{player_world} |
Current world name |
{player_x} |
X coordinate |
{player_y} |
Y coordinate |
{player_z} |
Z coordinate |
{player_online} |
"true" or "false" |
Server
| Placeholder |
Description |
{server_online} |
Online player count |
{server_max} |
Max player slots |
{server_tps} |
Server TPS |
{server_memory_used} |
Used memory (MB) |
{server_memory_max} |
Max memory (MB) |
{server_memory_percent} |
Memory usage % |
Available Expansions
Download additional expansions directly in-game:
| Expansion |
Placeholders |
Required Plugin |
| LuckPerms |
prefix, suffix, group |
LuckPerms |
| OrbisGuard |
region, region_owners, region_members, flag_* |
OrbisGuard |
| Economy |
balance, balance_formatted |
EconomySystem |
| Hyfaction |
name, power, members, claims, role |
Hyfaction |
| Essentials |
homes, homes_max, warps |
Essentials |
| CombatLog |
active, time, attacker, attacker_type |
CombatLog |
| KillingSpree |
current, best, kills, deaths, kdr |
KillingSpree |
| OrbisMines |
name, reset_time, resetting, blocks_broken |
OrbisMines |
| SimpleClaims |
claim_owner, is_claimed, can_build, party_* |
SimpleClaims |
/WPAPI exp download all - Install all available expansions
Third-Party Downloads & Data Storage
This plugin downloads expansion files from a third-party website. Here's how it works:
Download Source
Expansions are downloaded from the official WiFlow documentation site:
All expansion files are hosted on Cloudflare Pages infrastructure with HTTPS encryption.
What Gets Downloaded
- Expansion JAR files (Java plugin code)
- Expansion metadata (name, version, author, description)
Where Data is Stored
Downloaded expansions are saved locally to your server:
mods/WiFlowPlaceholderAPI/expansions/ <- Downloaded JAR files
mods/WiFlowPlaceholderAPI/cache/ <- Cached expansion data (auto-expires)
No data is uploaded or sent to external servers. The plugin only makes read-only GET requests to fetch expansion files.
Security Measures
- HTTPS Only - All downloads use encrypted HTTPS connections
- Checksum Verification - Downloaded files are verified against SHA-256 checksums before loading
- Sandboxed Loading - Expansions run in isolated classloaders with limited permissions
- Open Source - All official expansion source code is available on GitHub
- Manual Review - All marketplace expansions are manually reviewed before publishing
When you use the /WPAPI exp download command, expansion files are downloaded from the cloud at docs.wiflow.dev.
All Commands
| Command |
Description |
/WPAPI list |
List loaded expansions |
/WPAPI info <id> |
Show expansion details |
/WPAPI parse <text> |
Parse placeholders in text |
/WPAPI reload |
Reload all expansions |
/WPAPI exp list [page] |
Browse expansions |
/WPAPI exp info <id> |
Show expansion info |
/WPAPI exp download <id|all> |
Download expansion(s) |
/WPAPI exp update <id|all> |
Update expansion(s) |
/WPAPI exp status |
Show expansion status |
/WPAPI exp refresh |
Refresh expansion list |
/WPAPI exp search <query> |
Search expansions |
Aliases: /placeholderapi, /papi, /wfpapi
Installation
Hytale/
└── mods/
├── WiFlowPlaceholderAPI-1.0.1.jar <- Main plugin
└── WiFlowPlaceholderAPI/
└── expansions/ <- Downloaded expansions go here
├── luckperms-1.1.0.jar
└── orbisguard-1.1.0.jar
For Developers
Using Placeholders
import com.wiflow.placeholderapi.WiFlowPlaceholderAPI;
import com.wiflow.placeholderapi.context.PlaceholderContext;
// Create context for a player
PlaceholderContext context = PlaceholderContext.builder()
.player(player)
.playerUuid(player.getPlayerRef().getUuid())
.playerName(player.getPlayerRef().getUsername())
.worldName(player.getWorld().getName())
.build();
// Parse placeholders
String result = WiFlowPlaceholderAPI.setPlaceholders(context, "Hello {player_name}!");
// result: "Hello Steve!"
Creating a Custom Expansion
public class MyExpansion extends PlaceholderExpansion {
@Override
public String getIdentifier() { return "myplugin"; }
@Override
public String getAuthor() { return "YourName"; }
@Override
public String getVersion() { return "1.0.0"; }
@Override
public String onPlaceholderRequest(PlaceholderContext context, String params) {
return switch (params) {
case "score" -> getScore(context.getPlayerUuid());
case "level" -> getLevel(context.getPlayerUuid());
default -> null;
};
}
}
Register via ServiceLoader: META-INF/services/com.wiflow.placeholderapi.expansion.PlaceholderExpansion
Full API documentation →
Support
Questions or issues? Join the Discord server or contact w1fl0w.