Skip to main content

GrayCore

GrayCore is the core of a Minecraft network: a Velocity proxy in front of several Paper game servers. It gives every server the same players, the same permissions and the same view of the network, and it hosts the network's features as modules that can be switched on and off.

What it does​

AreaIn short
Player profilesOne profile per player in PostgreSQL, owned by one server at a time, saved off the game thread and carried across server switches.
Servers and routingGame servers register themselves; the proxy sends players to the right type of server, the least loaded one, and moves them elsewhere when a server goes down.
PermissionsGroups with priority, prefix and suffix, temporary group assignments, per-player permissions, the same on every server and on the proxy.
ChatPrivate messages across the whole network, and who is online where.
AdministrationModules, restarts with a countdown, item editing, a personal debug mode.
PlaceholdersRank, server and player counts for PlaceholderAPI and TAB.
ModulesKits, warps, and the features built by other plugins on top of GrayCore.

The parts of the project​

PartRuns onWhat it is
graycore-paper.jarEach Paper game serverThe plugin, with the modules shipped with GrayCore (kits, warps).
graycore-velocity.jarThe Velocity proxyRouting, fallback, the tab list and the permissions on the proxy.
server-serviceA container next to themThe registry of live game servers, reached over gRPC.
PostgreSQL and RedisShared by everythingProfiles, groups and counters in PostgreSQL; presence in Redis.

See Architecture for how they fit together.

Where to go next​