ShopBlock introduces a standalone, placeable shop block that lets players sell items without tying the experience to beacon mechanics. Server staff can distribute the custom block via /shopblock give, and players configure their offer by sneaking and right-clicking the placed block.
- Obtain a Shop Block from staff (or yourself if you have
shopblock.admin). - Place the block where you want the vending machine to live.
- Sneak and right-click the block to open the editor.
- Put a sample of the product you want to sell in the left slot, the payment stack in the right slot, and deposit additional product copies into the center slot to seed stock. Saving consumes the deposited items and adds them to the shop's inventory.
- Right-click the block (no sneaking required).
- Review the display to see the product, cost, and remaining stock.
- Click the green concrete to confirm. The plugin withdraws the payment, gives you the product, and updates stock.
- If the shop empties out, it automatically locks until the owner restocks.
- Owners can withdraw earnings directly from the editor using the gold ingot button.
- Breaking the block as the owner (or with
shopblock.admin.break) refunds remaining stock, any unclaimed earnings, and the shop block item itself so it can be moved. - Configuration persists across restarts via a YAML data file. Earnings stay banked until the owner collects them.
shopblock.admin: Allows using/shopblock giveto distribute Shop Blocks.shopblock.admin.break: Lets staff break another player's shop without owning it.
- Paper (or compatible) server on Minecraft 1.20+.
- Java 21, aligned with the Gradle build provided in this repository.
- Either
curlorwgeton the build machine so the Gradle wrapper script can fetch its bootstrap JAR on demand (or rungradle wrapperlocally to generate it beforehand).
Future integrations—such as requiring the block to sit within a beacon aura—can hook into the stored block positions without altering the core shop logic.
This repository also includes roblox-random-outfit.user.js, a Tampermonkey-compatible userscript for https://www.roblox.com/my/avatar. It adds a floating 🎲 Random Outfit button to the Roblox Avatar Editor. When clicked, the script:
- Confirms the signed-in Roblox account with
users.roblox.com. - Loads the current avatar and avatar rules from
avatar.roblox.com. - Reads supported wearable avatar asset types from the signed-in user's inventory via
inventory.roblox.com. - Randomly selects a bounded mix of owned faces, clothing, accessories, body parts, and animations.
- Equips the result through Roblox's authenticated avatar endpoint and requests a thumbnail redraw.
- Install Tampermonkey in Chrome, Firefox, or another userscript-capable browser.
- Open
roblox-random-outfit.user.jsin the browser and choose Install. - Visit
https://www.roblox.com/my/avatarwhile signed in to Roblox. - Click 🎲 Random Outfit.
The userscript runs only on https://www.roblox.com/my/avatar*, does not read or export .ROBLOSECURITY, does not use a remote server, and only sends authenticated requests directly to official Roblox API domains. Roblox's CSRF token is handled in memory from response headers and is not persisted.