Skript icon indicating copy to clipboard operation
Skript copied to clipboard

[Suggestion] Add advancement creation as native feature

Open CityPvP opened this issue 8 months ago • 2 comments

Suggestion

Advancements are a core Minecraft feature and currently require third-party addons like skript-advancements. Native support in Skript would reduce dependencies and improve accessibility.

Proposed Syntax

advancement "skript:my_advancement":
    title: "Welcome!"
    description: "You just joined the server"
    icon: golden_apple
    background: "minecraft:textures/gui/advancements/backgrounds/adventure.png"
    parent: "minecraft:story/root"
    show toast
    announce to chat
    hidden

    criteria:
        trigger "minecraft:tick"

Managing Progress

give advancement "skript:my_advancement" to player
revoke advancement "skript:my_advancement" from player

Relevant Javadocs

Why?

Advancements are an important part of Minecraft progression and storytelling. Adding native support for them in Skript would allow server owners and Skript developers to create immersive experiences without relying on external addons.

This feature would:

  • Increase accessibility for beginners by removing the need to write JSON or install extra plugins.
  • Make Skript more aligned with core Minecraft mechanics.
  • Simplify the creation and management of custom gameplay objectives.
  • Encourage cleaner, more maintainable scripts for servers that want custom achievements or tutorials.

Considering Skript already supports many native Minecraft features (like scoreboards, boss bars, etc.), advancements would be a natural and valuable addition.

Other

If needed, I’d be happy to help refine the syntax or contribute to testing. I believe this feature could be a major step toward making Skript even more powerful and beginner-friendly.

Agreement

  • [x] I have read the guidelines above and affirm I am following them with this suggestion.

CityPvP avatar Jun 03 '25 10:06 CityPvP

There is no safe way to create an advancement in Spigot, there is UnsafeValues.html#loadAdvancement, but it can differ between versions which adds extra maintenance (same reason Skript doesn't use NMS) I'll keep this open incase Paper adds API for it in the future

erenkarakal avatar Jun 03 '25 10:06 erenkarakal

Advancements are on the Paper To-Do list of stuff that would be nice to expose but is blocked by a bunch of other things which need to be done first; This API will not be "safe" as it's exposing raw underlying mojang data stuff which is subject to change and frequently changes, so there would be 0 safety assurance attached to it across versions

CityPvP avatar Jun 03 '25 12:06 CityPvP