Description

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:
- API Endpoint: https://docs.wiflow.dev/api/ecloud/
- Expansion List: https://docs.wiflow.dev/api/ecloud/expansions
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
Support
Questions or issues? Join the Discord server or contact w1fl0w.


