Winter Development

Internet Explorer

Internet Explorer is not supported. Please upgrade to a more modern browser.

NamelessModules | Store Pluginv1.0.0

NamelessMC store plugin with a /buy menu and admin commands

Platform
  • Paper
  • Purpur
Minecraft version
  • 1.18.x
  • 1.19.x
  • 1.20.x
  • 1.21.x
  • 26.1.x
  • 26.2

Paper or Purpur. Java 17+, or Java 25+ for MC 26.1 and newer.

In-game control for your NamelessMC website modules, by CruelWinter.

? Free edition. Includes the NamelessModules plugin and its website bridge module. Its Store module gives players an in-game /buy GUI for your web store, and it's the only NamelessModules module available for free. (This is the in-game front end only: it drives Partydragen's Store module on your site; see the disclaimer below.)

⚠️ Disclaimer: this is the in-game front end only. It does not include Partydragen's NamelessMC Store module, the store back-end that manages products, categories and payments on your website. You must purchase that separately from Partydragen's website. Tested against the paid Patreon version.

Overview

NamelessModules brings your NamelessMC site's modules into Minecraft. The first module is the Store: a clean /buy GUI (categories → subcategories → products → checkout link) plus a full set of management commands, modelled on Tebex / CraftingStore. It's built on a small module framework, so more site modules can be added over time.

? Screenshot: the /buy store GUI (add your photo here)

Features

  • /buy GUI: paginated categories, subcategory drill-down, and per-product checkout links (one-time or subscription, auto-detected).
  • Management commands: secret, checkout, lookup, debug, forcecheck, refresh, plus module-scoped store info / store sendlink.
  • Purchased-command executor: delivers store purchases in-game (optional; owned by this plugin, so you disable it in the default NamelessMC plugin to avoid double delivery).
  • Every message is editable in lang.yml (colours + {placeholders}, hot-reloadable).
  • Wide version support: one jar for every supported Minecraft version, like the official NamelessMC plugin.
? Screenshot: category / product browsing in the GUI (add your photo here)

Requirements

  • Paper or Purpur, with Java 17+ (Java 25+ for MC 26.1 and newer).
  • A NamelessMC 2.x website with the API enabled (StaffCP → Configuration → API) and the Store module installed / enabled.

What's included

This download has two parts, the game-server plugin and the website bridge module:

  • NamelessModules.jar: the Minecraft (Paper) plugin for your game server.
  • modules/NamelessModules/: the NamelessMC bridge module for your website (adds nested subcategories + subscription detection, no core edits).

Not included: Partydragen's NamelessMC Store module (the paid store back-end). You supply that yourself. See the disclaimer above.

Installation

1 · Minecraft plugin (game server)

  1. Drop NamelessModules.jar into your server's plugins/ folder and start the server once. This generates plugins/NamelessModules/config.yml and lang.yml.
  2. In config.yml, set api.url, api.key, and store.web-url (or set the key in-game with /nlm secret [key]).

2 · Website bridge module (recommended: enables nested subcategories & subscription links)

  1. Extract the archive's modules/NamelessModules/ folder into your NamelessMC site root, so it lands at modules/NamelessModules/.
  2. StaffCP → Configuration → Modules → enable NamelessModules.
  3. Back in the plugin's config.yml, set list-route: "nlm/store".

3 · Finish

  1. Run /nlm refresh (or restart the server). Test with /nlm store info and /buy.

Prefer to skip the module? The plugin works without it: categories just show as a flat list and links default to one-time. Leave list-route: "store".

? Screenshot: a checkout link delivered in chat (add your photo here)

Commands

  • /buy (aliases /store, /shop): open the store GUI (everyone)
  • /nlm help: list commands
  • /nlm secret [key]: set the API key
  • /nlm checkout [packId] [username]: print a checkout link for a package
  • /nlm lookup [name]: look up a website user
  • /nlm debug [true|false]: toggle debug logging
  • /nlm forcecheck: run time-based events now
  • /nlm refresh: reload config + all modules
  • /nlm store info: show store information
  • /nlm store sendlink [name] [package]: send a checkout link to a player

All admin commands require namelessmodules.admin. /nlmstore [sub] is a shortcut for /nlm store [sub].

Configuration & language

config.yml holds only structural settings: API URL/key, store web URL/path, the purchased-command executor, and GUI layout (rows + icon materials). All text lives in lang.yml. Delete any line to fall back to the built-in default, then reload with /nlm refresh.

▶ config.yml (click to expand)
# Nameless Modules configuration
# In-game control for your NamelessMC website modules.
# All user-facing text lives in lang.yml.

api:
  # API base URL - StaffCP > Configuration > API. Keep the "index.php?route=/api/v2" suffix.
  url: "https://yourwebsite.com/index.php?route=/api/v2"
  # API key - StaffCP > Configuration > API. You can also set it in-game with /nlm secret [key].
  key: ""
  # Max seconds to wait for a website response.
  timeout-seconds: 10

# Print verbose request/response info to the console.
debug: false

store:
  # Public website base (no trailing slash) used to build checkout links.
  web-url: "https://yourwebsite.com"
  # Store path on the website (StaffCP > Store settings). Usually /store.
  path: "/store"
  # API route for the category/product lists. Leave as "store" for the stock Store module
  # (categories show flat unless you patch the Store endpoints). If you installed the
  # NamelessModules bridge module on your site, set this to "nlm/store" for nested
  # subcategories and subscription detection without editing any core files.
  list-route: "store"
  # Store connection id (StaffCP > Integrations > Minecraft > Store connections).
  # 0 = deliver all pending commands (use until you create a store connection).
  connection-id: 0
  # Purchased-command executor. If you enable this, DISABLE the store module in the
  # default NamelessMC plugin, or purchased commands will run twice.
  executor:
    enabled: true
    interval-seconds: 60
  gui:
    # Inventory rows (1-6). The bottom row is reserved for navigation.
    rows: 6
    # Icons (any Bukkit Material name). All text is in lang.yml.
    category-icon: CHEST
    subcategory-icon: BOOKSHELF
    product-icon: PAPER
    back-icon: ARROW
    next-icon: SPECTRAL_ARROW
    prev-icon: SPECTRAL_ARROW
    filler-icon: GRAY_STAINED_GLASS_PANE
