Create your own server shops with ease for SerenityJS!
This plugin is missing two features to be feature complete:
- Built-in web editor.
- Economy/virtual currency support.
- Chest Form interface type. The features are planned and will be added in the near future before version release.
Simply Shops is a user-friendly plugin that empowers you to create your own shop interfaces for your server!
- Customize your shop with JSON properties or our built-in web editor.
- Choose from a form or chest based interface for your shop!
- Integrates with item or [missing] currencies!
First, install the plugin by downloading the latest release and dropping it into your server's /plugins folder!
- Start your server and look in the logs for the link to the web editor.
- Use the web editor to customize your own shop.
- Save your shop and restart the server. That's it!
- Create a new JSON file in your
/plugindata/shop/folder. - Customize your shop using valid JSON elements (see the source to explore your options).
- Save your shop and restart the server. That's it!
Ohh, so you think you're the bees knees, eh? The rat's cheddar? I get it, let's get a bit more advanced!
-
Install the Plugin: Install the latest version to your SerenityJS server's
pluginsdirectory. -
Install the Typings: Install the NPM package into your plugin project's folder.
#npm npm install simply-shops #yarn yarn add simply-shops #bun bun add simply-shops
Note
If you are having trouble with this step, try adding --prefix <path/to/your/plugin/project> at the end of the command.
-
Import into your Plugin: In your plugin's main file, import the
ShopPluginclass.import type { ShopPlugin } from "simply-shops";
-
Resolve the Plugin Instance: Once your plugin is initialized, resolve the
ShopPlugininstance that you have installed so you can use its features.import { Plugin } from "@serenityjs/plugins"; import type { ShopPlugin } from "simply-shops"; class ExamplePlugin extends Plugin { public onInitialize(): void { // The resolve method fetches the ShopPlugin instance from the plugin you installed. const { Shop } = this.resolve<ShopPlugin>("simply-shops")!; // Notice the use of `!` can be unsafe if the plugin is not loaded correctly. } }
The Shop class is constructed using a string identifier and data implemented by the ShopData type; this data reflects the properties allowed by JSON customization, but also includes function hooks for override certain display functions for further customizability.
Alternatively, you can also extend the Shop and ShopPage class to create an interface entirely your own. The choice is yours!

