DUXPLIMA Documentation

Guide

How uxmPlots works, how to set it up and what each file holds.

uxmPlots runs plot worlds for creative and building servers: a grid of plots and roads, claiming and trust, a gallery with ratings and visits, guestbooks and tips, shared building sessions, contests with judging and a hall of fame, plot levels, a cosmetic shop, renting and selling, snapshots, and protection against griefing and crash items.

Install

  1. Put the jar in plugins/.
  2. Start the server once. The plugin writes its files into plugins/uxmPlots/ and, with create-world = true in worlds/creative.conf, creates the world creative with its own generator.
  3. Adjust the world file and config.conf, then run /uxmplots reload.

On Folia a world cannot be created while the server runs: add it to the worlds section of bukkit.yml with generator: uxmPlots, as the log says. WorldEdit or FastAsyncWorldEdit, an economy, PlaceholderAPI and Discord are optional.

Files

FileWhat it holds
config.confeverything that is not one world, one contest or one catalogue (sections below)
protection.conf, rating.conf, contests.conf, network.confthe settings of the four largest features, each under its own block name; a block an earlier release kept in config.conf moves here on the first start
worlds/<world>.confone plot world; the file name is the world name
contests/<id>.confone contest; the file name is the id
catalogues/shop.conf, personality.conf, tags.confwhat the shop sells, the sounds and looks a plot may wear, and the tags
currencies.confthe currencies prices, fees, rents and tips are paid in
levels.confwhat raises a plot's level, and what a level is worth
discord.confwebhook lines for plot and contest events
hologram.conf, text-input.confthe plot hologram and typed input
editor/, menus/*.conf, commands.conf, messages/, theme.confin-game editors, windows, commands, words, colours

Every shipped file is commented in full; this page is the map.

A plot world

KeyMeaning
create-worldcreate the world on start when the server does not have it
plot-size, road-sizeplot width and road width in blocks; a road of 0 puts plots against each other
origin.x, origin.zshift the whole grid, for example to keep spawn on a road
bottom-y, layersthe ground from the bottom up, as "<material> <depth>"; the last layer is the plot floor
wallsbody, unclaimed-top and claimed-top; the top tells passers-by which plots are free
road-material, biomethe road surface and the biome painted over the world
max-plots-per-playerthis world's own limit; 0 leaves only the total limit
visit-policywhat a new plot starts as: open, trusted or closed; owners change it with /plot visiting

The grid, layers, walls, road and biome are written by the generator. Changing them after the world exists is refused, because existing plots would no longer match. Plots are numbered from the origin: with plots of 64 and roads of 7, plot 0;0 covers blocks 0 to 63 and plot 1;0 starts at 71. A plot id is written world:x;z, such as creative:-3;5.

Claiming and limits

/plot claim takes the plot you stand on, /plot auto finds the nearest free plot within plots.auto-search-rings rings (in plots.auto-world when you are outside every plot world). /plot price shows what your next plot costs.

A player's limits come from nodes: uxmplots.limit.world.<n> per world and uxmplots.limit.total.<n> across all worlds, the highest number held winning, or unlimited. Without a node the world's max-plots-per-player and limits.default-total apply. /plot slots-buy sells room for one more plot, when slots is set up.

Merging

/plot merge <side> joins your plot with your neighbour on that side, rebuilding the road between them and, when four plots meet, the crossing. /plot unmerge splits them again. The merge section holds its rules.

Config sections

SectionWhat it decides
plotsname length and the auto claim search
limitsthe limit node prefixes and the default total
storageSQLite by default, or a shared mysql, mariadb or postgresql database
protectionwhat an untrusted player may do, and what they are told
workhow fast block rewrites (clear, reset, merge) run
snapshotspictures of a plot that can be put back
rating, visitswhat makes a rating and a visit count
guestbook, tipsnotes visitors leave, and tipping the builder
sessionsowners opening a plot for others to build on for a while
expirywhat happens to plots whose owners stopped coming
reportsreporting a build and the staff queue
leaderboards, followboards on a wall, and following builders
featuredthe pinned row staff fill and the sponsored row players buy, above the gallery ranking; neither moves the ranking
contests, archivecontest defaults, and the kept winning builds
personalitywhat a plot sounds and looks like to stand in
mergehow many plots may be held as one; 1 turns merging off
crash-itemsitems a client or server cannot survive, refused on a plot; every rule is off by default
slotsbuying room for another plot
networkhow servers on one database hear from each other

Contests

A contest file sets its phases and times, worked out from the clock so a restart loses nothing. Players enter with /contest enter <contest> [team], invite teammates, then judge with /contest tour and /contest vote. Staff end a phase early with /uxmplots phase <contest>. Winners go to the archive and /contest hall.

Commands

CommandPermissionWhat it does
/contest edit <contest>uxmplots.contest.editbuild and change a contest in game
/contest enter <contest> [team]uxmplots.contest.enterread what contests are running
/contest entries <contest>uxmplots.contestread what is entered in a contest
/contest halluxmplots.contest.hallread the hall of fame
/contest info <contest>uxmplots.contestread one contest
/contest invite <contest> <player>uxmplots.contest.enterask somebody onto your contest team
/contest join <contest>uxmplots.contest.enterjoin a team on a contest entry
/contest leave <contest>uxmplots.contest.entertake your build out of a contest
/contest scores <contest>uxmplots.contestread what a contest has scored so far
/contest tour [contest]uxmplots.contest.votewalk the entries you have not judged
/contest vote [contest] [stars]uxmplots.contest.votewalk the entries, or score the one you stand in
/plot abandonuxmplots.abandongive a plot of yours back
/plot autouxmplots.claimtake the next free plot and go to it
/plot ban <player>uxmplots.bankeep somebody off a plot of yours
/plot biome <biome>uxmplots.biomeput one of the world's biomes on a plot of yours
/plot biome-listuxmplots.biomeread the biomes this world offers
/plot border-listuxmplots.borderread the borders this world offers
/plot border <pattern>uxmplots.borderlay a border on the wall of a plot of yours
/plot browseuxmplots.browseopen the gallery
/plot buy [kind] [entry]uxmplots.shopbuy something a plot may wear
/plot chatuxmplots.chattalk to the people standing in this plot
/plot claimuxmplots.claimtake the plot you are standing on
/plot clearuxmplots.cleartake down what you built, keeping the ground
/plot feel <kind> [choice]uxmplots.feelchoose what a plot of yours sounds and looks like
/plot feel-list <kind>uxmplots.feelread what one kind has on offer
/plot flag <flag> [value]uxmplots.flagread and change the flags on a plot of yours
/plot flagsuxmplots.flagread every flag and what it does
/plot floor-listuxmplots.floorread the floors this world offers
/plot floor <pattern>uxmplots.floorlay one of the world's floors on a plot of yours
/plot followinguxmplots.followread who you follow
/plot follow <player>uxmplots.followfollow a builder and hear what they build
/plot ground-listuxmplots.groundread the grounds this world offers
/plot ground <pattern>uxmplots.groundfill what a plot of yours is made of under its floor
/plot guestbookuxmplots.guestbookread a plot's guestbook
/plot hide [value]uxmplots.hidekeep a plot of yours out of the gallery
/plot home [number]uxmplots.homego to a plot of your own
/plot infouxmplots.inforead who owns the plot you are standing on
/plot leaderboard-show <board>uxmplots.leaderboardread one board in full
/plot leaderboarduxmplots.leaderboardread one of the boards
/plot leveluxmplots.levelread how far a plot has climbed
/plot marketuxmplots.sellread what is for sale
/plot membersuxmplots.trustsee who builds here and who is kept off
/plot merge <side>uxmplots.mergehold plots of yours as one
/plot mute <player>uxmplots.followkeep following somebody without hearing about it
/plot name [name]uxmplots.namewrite a name on a plot of yours
/plot outlineuxmplots.outlinedraw the edge of a plot in the air for a few seconds
/plot owneduxmplots.shopread what you have bought from the shop
/plot priceuxmplots.claimread what your next plot costs
/plot randomuxmplots.visitgo to a plot nobody sent you to
/plot rate-part <part> <stars>uxmplots.raterate one part of a build
/plot rate <stars>uxmplots.ratesay what you think of somebody else's plot
/plot rent-canceluxmplots.rentstop offering a plot of yours to rent
/plot renting-mineuxmplots.rentread what you rent and rent out
/plot rentinguxmplots.rentread what you are renting and what you rent out
/plot rent [price] [currency] [days]uxmplots.rentput a plot of yours up to rent, or take one
/plot report <reason>uxmplots.reportsay there is something wrong with a build
/plot resetuxmplots.resetput a plot of yours back as it was generated
/plot sell-canceluxmplots.selltake a plot of yours off the market
/plot sell <price> [currency]uxmplots.sellput a plot of yours up for sale
/plot session-closeuxmplots.sessionclose a building session
/plot session-joinuxmplots.sessionjoin somebody's building session
/plot session-leaveuxmplots.sessionleave a building session
/plot session-open <minutes>uxmplots.sessionopen a plot of yours for others to build on
/plot sessionsuxmplots.sessionsee the sessions you can join
/plot sessionuxmplots.sessionread the sessions that are open
/plot shop [kind]uxmplots.shopread what a plot may wear
/plot sign <note>uxmplots.guestbookleave a line in somebody's guestbook
/plot slots-buyuxmplots.slotsbuy room for another plot
/plot slotsuxmplots.slotsread how much room you have, and buy more
/plot snapshot-listuxmplots.snapshotread the pictures you have taken
/plot snapshot-restore <name>uxmplots.snapshotput one of your pictures back
/plot snapshotuxmplots.snapshottake a picture of a plot of yours
/plot sponsor-buyuxmplots.sponsorbuy a sponsored place in the gallery
/plot sponsoruxmplots.sponsorread what a sponsored place in the gallery costs
/plot tagsuxmplots.tagread the words a plot wears
/plot tag <tag>uxmplots.tagput a word on a plot of yours
/plot template [name]uxmplots.templateput a layout the operator keeps down on a plot of yours
/plot template-save [as]uxmplots.template.savekeep a plot as a layout
/plot tip <amount> [currency]uxmplots.tiptip the builder of a plot you are standing in
/plot tipsuxmplots.tipread what a plot has been tipped
/plot tp <plot>uxmplots.visitgo to a plot by its coordinates
/plot trust <player> [grades]uxmplots.trustlet somebody build on a plot of yours
/plot unban <player>uxmplots.banlet somebody back in
/plot unfollow <player>uxmplots.followstop following a builder
/plot unmergeuxmplots.mergesplit a plot of yours back up
/plot unmute <player>uxmplots.followhear from somebody you follow again
/plot untrust <player>uxmplots.trusttake that away again
/plot visiting <policy>uxmplots.visitingsay who may come to a plot of yours
/plot visit <target>uxmplots.visitgo to somebody's plot, or to a plot
/plot wall-listuxmplots.wallread the walls this world offers
/plot wall <pattern>uxmplots.wallbuild the ring around a plot of yours
/uxmplots board-plant <board> <name>uxmplots.admin.boardplant a board where you are standing
/uxmplots board-uproot <name>uxmplots.admin.boardtake a board down
/uxmplots deleteuxmplots.admin.deletetake any plot back from its owner
/uxmplots doctoruxmplots.admin.doctorask how this plugin is
/uxmplots inactiveuxmplots.admin.inactiveread every plot whose owner has stopped coming
/uxmplots owner <player>uxmplots.admin.ownerhand any plot to somebody else
/uxmplots phase <contest>uxmplots.admin.phaseend the phase a contest is in
/uxmplots pinuxmplots.admin.pinput a build on the gallery's pinned row
/uxmplots pregen-start <world>uxmplots.admin.pregenstart a world generating ahead again
/uxmplots pregen-stop <world>uxmplots.admin.pregenstop a world generating ahead
/uxmplots redstoneuxmplots.admin.redstoneswitch a plot's redstone back on before its pause runs out
/uxmplots reloaduxmplots.admin.reloadread the configuration again
/uxmplots report <decision> <plot>uxmplots.admin.reportdecide a report
/uxmplots reportsuxmplots.admin.reportsread the report queue
/uxmplots resetuxmplots.admin.resetput any plot back as the generator made it
/uxmplots snapshotuxmplots.admin.snapshottake a picture of any plot
/uxmplots staffuxmplots.admin.reportsopen the staff bench over the plot you stand on
/uxmplots unlockuxmplots.admin.unlocklet go of a contest lock on a plot, or put it back
/uxmplots unpinuxmplots.admin.pintake a build off the pinned row
/uxmplots versionuxmplots.admin.versionread the version this server runs
/uxmplots world-listuxmplots.admin.worldread every plot world this server runs
/uxmplots world <world>uxmplots.admin.worldset a plot world up in game

/plot visit <target> takes a player name or a plot id. /plot trust <player> [grades] takes optional grades of trust. The names and aliases come from commands.conf. The reference lists the default aliases and every permission.

Placeholders

PlaceholderValue
%uxmplots_plot_id%where the plot is, such as creative:-3;5
%uxmplots_plot_world%the world it is in
%uxmplots_plot_owner%who owns it, or empty on a free plot
%uxmplots_plot_name%what the owner called it, or empty
%uxmplots_plot_members%how many players are trusted on it
%uxmplots_plot_banned%how many are banned from it
%uxmplots_plot_rating%the average out of five, or empty when unrated
%uxmplots_plot_votes%how many people have rated it
%uxmplots_plot_visits%how many different people have been there
%uxmplots_plot_tags%the words it wears, separated by commas
%uxmplots_plot_age_days%how many days ago it was claimed
%uxmplots_plot_level%how far the plot has climbed
%uxmplots_plot_level_points%what it has earned altogether
%uxmplots_plot_level_next%points to the next level, or empty at the top
%uxmplots_plot_tips%what it has been tipped, in every money anybody has tipped it in, or empty when nobody has
%uxmplots_plot_honours%how many contests it has taken an honoured place in, or empty when none
%uxmplots_plot_honours_best%the best place it has taken, or empty when none
%uxmplots_plot_note_author%who wrote the guestbook note its owner pinned, or empty when none is pinned
%uxmplots_plot_note%the guestbook note its owner pinned, or empty when none is pinned
%uxmplots_contest_name%the running contest, which is the one building, locked or being judged, and of several the first by id; empty between contests
%uxmplots_contest_id%its id, as its file is called
%uxmplots_contest_phase%the phase it is in, as its id
%uxmplots_contest_phase_word%the same, in the reader's language
%uxmplots_contest_left%whole minutes until that phase ends
%uxmplots_contest_time_left%the same, written out in the reader's language
%uxmplots_contest_entered%true when this player has entered it
%uxmplots_contest_entries%how many entries it holds
%uxmplots_contest_<id>_<field>%any of those eight, for the contest of that id rather than the running one
%uxmplots_owned%how many plots this player holds anywhere
%uxmplots_owned_here%how many they hold in the world they are standing in
%uxmplots_limit%how many they may hold anywhere, or empty when uncapped
%uxmplots_in_plot%true or false
%uxmplots_is_owner%whether they own the plot they are standing in
%uxmplots_board_<board>_<place>_name%what that line is called
%uxmplots_board_<board>_<place>_value%what it scored
%uxmplots_board_<board>_<place>_plot%where the plot is

The plot_ family answers about the plot the reader stands in.

Troubleshooting

  • A world will not start. On Folia, add it to bukkit.yml with generator: uxmPlots.
  • A change to a world file is refused. The world exists and its grid or layers would no longer match.
  • A WorldEdit edit leaves blocks unchanged. Blocks outside the plot the player may build on are not written; uxmplots.bypass lifts this for staff.
  • /plot auto finds nothing. Raise plots.auto-search-rings, or the world is full.