Skip to main content
After your first server start, LiricCasino creates a plugins/LiricCasino/ folder containing every configuration file you need. You never have to edit source code — everything from the database backend to individual button positions in a game’s GUI is controlled from these files.
Run /casino reload in-game or from the console after saving any configuration file. This reloads config.yml, all menus/ files, and messages.yml without restarting your server. Changes to the database connection settings require a full server restart to take effect.

Configuration File Overview


Database

LiricCasino stores player stats, placed bets, and leaderboard data in a database. SQLite requires zero external setup; MariaDB is available if you run a multi-server network or prefer a dedicated database server.
SQLite is active out of the box. A casino.db file is created automatically inside plugins/LiricCasino/. No credentials or external server are required.

Tax System

The tax system deducts a percentage from gross winnings before they are paid out to the player, functioning as a configurable house edge. Taxes are disabled by default.
Example: A player wins 10,000atRoulettewithroulette:0.05.Theyreceive10,000 at Roulette with `roulette: 0.05`. They receive 9,500 — the $500 tax is removed from the payout. Remove or comment out a game’s line to fall back to default-rate.

Economy Boosters

The booster system multiplies a player’s winnings based on a permission node. Boosters are applied on top of the base payout before any tax deduction. You can define as many booster tiers as you need.
Grant a player the permission listed under permiso (using your permissions plugin) to activate that booster tier for them automatically.

Per-Game Settings

Every game block in config.yml follows the same structure. Here is an annotated example using Blackjack:
The same active, bet, and uses keys are available for every game. You can define as many permission ranks as you need — just add a new entry under ranks with a unique permission node and your desired limits.
Granting a player the VIP or admin permission node listed under ranks automatically gives them the corresponding bet cap and daily limit. You do not need to set any separate LiricCasino permissions beyond those nodes.

Roulette-Specific Settings

Roulette has a few additional options because it is a physical, scalable in-world object. Note that Roulette uses a single max-bet field at the top level instead of the full bet: block:
You can also resize a roulette wheel live in-game without editing config.yml:

Slots Prize Table

The Slots machine uses a weighted prize list. Higher weight values mean the symbol appears more often:

Messages (messages.yml)

Every player-facing string lives in messages.yml. All messages support three formatting styles that can be mixed freely: Here is a sample showing all three styles in practice:
Placeholders like {amount}, {player}, and {prefix} are replaced at runtime. The {prefix} placeholder always resolves to the prefix: value at the top of the file, so changing it there updates every message at once.
Each game’s GUI is defined in its own file under menus/. You can change the inventory title, number of rows, which slots items occupy, item materials, and display names — all without touching any other file.
A typical menu file looks like this:
Menu titles and display names support the same MiniMessage / hex / legacy formatting as messages.yml. After editing a menu file, run /casino reload to see your changes immediately without a server restart.

Discord Webhooks

Configure webhooks.yml to send automatic Discord alerts when a player hits a major jackpot or wins above a threshold you define. Add the webhook URL generated in your Discord channel’s Settings → Integrations → Webhooks section. The file supports multiple webhooks, so you can post to different channels for different games.
Keep your webhook URLs private. Anyone with a URL can post messages to that Discord channel.