FoliaCore | The 100% Lag-Free, Thread-Safe Essentials v1.0 Pre-Release The *only* core plugin built from scratch for Folia's multi-core architecture.
What is this? (And why do you need it?) Let's be real: you're running a Folia server. You're on the cutting edge, but you've probably realized it breaks
everything.
Your old "essentials" plugin (like EssentialsX or CMI) is built on a single "main thread". The second you run it on Folia, it will cause crashes, data corruption, and lag. Other "Folia-compatible" plugins are often just quick patches, not true fixes.
FoliaCore is not a patch. It's a from-scratch replacement.
We built this plugin with a "Folia-first" design. We use Folia's native schedulers for *everything*. The result? A rock-solid, thread-safe core plugin that will
never lag your server just because a player saved their home or sent a TPA request.
The Technical Facts: FoliaCore vs. The Old Way We aren't just "another" essentials plugin. We are an architectural upgrade.
Feature
FoliaCore (Our Code)
The Old Way (Essentials / zEssentials)
Threading Model
Folia-Native. Uses `EntityScheduler` & `RegionScheduler` for all tasks. 100% thread-safe.
Single-Threaded. Incompatible. Will crash, stall, or corrupt data on Folia.
Data Saving (Performance)
Asynchronous YAML. All file saves use the `AsyncScheduler`. Guarantees zero tick-skips (lag).
Requires an external MySQL database for reliability, or uses slow, synchronous YAML saving that causes server stutter.
Simplicity
True "Drag & Drop". Our async saving is fast *and* simple. No setup needed.
Complex Setup. Requires a database and multiple dependencies (like Vault, zMenu) to get full use.
The Price
100% Free & Open Source.
Free (and broken) or Paid (and complex).
Feature Modules (v1.0 Pre-Release)
Chat Module: Full private messaging (`/msg`, `/r`), persistent mutes (`/mute`, `/unmute`), and player blocking (`/block`, `/unblock`).
Mail Module: Persistent, offline `/mail` system with login notifications.
Ranged Chat: `/chat <global|world|regional>` modes, plus a global shout prefix (`!`).
Teleport Module: Fully thread-safe `/tpa`, `/tpahere`, `/tpaccept`, and `/tpdeny`.
Home Module: Permission-based homes (`/sethome`, `/home`, `/delhome`, `/homes`).
Spawn Module: Persistent server spawn (`/setspawn`, `/spawn`).
Team System: Full party management (`/team create`, `invite`, `kick`, `leave`, etc.).
Kit System: A full GUI-based kit system (`/kit`) with cooldowns and admin commands (`/createkit`, `/delkit`).
Warp System: Admin-defined, permission-based server warps (`/setwarp`, `/delwarp`, `/warp`, `/warps`).
GPS System: Player-based waypoints (`/marker`) with an action-bar compass (`/gps`).
Economy Module: Vault integration for `/balance`, `/pay`, and `/eco` admin commands.
Commands & Permissions
Code (YAML):
name: FoliaCore
version: '1.0-ALPHA'
main: dev.ajaretro.foliaCore.FoliaCore
api-version: '1.21'
prefix: "&l[ &4AJA_RETRO/&3FoliaCore&f ]" authors: [ AJA RETRO
] description: The essential plugin suite, rebuilt natively for Folia.
website: ajaretro.dev
folia-supported: true
softdepend: [ Vault
] commands: # Chat & Mail Module mute:
description: Mutes a player for a specified amount of time.
usage: /<command> <player> <time|permanent>
permission: foliacore.mute
unmute:
description: Unmutes a player.
usage: /<command> <player>
permission: foliacore.unmute
msg:
description: Sends a private message to another player.
usage: /<command> <player> <message
...>
aliases: [ m, tell, w
] permission: foliacore.msg
reply:
description: Replies to the last player who messaged you.
usage: /<command> <message
...>
aliases: [ r
] permission: foliacore.reply
block:
description: Blocks a player from messaging you.
usage: /<command> <player>
permission: foliacore.block
unblock:
description: Unblocks a player.
usage: /<command> <player>
permission: foliacore.unblock
mail:
description: Manages your offline mail.
usage: /<command> <send|read|clear>
permission: foliacore.mail
aliases: [ email
] chat:
description: Changes your chat mode.
usage: /<command> <global|world|regional>
permission: foliacore.chat
aliases: [ ch
]
# Teleportation & Spawn Module sethome:
description: Sets a home at your location.
usage: /<command>
[name
] permission: foliacore.sethome
home:
description: Teleports to one of your homes.
usage: /<command>
[name
] permission: foliacore.home
delhome:
description: Deletes one of your homes.
usage: /<command> <name>
permission: foliacore.delhome
homes:
description: Lists
all your homes.
usage: /<command>
permission: foliacore.homes.list
tpa:
description: Sends a teleport request to another player.
usage: /<command> <player>
permission: foliacore.tpa
tpahere:
description: Requests another player to teleport to you.
usage: /<command> <player>
permission: foliacore.tpahere
tpaccept:
description: Accepts a pending teleport request.
usage: /<command>
permission: foliacore.tpaccept
tpdeny:
description: Denies a pending teleport request.
usage: /<command>
permission: foliacore.tpdeny
setspawn:
description: Sets the server's spawn location.
usage: /<command>
permission: foliacore.setspawn
spawn:
description: Teleports you to the server spawn.
usage: /<command>
permission: foliacore.spawn
# Team Module team:
description: Manages your team.
usage: /<command> <subcommand>
permission: foliacore.team
aliases: [ t, party
]
# Kit Module kit:
description: Opens the kit GUI or redeems a kit.
usage: /<command>
[name
] permission: foliacore.kit
createkit:
description: Creates a new kit from your inventory.
usage: /<command> <name> <cooldown>
permission: foliacore.kit.admin
delkit:
description: Deletes a kit.
usage: /<command> <name>
permission: foliacore.kit.admin
# Warp Module setwarp:
description: Creates a new server warp.
usage: /<command> <name>
permission: foliacore.setwarp
delwarp:
description: Deletes a server warp.
usage: /<command> <name>
permission: foliacore.delwarp
warp:
description: Teleports to a server warp.
usage: /<command> <name>
permission: foliacore.warp
warps:
description: Lists
all available warps.
usage: /<command>
permission: foliacore.warps.list
aliases: [ warplist
]
# GPS Module marker:
description: Manages your personal markers.
usage: /<command> <set|del|list>
permission: foliacore.marker
gps:
description: Navigates to a saved marker.
usage: /<command> <name|off>
permission: foliacore.gps
# Economy Module balance:
description: Checks your balance.
usage: /<command>
[player
] aliases: [ bal, money
] permission: foliacore.balance.self
pay:
description: Pays another player.
usage: /<command> <player> <amount>
permission: foliacore.pay
eco:
description: Admin economy command.
usage: /<command> <give|take|set> <player> <amount>
permission: foliacore.eco
permissions: # Chat & Mail Permissions foliacore.mute:
description: Allows muting players.
default: op
foliacore.unmute:
description: Allows unmuting players.
default: op
foliacore.msg:
description: Allows sending private messages.
default: true
foliacore.reply:
description: Allows replying to private messages.
default: true
foliacore.block:
description: Allows blocking players.
default: true
foliacore.unblock:
description: Allows unblocking players.
Read this response to enable the feature: default
: true
foliacore.mail:
description: Base permission for the /mail command.
default: true
foliacore.mail.send:
description: Allows sending mail.
default: true
foliacore.mail.read:
description: Allows reading mail.
default: true
foliacore.mail.clear:
description: Allows clearing your mailbox.
default: true
foliacore.chat:
description: Base permission for the /chat command.
default: true
foliacore.chat.global:
description: Allows switching to GLOBAL chat.
default: true
foliacore.chat.world:
description: Allows switching to WORLD chat.
default: true
foliacore.chat.regional:
description: Allows switching to REGIONAL chat.
default: true
# Teleportation & Spawn Permissions foliacore.sethome:
description: Allows setting a home.
default: true
foliacore.home:
description: Allows teleporting to a home.
default: true
foliacore.delhome:
description: Allows deleting a home.
default: true
foliacore.homes.list:
description: Allows listing your homes.
default: true
foliacore.homes.default:
description: Gives the player 1 home.
default: true
foliacore.homes.unlimited:
description: Gives the player unlimited homes.
default: op
foliacore.homes.5:
description: Gives the player 5 homes.
default: false
foliacore.homes.10:
description: Gives the player 10 homes.
default: false
foliacore.tpa:
description: Allows sending /tpa requests.
default: true
foliacore.tpahere:
description: Allows sending /tpahere requests.
default: true
foliacore.tpaccept:
description: Allows accepting teleport requests.
default: true
foliacore.tpdeny:
description: Allows denying teleport requests.
default: true
foliacore.setspawn:
description: Allows setting the server spawn.
default: op
foliacore.spawn:
description: Allows teleporting to spawn.
default: true
# Team Permissions foliacore.team:
description: Base permission for the /team command.
default: true
foliacore.team.create:
description: Allows creating a team.
default: true
foliacore.team.disband:
description: Allows disbanding a team
(owner only
).
default: true
foliacore.team.invite:
description: Allows inviting players to a team.
default: true
foliacore.team.accept:
description: Allows accepting a team invite.
default: true
foliacore.team.leave:
description: Allows leaving a team.
default: true
foliacore.team.kick:
description: Allows kicking players from a team.
default: true
# Kit Permissions foliacore.kit:
description: Allows using the /kit command and GUI.
default: true
foliacore.kit.starter:
description: Allows redeeming the 'starter' kit.
default: true
foliacore.kit.admin:
description: Allows creating and deleting kits.
default: op
# Warp Permissions foliacore.setwarp:
description: Allows setting server warps.
default: op
foliacore.delwarp:
description: Allows deleting server warps.
default: op
foliacore.warp:
description: Allows using the base /warp command.
default: true
foliacore.warp.all:
description: Allows using
all warps without specific permissions.
default: op
foliacore.warps.list:
description: Allows listing available warps.
default: true
# Economy Permissions foliacore.balance.self:
description: Allows checking your own balance.
default: true
foliacore.balance.other:
description: Allows checking other players' balances.
default: op
foliacore.pay:
description: Allows paying other players.
default: true
foliacore.eco:
description: Allows using the admin /eco command.
default: op
For Developers (Our API) We built this to be a platform. All our managers are thread-safe and accessible. Just add FoliaCore as a dependency and grab our instance.