▶ lang.yml (click to expand)
# NamelessModules language file.
# Colour codes use '&' . Placeholders are wrapped in {curly braces}.
# Delete any line to fall back to the built-in default. Reload with /nlm refresh.

prefix: "&8[&bNLM&8]&r "

general:
  no-permission: "&cYou don't have permission to use this command."
  players-only: "&cOnly players can do that."
  unknown-command: "&cUnknown command. Try &e/nlm help&c."
  unknown-module: "&cUnknown module: &e{module}"
  unknown-subcommand: "&cUnknown subcommand: &e{sub}"
  usage: "&cUsage: &e{usage}"
  reloaded: "&aReloaded config and {count} module(s)."
  api-key-updated: "&aAPI key updated and modules reloaded."
  debug-enabled: "&aDebug logging is now &2enabled&a."
  debug-disabled: "&aDebug logging is now &cdisabled&a."
  api-error: "&cCould not {action}: &7{error}"

help:
  header: "&8&m----------&r &bNameless Modules &8&m----------"
  module-header: "&7Module &f{module}&7:"
  line: "&e{usage} &7- {description}"

# Command descriptions shown in help.
commands:
  help: "Show available commands"
  secret: "Set the API key"
  checkout: "Create a checkout link for a package"
  lookup: "Look up a user's account"
  debug: "Toggle debug logging"
  forcecheck: "Force run all time-based events"
  refresh: "Reload the plugin and all modules"
  store-info: "Show store information"
  store-sendlink: "Send a checkout link to a player"

store:
  loading: "&7Loading store…"
  no-categories: "&cThe store has no categories yet."
  empty-category: "&7There's nothing in that category yet."
  buy-link: "&a▶ Click to buy &f{name} &7({price})"
  buy-link-hover: "&7Open checkout:\n&f{url}"
  info-header: "&bStore information:"
  info-version: "&7  Site version: &f{version}"
  info-categories: "&7  Categories: &f{count} &7(of {total})"
  info-executor: "&7  Command executor: {status}"
  info-web: "&7  Web: &f{web}"
  executor-status-on: "&aon"
  executor-status-off: "&coff"
  checkout-link: "&aCheckout link{for}&a: &f{url}"
  checkout-for: " for &f{name}"
  checkout-hover: "&7Click to open"
  sendlink-received: "&aYou have a checkout link — &f▶ click here"
  sendlink-hover: "&7{url}"
  sendlink-sent: "&aSent a checkout link to &f{name}&a."
  invalid-number: "&c{field} must be a number."
  player-offline: "&cPlayer &e{name} &cis not online."
  lookup-none: "&cNo website user found named &e{name}&c."
  lookup-header: "&bUser &f{name}&b:"
  lookup-id: "&7  ID: &f{id}"
  lookup-banned: "&7  Banned: {status}"
  lookup-banned-yes: "&cyes"
  lookup-banned-no: "&ano"
  lookup-transactions: "&7  Transactions: &f{url}"
  executor-disabled: "&cThe store executor is disabled in the config."
  executor-none: "&7No pending store commands."
  executor-ran: "&aRan &f{count} &acommand(s){skipped}."
  executor-skipped: " &7({count} waiting for players to be online)"

gui:
  # Inventory titles.
  title: "&1&lStore"
  category-title: "&1{name}"
  category-name: "&b&l{name}"
  category-lore: "&7Click to browse"
  subcategory-name: "&a&l{name}"
  product-name: "&f&l{name}"
  product-price: "&7Price: &e{price}"
  product-desc-line: "&7{line}"
  product-click: "&aClick for a checkout link"
  back: "&e« Back"
  prev: "&e« Previous page"
  next: "&eNext page »"
▶ Permissions (click to expand)
# plugin.yml permissions
namelessmodules.admin
  Access the management commands (/nlm ...)
  default: op
namelessmodules.buy
  Open the store GUI (/buy)
  default: true

# Command  ->  permission
/buy  (/store, /shop)                  namelessmodules.buy    (everyone)
/nlm help                              namelessmodules.admin
/nlm secret [key]                      namelessmodules.admin
/nlm checkout [packId] [username]      namelessmodules.admin
/nlm lookup [name]                     namelessmodules.admin
/nlm debug [true|false]                namelessmodules.admin
/nlm forcecheck                        namelessmodules.admin
/nlm refresh                           namelessmodules.admin
/nlm store info                        namelessmodules.admin
/nlm store sendlink [name] [package]   namelessmodules.admin

Nested subcategories & subscriptions

NamelessMC's stock Store API doesn't expose a category's parent or a product's payment type, so on its own the plugin shows a flat category list and treats every link as one-time. The included NamelessModules bridge module fixes both by adding two read-only endpoints, /api/v2/nlm/store/categories and /api/v2/nlm/store/products, that expose parent_category, url, only_subcategories, image and payment_type. That unlocks nested subcategories and subscription link detection with zero edits to the Store module, so it survives Store updates. The plugin auto-detects these fields and falls back gracefully if the module isn't enabled.


Made by CruelWinter, cruelwinter.org. Version 1.0.0.

Recent updates

See all updates

Reviews

No reviews

Are you sure?