Supported Minecraft servers: Paper 1.21.4-1.21.10
This is a patch following v6.0.0 with minor fixes. Please see the full v6.0.0 changelog and v6 Upgrade Guide if upgrading from before v6.0.0.
- Fix version string in paper-plugin.yml being formatted incorrectly
- Fix config.yml parsing of floating-point numbers with no decimal point
- Allow zero values for
worldCoordinateScaleOverrides - Fix metrics reporting wrong statistic for
worldCoordinateScaleOverrides - API: Add
Offset#applymethod to allOffsettypes
Supported Minecraft servers: Paper 1.21.4-1.21.10
CoordinateOffset 5.0.0 just came out last month, but thanks to a breakthrough I made in immediate offset changes, it's already time for another major release.
"Immediate offset changes" means that the plugin no longer has to wait for the next opportune event to change a player's
offset. By simulating a teleport, the plugin can change a player's offset at any time. This allows for commands like
/offset regenerate and /offset set. It also allows safe offset changes when the player teleports any distance.
If you like reading, check out the fully documented list of changes in the v6 Upgrade Guide. You should especially read this if you made any significant configuration changes or use the CoordinateOffset API. Otherwise, here's the summary of everything new:
- Regular backups are still mandatory.
- Add
/offset regenerateand/offset setcommands. - Add
PermissionOffsetProvider. - Add option to specify
offsetProviderOverridesrules based on player name, world key, and world UUID. (Previously only player UUID and world name were supported.) - Add
regenerateOnTeleportandminimumTeleportDistanceoptions to RandomOffsetProvider and ZeroAtLocationOffsetProvider. (ReplacesresetOnDistantTeleportandallowUnsafeResetOnDistantTeleportsettings) - Rename
resetOn*offset provider options toregenerateOn*to match the new command. (Configuration will automatically migrate and leave values unchanged.) - Rename
persistentRandomOffsetProvider option toregenerateOnJoin. (Configuration will automatically migrate and leave behavior unchanged;falseandtrueare swapped automatically.) - Remove
persistenceKeyRandom offset provider option in favor of using provider name. - Add
regenerateOnJoinoption toZeroAtLocationOffsetProvider, allowing zero-at-location offsets to persist across joins and server restarts. - Default all
regenerateOn*options to false. (Thepersistentoption previously defaulted to false; newly generated configurations now persist random offsets forever by default.) - Redesign internal handling for scaling offsets between worlds.
- Offsets now scale automatically based on world coordinate scale (e.g. nether scales down by 8).
- Move
worldScalingandworldAlignmentoptions out of offset provider settings and into optionalworldCoordinateScaleOverridesglobal configuration. (Not automatically migrated from the previous version)
- Add a default
offsetProviderOverridesrule that disables offsets in the end. (Only for newly generated configs; can be removed if desired.) - Automatically disable offsets for Bedrock players with no extra permissions/config required.
- Add
messages.ymlto allow customization/translation of most plugin messages. - API Changes
- Offsets returned from custom offset providers are now split into
ScalableOffsetandFixedOffsetto give explicit control over how providers interact with world coordinate scaling. - Add new API endpoints to
regenerateOffsetandsetOffsetfor immediate offset changes. - Add
onOffsetSetByCommandinterface to offset providers.
- Offsets returned from custom offset providers are now split into
Supported Minecraft servers: Paper 1.21.4-1.21.10
I'm proud to announce CoordinateOffset's latest major release, 5.0.0. This release overhauls lots of internal code and restructures the entire project. This will facilitate some new features and platform support that I've been wanting to add for a while. Please report bugs on the issue tracker or in Discord.
Upgrading from CoordinateOffset 4.0
If you just want to upgrade, be aware of the following:
- Regular backups are mandatory.
- Minecraft versions 1.21.3 and below and all Spigot servers are no longer supported. (Read below for more info)
- PacketEvents is now required as a dependent plugin. Please install the latest development build (for now, PE's latest release does not support MC 1.21.10).
- Your CoordinateOffset
config.ymlwill be stripped of all comments and reorganized on upgrade. Your existing configuration will be backed up toconfig.v4.old.ymlin the plugin's data folder before it is migrated. All saved configuration should work the same as it did before the upgrade. /offsetreloadis now/offset reload./offset <player>is now/offset query <player>.
Dropping support for <1.21.4 and Spigot
Minecraft versions below 1.21.4 and all Spigot servers are no longer supported. Paper hard-forked from Spigot almost a year ago, and 1.21.9 was the first version where Paper's decisions split away from Spigot in a way that affects CoordinateOffset. Dropping support let me delete a lot of legacy code, rewrite the command system in Brigadier, and spend less time testing new releases.
Based on bStats data, at the time of writing, only 2 of 41 servers running CoordinateOffset are using Spigot. 4 of 41 servers are running a Minecraft version below 1.21.4. It doesn't make sense to accommodate these servers with new plugin development. My apologies if you are affected, but please stay on v4.0.16 if you need it.
Full Changelog
- Support 1.21.9 and 1.21.10
- Convert plugin to a Paper plugin and increase API version to 1.21.4
- Stop shading PacketEvents; require PacketEvents as a dependency
- Replace configuration system with ConfigLib
- Configuration is now automatically formatted and new options are added during plugin load
- Comments and unexpected configuration will be deleted when the plugin loads
- Add new
obfuscateDebugPropertySubscriptionsconfig.yml setting- Minecraft 1.21.9+ has "debug" properties that clients can enable. These properties show real coordinates inside entity brain data (such as bees and villagers).
- The new setting disables debug properties for all clients with an offset applied.
- This setting is enabled by default. Disabling it makes these debug flags work but reveals offsets to players.
- Rewrite
/offsetcommand- The output of all subcommands is now formatted more nicely
- The command gives proper suggestions based on permissions
/offsetreloadis now/offset reload/offset <player>is now/offset query <player>- All permissions are unchanged
- Add a proper API published on Maven Central
- See API wiki page for details
- Remove
debugconfig.yml setting- This setting was not intended for production use and caused plugin errors when enabled.
- Various internal changes
- Restructure code to be in
api,core, andpapersubprojects for increased modularization - Redesign offset change logic during join/respawn/world change to more accurately map to the game's protocol
- Redesign offset storage logic to be more efficient with concurrency
- Restructure code to be in
- Fix console errors on player login for versions up to 1.21.4
- Rate-limit console spam during packet error conditions
- Support 1.21.8
- Support 1.21.7
- Support 1.21.6
- Fix ghost items appearing on the cursor when moving items with data components in an inventory with an offset applied in 1.21.5
- Fix underground rain and missing beacon beams in 1.21.5 caused by missing heightmaps
- Support 1.21.5
- Fix structure blocks being unusable when an offset is applied
- Fix chat validation error when plugin is installed in certain Geyser/offline-mode setups
- Update packetevents dependency
- Fix compatibility with GrimAC
- Update packetevents dependency
- Support 1.21.4
- Fix packet decoding error and kick caused by potions in inventory or in a container
- Update packetevents dependency
- Support 1.21.2 and 1.21.3
- Update packetevents dependency
- Make "version not found" joke in the changelog
- Support 1.21.1
- Fix "Unknown player of Offset lookup" errors related to logging in from another location
- Fix "Unknown player for Offset lookup" errors printed occasionally when players disconnect
- Fix Random offsets occasionally resetting when changing worlds or dying even when the option is disabled
- Update packetevents dependency
- Fix NBT errors causing world to sometimes not load when joining
- Support 1.21
- Fix movement near bamboo and dripstone when an offset is applied
- NOTE: Servers migrating from v3 should add the
fixCollisionsection to their CoordinateOffset config.yml. However, this fix is enabled by default even if these lines are omitted.
- NOTE: Servers migrating from v3 should add the
- Remove separate PacketEvents dependency
- PacketEvents is now shaded into CoordinateOffset, so it is not necessary to install as a separate plugin.
- Several fixes to 1.20.6 bugs present in PacketEvents v2.3.0
- Fix players being kicked while near a horse or wolf that is wearing armor (packetevents#827)
- Fix players respawning instantly after dying (packetevents#816)
- Fix treasure maps with icons kicking players (packetevents#811)
- Fix banners with patterns kicking players (packetevents#772)
- Fix decorated pots in an inventory kicking players (packetevents#768)



