Custom Images+ | GUI| Discord URLs | Multilang | WorldGuard
1.4.1Place custom images on walls, floors & ceilings in your server from any URL/Discord. Easy to use
1.4.1latestFix download linkJun 19, 2026 Se corrigio el enlace de descarga que anteriormente quedaba corrompido e impedia la descarga del jar1.4v1.4 — Visual management GUI (chest-menu for admins and users)Apr 16, 2026 v1.4 — Visual management GUI (chest-menu for admins and users) New — /image gui • Chest-based management menu unified for everyone. Opens with /image gui (alias /imagen menu). No more traveling to each image to click-delete, and no more digging through the audit log to find "who placed what" — everything is one click away. • User quick actions — the top row has a Create image button (green emerald) and a Delete image button (red TNT) so regular players can create and delete without knowing chat commands. Create prompts for a URL + scale in chat; Delete puts the player in right-click-to-delete mode with an actionbar hint, cancellable by sneaking. Designed for Java and Bedrock — including Bedrock mobile, where everyone already has a sneak button on screen. • Role-aware layout — the top rows always show the viewer's own images; the bottom row of admin shortcuts (Browse all, Filter, Hidden, Banned, Orphan scan, Leaderboard, Export CSV) only appears to holders of images.gui.admin. Regular users see decorative crystals instead. Titles differentiate scope: "Your Images" vs "Manage" so staff always know whether they're acting on their own content or the full server. Moderation • Hide / Ban / Unhide / Unban — brand-new persistent states alongside delete. Hide un-renders the image without destroying the metadata (reversible). Ban is a harder moderation flag that records admin + reason + timestamp and cannot be lifted by the creator. Both ride the existing save format — backward-compatible with v1.2/v1.3 saves. • Move (true relocate) — keeps the same database id, creator, placedAt, and flags. Admin clicks Move → confirms → right-clicks the new destination block. No delete + recreate orphan audit trail. • Bulk actions — toggle bulk-select, click multiple images, then apply Bulk Delete / Ban / Hide with one confirmation. Cuts repetitive moderation work to one step. • Context-aware buttons — ban/hide/move never show up on your own images; admins see the full toolbox only on others' images, keeping the menu uncluttered. Discovery and housekeeping • Image finder — type a keyword in chat to filter by name or URL. Admin search covers everything; regular players search their own. • Orphan scan — finds images whose item-frames were destroyed but whose metadata is still in the database. Flags them with a red marker; one click bulk-deletes the leftovers. • Owner leaderboard — top players by image count and storage used. Helps catch hoarders on big servers. • CSV export — dump the full registry to plugins/ImagesPlus/exports/images-<timestamp>.csv (17 columns including world, coords, source, URL, flags, sections, alias). Personalization • Image alias — users can set a personal label on their own images (max 32 chars) so the GUI lists Living Room instead of IMG_20250412_091541.png. The original filename stays untouched in the lore. Admins can override for any image. • Safe teleport — the TP button computes a 2–3 block viewing position perpendicular to the image and snaps to a safe floor. No falling into lava, no clipping into walls. • Confirmation dialog on every destructive action — short clear title plus the full prompt on a paper item inside the menu, so destructive clicks require two deliberate steps. Audit • New images.log action tags: HIDE, UNHIDE, BAN, UNBAN, MOVE, BULK_DELETE, GUI_TP (optional, off by default). GUI-driven deletes add via=GUI / via=BULK so you can tell them apart from chat commands. • New "History" button inside the detail menu surfaces the last 5 log entries for that image without leaving the GUI. Plugin identity • Renamed from Images to ImagesPlus in /pl and logs — avoids confusion with the original Custom Images plugin and matches the download name. On first boot the data folder plugins/Images/ is automatically migrated to plugins/ImagesPlus/ — no manual step, no data loss. Localization • 100% translatable. Every GUI title, button, lore line, click hint, message and audit line reads from lang/en.yml / lang/es.yml. Drop a pt.yml / fr.yml / any language code and run /image reload. Hot-reload works for all GUI text — no server restart needed. • Sticky Spanish selection — once a player uses /imagen their session stays in Spanish even if the GUI internally runs /image delete on their behalf. Previously any internal English-aliased call flipped them back to English mid-session. • Fixed: language: es in config now actually renders the GUI in Spanish regardless of which command alias the player used. • 170+ new message keys for the GUI, including unified color palette across all buttons (green = positive, red = destructive, gold = highlight, aqua = tool). Quality of life • Tab-complete for /images create now correctly filters to image extensions only — no more WIKI.md or images.db showing up as suggestions. • Config auto-migration adds the new gui: block without touching existing settings. New permissions Code (Text): images.command.gui — Open the menu [true] images.gui.admin — Admin rows + server-wide scope [op] images.gui.teleport — Teleport to any image [op] images.gui.move — Move an image to a new block [op] images.gui.hide — Hide / unhide [op] images.gui.ban — Ban / unban with reason [op] images.gui.delete.any — Delete any image [op] images.gui.delete.own — Delete your own images [true] images.gui.delete.distance — Delete own from any distance [true] images.gui.bulk — Bulk-select mode [op] images.gui.search — Text search [op] images.gui.export — CSV export [op] images.gui.leaderboard — Owner leaderboard [op] images.gui.orphan-scan — Orphan detection [op] Backward compatibility • Existing v1.2/v1.3 images deserialize cleanly with hidden/banned/alias defaulting to the intuitive values. No database migration required. • If you have an existing plugins/Images/ directory the plugin renames it to plugins/ImagesPlus/ on first boot. All your images, config and lang customizations survive. • Old chat commands ( /images create, /images who, etc.) keep working unchanged; the GUI is strictly additive. Thanks Special thanks to every admin that pushed back on v1.3 to make the UX tighter — the unified "Your Images" view, the short confirm titles with wrapped prompts, the contextual button visibility, and the full-translation pass are all direct consequences of that feedback.1.3v1.3 — Paper 26.1.x support + Kittle subfolder fixApr 15, 2026 v1.3 — Paper 26.1.x support + Kittle subfolder fix Major • Full Paper 26.1.x compatibility — new NMS module that targets the unified org.bukkit.craftbukkit.* package layout (no more v_X_RX suffix). Fixes the UnsupportedOperationException: Version v26_1 is not supported crash on the latest Paper builds. Also handles Mojang's split of ServerboundInteractPacket into separate interact / attack records. Bug fixes • Subfolders work again in TAB-complete and /images list — getImageFiles() now walks the images directory recursively, so users with hundreds of images organized in subfolders (pokemon/, signs/, etc.) get them listed and auto-completed properly. Big thanks to @Kittle for the report. • Better "Invalid image name" feedback — three specific messages (cannot start with a dot / path traversal not allowed / illegal character) instead of the generic one, and forward-slashes in paths are normalized cross-platform. Thanks to @fett for raising it. • Robust packet handler injection — the addBefore("packet_handler", ...) call is now wrapped with fallbacks (alternative pipeline names, then addLast as last resort), so newer Paper builds that rename the handler don't break image clicks. Compatibility • Adds 1.21.x → Paper 26.1.x. All previous versions (1.8 → 1.21.11) keep working. • Java 25 only required for the Paper 26.1 module (the bundled JAR works on any Java the server supports). Thanks Special thanks to @OldComputerMan for prompting the 26.1.x update, @CloudeLecaw for confirming the crash trace, and everyone who tested intermediate builds.1.2CUSTOM IMAGES+ v1.2 — UPDATE POST FOR SPIGOTMCApr 15, 2026 ✦━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━✦ New features Audit log — plugins/Images/images.log Every image placement and removal is logged with full context. Plain-text, grep-friendly, append-only. Code (Text): [2026-04-14 16:25:03] PLACE player=Steve uuid=... world=world x=100 y=64 z=200 direction=NORTH player_x=99.50 player_y=64.00 player_z=200.30 source=URL name=foo.png url=https://cdn.discordapp.com/... scale=1.00 [2026-04-14 16:30:15] REMOVE player=Steve uuid=... method=COMMAND_DELETE confidence=EXACT world=world x=100 y=64 z=200 image_name=foo.png creator=OtherPlayer · Toggle with logging.enabled: true in config (auto-added on first run) · Tracks confidence levels: EXACT (single click) vs PROBABLE (area delete) · Thread-safe writes, one event per line · Great for: anti-grief investigations, staff activity audits, content moderation Click-to-inspect — /imagen quien / /images who Run the command, click any image, see a full info panel: Code (Text): --- Image Info --- Name: foo.png Placed by: Steve UUID: 1b4bb76f-1bd9-45f1-9d08-f017a1c14b08 Date: 2026-04-14 16:25:03 World: world Coordinates: 100, 64, 200 Direction: NORTH Source: URL URL: https://cdn.discordapp.com/... Scale: 1.00x ---------------------- Permission: images.command.who (default op). Aliases: quien, info. DB-backed metadata per image Every image now stores its own placedAt, source ( URL/ SERVER_FILE), full URL, and scale directly in the plugin database. No schema change — backward-compatible with pre-v1.2 images (handled via EOFException in the Serializable format). /images who reads from the DB first (O(1)), only falls back to the log for older images. ✦━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━✦ "Just works" defaults (for new installs) If you were about to download this plugin for the first time, v1.2 makes the first-run experience painless: · place-mode: OP by default — the server owner can place immediately without any LP configuration · Command permissions with default: true for read-only / basic actions (manage, list, create, delete) — non-ops see clean "can't place" messages instead of "unknown command" · Destructive/staff commands still default: op (delete.near, placed, who, import, transfer, reload) · Generic example groups in config instead of random server-specific names · region-restricted: false by default — no more "nobody can place anywhere" gotcha on fresh installs ✦━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━✦ Fixes & improvements · Lang auto-merge — when a new version adds new message keys, they get merged into your existing lang/*.yml files automatically. No more <placeholder.key> appearing on screen after an update · images.command.placed is now its own permission (was sharing images.command.list in v1.1). Staff audit tools can now be granted separately from file listing · Fixed: NoSuchMethodError: CustomImage.getLocation() that happened on /images placed when the JAR was built with an incorrect merge process. v1.2 ships with a correct merge (docs included for anyone building from source) · Config migration cleaned up to use generic groups (admin, moderator, builder, vip) instead of server-specific names ✦━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━✦Upgrading from v1.1 · Stop your server · Replace the old JAR with ImagesPlus-1.2.jar · Start the server — config gets logging.enabled: true added automatically, lang files get new who.* keys merged automatically · Existing images are fully compatible. They'll show up fine, but /images who will display "Before logging (v1.2)" as the date since the metadata wasn't captured at placement time. All new placements will have full info. Breaking change: if you had non-OP staff using /images placed via the shared images.command.list permission, you'll need to grant them images.command.placed too. OPs are unaffected. ✦━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━✦ Downloads · SpigotMC: click the Download button above · Direct: play.mundoveneco.com/downloads/CustomImages-Plus-latest.jar Tested on Paper 1.21.11. Compatible with 1.8 → 1.21.11, 26.1, 26.2. Thank you to everyone downloading and testing! ─────────────────────────────────────────────────────────────── SHORT CHANGELOG (for the version description field, <500 chars): ─────────────────────────────────────────────────────────────── v1.2 — Major update: NEW: • /images who /imagen quien — click-to-inspect any image (creator, date, URL, scale) • images.log — detailed audit log of every PLACE and REMOVE • DB metadata per image (placedAt, source, URL, scale) — backward compatible IMPROVED: • Works out of the box (place-mode: OP + true defaults for basic commands) • Auto-merges new lang keys on update (no more <placeholder> messages) • images.command.placed is now its own permission (was sharing with .list) • Generic example groups in config (no more server-specific names) FIXED: • NoSuchMethodError CustomImage.getLocation() on /images placed
1.1Apr 13, 2026 1.0Apr 13, 2026
Similar projects
Plugin →Let Me Despawn
Improves performance by tweaking mob despawn rules. Say bye to pesky unintentional persistent mobs.
25MSueta
JourneyMap
Real-time map used for mapping in-game or your browser as you explore.
14.7MSueta
Emotecraft
Create your own emotes in Minecraft.
7.5MSueta
Simple Tpa
A simple tpa plugin which sends requests
5.4MSueta
Common Network
Forge and Fabric Unified Networking Solution
3.9MSueta
Set Home
A lightweight plugin for players to set their homes.
3.8MSueta