FoliaCore icon

FoliaCore -----

An essentialsx alternative for only Folia




[​IMG]
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.


[​IMG]
[​IMG]
[​IMG]

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
 
  # GPS Permissions
  foliacore.marker
:
    description
: Base permission for /marker.
    default
: true
  foliacore.marker.set
:
    description
: Allows setting markers.
    default
: true
  foliacore.marker.delete
:
    description
: Allows deleting markers.
    default
: true
  foliacore.marker.list
:
    description
: Allows listing markers.
    default
: true
  foliacore.gps
:
    description
: Allows using the /gps command.
    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.
Code (Java):

import dev.ajaretro.foliaCore.FoliaCore ;
import dev.ajaretro.foliaCore.managers.ChatManager ;
import dev.ajaretro.foliaCore.managers.TeamManager ;

public class MyPlugin extends JavaPlugin {

    public void doSomething (Player player ) {
        // You can call our managers from any thread, safely.
        // We already handled the concurrency for you.
     
        ChatManager chat = FoliaCore. getInstance ( ). getChatManager ( ) ;
        if (chat. isMuted (player. getUniqueId ( ) ) ) {
            //...
        }
     
        TeamManager teams = FoliaCore. getInstance ( ). getTeamManager ( ) ;
        if (teams. getTeam (player. getUniqueId ( ) ) != null ) {
            //...
        }
    }
}
 
Installation
  1. Make sure you are running a Paper 1.20+ or Folia server.
  2. Download the `FoliaCore.jar` from the "Download Now" button.
  3. Drop it in your `/plugins` folder.
  4. If you want economy features, install Vault and an economy plugin.
  5. Restart your server. (Do not use `/reload`!)

Support & Contact
FoliaCore is a free, open-source project by AJARETRO. If you find a bug, please report it on our GitHub Issues page.

For other inquiries, you can reach me here:
Resource Information
Author:
----------
Total Downloads: 1
First Release: Yesterday at 8:23 PM
Last Update: Yesterday at 8:23 PM
Category: ---------------
All-Time Rating:
0 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings