HomeJavaModsResizePlayer
ResizePlayer
ModsJava

ResizePlayer

by igromania_ · on Modrinth

Smoothly change player size with permission-based donator tiers, automatic timed resets, and per-world restrictions.

⬇ Download on Modrinth
ResizePlayer — screenshot 1ResizePlayer — screenshot 2ResizePlayer — screenshot 3ResizePlayer — screenshot 4

Resize

Smoothly change a player's size in-game, with donator classes, automatic timed resets, and per-world restrictions — built for servers that sell size perks and need it to expire cleanly.

Requirements

Installation

  1. Drop the jar into your server's plugins/ folder and restart (or /reload, though a restart is safer).
  2. A config.yml and a lang/ folder (with en.yml and ru.yml) will be generated in plugins/Resize/.
  3. Set language: "en" or language: "ru" in config.yml, edit whatever you want, then run /resizereload.

Features

Commands

Command Permission Description
/resize <scale> resizeplugin.resize Resize yourself
/resize <player> <scale> resizeplugin.resize.others Resize another player
/resizeschedule <player> <duration> resizeplugin.schedule Schedule an automatic reset back to normal after a delay
/resizecancel <player> resizeplugin.schedule Cancel a pending scheduled reset
/resizetime [player] resizeplugin.time / resizeplugin.time.others Check how long until a size auto-resets
/resizereload resizeplugin.reload Reload config.yml and the active language file

Duration format for /resizeschedule: 30d, 12h, 45m, 20s, or combinations like 1d12h — the same tokens LuckPerms uses for settemp.

Permissions

Permission Default Description
resizeplugin.resize false Use /resize on yourself. Grant this to your donator rank (or see below to make it free for everyone)
resizeplugin.resize.extended false Ships as an example donator tier (0.0625–16.0) in scale.tiers — rename/replace freely
resizeplugin.resize.others op Resize other players
resizeplugin.bypass.cooldown op Bypass the cooldown
resizeplugin.bypass.worldrestriction op Ignore world restrictions entirely
resizeplugin.schedule op Use /resizeschedule and /resizecancel
resizeplugin.reload op Use /resizereload
resizeplugin.time true Check your own remaining time with /resizetime
resizeplugin.time.others op Check another player's remaining time
resizeplugin.* false Grants everything above

Donator size classes (scale.tiers)

Instead of one fixed range, config.yml has an ordered list of size classes. Each has its own permission node and its own min/max range:

scale:
  tiers:
    - permission: ""
      min: 0.8
      max: 1.15
    - permission: "resizeplugin.resize.extended"
      min: 0.0625
      max: 16.0
    # - permission: "resizeplugin.tier.iron"
    #   min: 1.0
    #   max: 1.5
    # - permission: "resizeplugin.tier.diamond"
    #   min: 2.0
    #   max: 2.5

Making /resize itself free (or donator-only)

By default resizeplugin.resize is required to use /resize at all (recommended if size is a paid perk). If you'd rather let everyone use the base range and only gate the bigger ranges behind donator tiers, flip this in config.yml:

features:
  require-resize-permission: false

Solving the classic "temp permission expires, size doesn't" problem

Donation panels typically grant a size perk with something like:

lp user {player} permission settemp resizeplugin.resize.extended true 30d

That alone doesn't reset the player's size when the 30 days are up — LuckPerms and the plugin don't talk to each other. Pair it with a second command from your panel:

resizeschedule {player} 30d

The plugin stores this in scheduled-resets.yml inside its data folder, checks for due resets on an interval (configurable, see below), and applies it even if the player is offline when it fires — it catches up on their next login. It survives restarts and doesn't depend on the LuckPerms permission itself still existing; it just reliably sets the player back to scale.base-value at the scheduled time. Players can check their own remaining time with /resizetime.

Per-world restrictions

worlds:
  disabled-worlds:
  #  - "world_nether"
  force-reset-worlds:
  #  - "world_nether"
  #  - "world_the_end"

Turning features on/off

config.yml has a features section so you can disable parts of the plugin without touching anything else:

features:
  world-restrictions-enabled: false   # the two world lists above
  scheduling-enabled: true            # /resizeschedule and /resizecancel
  cooldown-enabled: true              # the /resize cooldown
  require-resize-permission: true     # whether resizeplugin.resize is required at all

Performance / the "check every second" scheduler

scheduling.check-interval-seconds (default 1) controls how often the plugin scans for due scheduled resets. This is a cheap in-memory map scan — even at 1 second it's not something you'll notice on server performance — but you can raise it (e.g. 5) if you want to be extra conservative; resets will then fire up to that many seconds late.

Cooldown

cooldown:
  seconds: 30

Seconds a player must wait between uses of /resize on themselves. Ignored entirely if features.cooldown-enabled: false, and bypassable per-player with resizeplugin.bypass.cooldown.

Localization & colors

config.yml's language key points at a file in lang/ (en.yml and ru.yml are included — add your own by dropping a new <code>.yml in that folder and setting language to match). Every message, including the prefix shown before each line, lives in that file and is parsed with MiniMessage, so named colors, <#RRGGBB> hex codes, and <gradient:...> all work anywhere in it. Edit, save, /resizereload — no restart needed.

Troubleshooting

If a future Paper release removes Attribute.GENERIC_SCALE (it's currently deprecated in favor of a registry lookup, scheduled for removal no earlier than 1.22) and the plugin fails to load with an Attribute-related error on startup, check for a plugin update or report it on the issue tracker with your exact Paper version.

🐛 Support & Feedback

Found a bug? Have a suggestion? Feel free to:

Verified by MCModsHub

These come from our own check of the pack file, not from the source page.

Explore more