Internet Explorer is not supported. Please upgrade to a more modern browser.
NamelessMC store plugin with a /buy menu and admin commands
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
/buyGUI 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.
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.
/buy store GUI (add your photo here)/buy GUI: paginated categories, subcategory drill-down, and per-product checkout links (one-time or subscription, auto-detected).secret, checkout, lookup, debug, forcecheck, refresh, plus module-scoped store info / store sendlink.lang.yml (colours + {placeholders}, hot-reloadable).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.
1 · Minecraft plugin (game server)
NamelessModules.jar into your server's plugins/ folder and start the server once. This generates plugins/NamelessModules/config.yml and lang.yml.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)
modules/NamelessModules/ folder into your NamelessMC site root, so it lands at modules/NamelessModules/.config.yml, set list-route: "nlm/store".3 · Finish
/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".
/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 playerAll admin commands require namelessmodules.admin. /nlmstore [sub] is a shortcut for /nlm store [sub].
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.
# 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
# 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 »"
# 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
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.
No reviews