Emberstore logoEmberstore

Installation

Requirements, installing the jar, the first start and the files Emberstore creates.

Getting Emberstore running takes a few minutes. Taking real payments takes a little longer, because a payment gateway has to be able to reach your server over HTTPS. This page covers both.

A player on a 1.21.6 or newer Java client gets the checkout dialog. Bedrock players, older clients through ViaVersion, or servers with dialogs turned off get a chest menu, and both end at the same payment link.

Requirements

WhatNeeded
ServerPaper or a fork of Paper, 1.21.7 and newer, including 26.x. On anything else Emberstore prints one line saying it needs Paper and turns itself off.
Java21 or newer. 26.x servers need Java 25, the same as Paper.
PlayersAny client can buy. Java 1.21.6 and newer get the dialog, everyone else gets a chest menu.
Public HTTPS addressNeeded for real payments, so gateways can send their webhooks. See Payment gateways.
Vault and an economy pluginOnly if you sell items with reward: type: economy, or want /store balance and referral money.

Folia is not supported.

Install

Get the jar

Buy it from one of the stores on the Download page and download the latest build.

Drop it in

Stop the server, put the jar in your plugins/ folder, and start the server. On the first start Paper downloads the database libraries Emberstore needs, so give it a moment.

Check the console

You should see each category listed with its items and prices, then a line saying the storage is ready and Emberstore is enabled. Any problem in a file is named with the file and the key, and that item or setting is skipped instead of stopping the plugin.

Open the store

Join and type /store. You see the four template categories: Ranks, Coins, Points and Cosmetics. Clicking an item says no payment method is available yet, because every gateway starts switched off except NOWPayments, which still needs its keys.

Turn on a gateway

Open plugins/Emberstore/config.yml, find the section for the gateway you want, fill in its keys, set enabled: true, and set webhook.public-base-url to your server's public HTTPS address. Each gateway has its own setup page under Payment gateways. Run /store admin reload.

Try it with test mode

Set test-mode.enabled: true and test-mode.fake-invoices: true, reload, and buy something. Then mark the order as paid with /store admin simulate. See Test mode. Turn test mode off before you take real payments.

What gets created

config.yml
promotions.yml
ranks.yml
coins.yml
points.yml
cosmetics.yml
checkout.yml
pay.yml
error.yml
en_US.yml
File or folderWhat it holdsPage
config.ymlCurrencies, gateways, webhooks, storage, networks, the dashboard and every other switchConfiguration
categories/One file per category in the store menuCategory files
promotions.ymlSales, promo codes and referralsPromotions file
dialogs/How the checkout dialogs are laid outDialog files
lang/Every message players and admins seeMessages and language
data/The SQLite or H2 databaseStorage
logs/One purchase log per day, while purchase-log.enabled is trueNotifications

Optional plugins

PluginWhat Emberstore does with it
VaultPays economy rewards, takes them back on a refund, shows /store balance and pays the referral referrer-amount. Without it those parts are skipped with a warning.
LuckPermsNothing directly. The template items give ranks with lp user ... commands, so you need it for those as written. Any plugin with console commands works.
ViaVersionTells Emberstore which players are on a client older than 1.21.6, so they get the chest menu.
Geyser or FloodgateTells Emberstore which players are on Bedrock, so they get the chest menu.

These are only checked on the same server as Emberstore. If ViaVersion runs on your proxy instead, older clients are assumed to handle dialogs.

On this page