Modules
OverviewLatCalendarLatAnglerLatCandyDropsLatFrostbiteLatGhostHuntLatUnwrapPteroAlertsPteroCrashguardPteroGroupsLatSantasSleighLatTrickOrTreatLatWitchsCauldronLatWrappedLatWrapped
Your players' year in review: a short film with music and games, and a story card to share.
Overview
- Module id
- wrapped
- Version
- 1.0.0
- Platforms
- Price
- $9.99
- Authors
- Atlantis Services
Install
- Install Lattice on a Paper or Folia server, if it is not there yet.
- Drop the LatWrapped jar into
plugins/Lattice/modules/. It loads straight away. - Put your license key in
lattice.yml, then run/lat license refresh. - Edit
config/global/wrapped/and apply it with/lat reload wrapped.
Commands
Command names and aliases are set in config.yml, so yours may differ. <required> [optional]
| Command | Description | Permission |
|---|---|---|
/wrapped
also /recap
|
Your year in review | wrapped.use |
/wrapped admin |
Wrapped admin | wrapped.admin |
/wrapped admin test [player] |
Snapshot now and open last year's Wrapped | - |
/wrapped admin demo |
Publish a Wrapped with sample numbers, to link from a store page | - |
/wrapped admin web [player] |
Make a player's web page now, skipping the cooldown | - |
Permissions
| Permission | Lets a player use |
|---|---|
wrapped.use |
/wrapped |
wrapped.admin |
/wrapped admin |
config.yml
Written to config/global/wrapped/config.yml on first start. Edit it, then /lat reload wrapped.
# Wrapped: a year in review for every player, built from vanilla statistics. # /wrapped opens a menu with two buttons: a map to hang on a wall, and the Wrapped as a web page. # Generated from WrappedSettings. Keys you delete return to their default; # keys that are not in the schema are ignored and reported on load. command: # Takes effect on restart. name: "wrapped" aliases: - "recap" permission: "wrapped.use" # For /wrapped admin, and to make web pages without waiting for the cooldown. admin-permission: "wrapped.admin" # Your server on the menu, the map and the web page. Every field is optional. branding: # e.g. YourServer, shown as 'YourServer Wrapped'. server-name: "YourServer" # A square PNG over https. For the downloadable card the host must allow cross-origin images; most do. logo-url: "" # What players join with, e.g. play.example.net, shown with a copy button. address: "play.example.net" # Your website or store over https, linked from the end of the web page. website: "" # Day the year closes and its Wrapped opens, as MM-DD. 12-26 lands it at Christmas; # days from then on count toward the next year. 01-01 gives a plain calendar year. year-closes: "12-26" # Timezone for that day, e.g. Europe/London. timezone: "UTC" # Days after the year closes that players are told on join that their Wrapped is ready. reveal-days: 14 # Colours of the map and the web page, as #rrggbb. colours: background: "#0e0f11" accent: "#38bdf8" text: "#f2f3f5" card: # Offer the map in the menu. enabled: true # Numbers on the map, 1 to 6, from the top of statistics. stats: 4 web: # Offer the web page in the menu. A player who clicks it publishes their name and numbers # to the Lattice license server, deleted after 'hours'. Nothing is sent unless they click. enabled: true # How long a page lives, 1 to 24. hours: 24 # Minutes between pages per player. Each page counts toward the license's daily quota. cooldown-minutes: 30 # Minutes a player must have played in the year to count toward the 'top X%' numbers, # so alts that joined once do not make everyone look like the top 1%. min-playtime-minutes: 30 # Years of history kept per player. keep-years: 3 # The numbers shown, in order, at most 7. Each one: # statistic a Bukkit Statistic name, e.g. PLAY_ONE_MINUTE, MINE_BLOCK, KILL_ENTITY, WALK_ONE_CM # target for MINE_BLOCK, KILL_ENTITY and the like: a block, item or entity, or * for all of them # favourite also show the target with the highest count, e.g. 'Favourite: Deepslate' (target * only) # unit COUNT, HOURS (play time) or KM (distance) # label, icon what it is called, and the item drawn for it # comparisons 'that is <name> <n> times'; amount is in the unit, the biggest that fits is used statistics: playtime: statistic: "PLAY_ONE_MINUTE" target: "" favourite: false unit: HOURS label: "Time played" icon: "CLOCK" comparisons: [] mined: statistic: "MINE_BLOCK" target: "*" favourite: true unit: COUNT label: "Blocks mined" icon: "IRON_PICKAXE" comparisons: [] hunted: statistic: "KILL_ENTITY" target: "*" favourite: true unit: COUNT label: "Mobs slain" icon: "IRON_SWORD" comparisons: [] walked: statistic: "WALK_ONE_CM" target: "" favourite: false unit: KM label: "Distance walked" icon: "LEATHER_BOOTS" comparisons: - name: "London to Paris" amount: 344.0 - name: "the length of Great Britain" amount: 1407.0 - name: "New York to Los Angeles" amount: 3936.0 fish: statistic: "FISH_CAUGHT" target: "" favourite: false unit: COUNT label: "Fish caught" icon: "FISHING_ROD" comparisons: [] crafted: statistic: "CRAFT_ITEM" target: "*" favourite: false unit: COUNT label: "Items crafted" icon: "CRAFTING_TABLE" comparisons: [] deaths: statistic: "DEATHS" target: "" favourite: false unit: COUNT label: "Deaths" icon: "SKELETON_SKULL" comparisons: [] # Each player gets the persona of the statistic they rank highest in on the server. personas: regular: statistic: "playtime" name: "The Regular" description: "Always online. The server would not be the same without you." excavator: statistic: "mined" name: "The Excavator" description: "If it is a block, you have dug through it." hunter: statistic: "hunted" name: "The Hunter" description: "Nothing that moves is safe around you." wanderer: statistic: "walked" name: "The Wanderer" description: "You have seen more of this world than anyone." angler: statistic: "fish" name: "The Angler" description: "Patience, a rod, and a lot of fish." artisan: statistic: "crafted" name: "The Artisan" description: "The crafting table is your second home." daredevil: statistic: "deaths" name: "The Daredevil" description: "Respawning is just part of the plan." # Persona for a player who ranks in nothing yet. fallback-persona: name: "The Explorer" description: "A bit of everything, everywhere."
Messages
Every line players see, in config/global/wrapped/messages.yml. Uses MiniMessage formatting.
Show messages.yml (95 lines)
# Player-facing text for wrapped. # Placeholders in {braces} are filled in by the module. # A key you delete falls back to its built-in default. admin-demo: <body>Making a demo page with sample numbers... admin-demo-link: - '<body>Demo Wrapped: <click:open_url:''{url}''><accent><u>{url}</u></accent></click>' - <muted>It lasts {hours} hours. admin-test: '<body>Test: snapshot taken for <accent>{player}</accent>, opening last year''s Wrapped.' admin-web: <body>Making a web page for <accent>{player}</accent>, cooldown skipped. admin-web-link: '<body>{player}''s Wrapped: <click:open_url:''{url}''><accent><u>{url}</u></accent></click>' card-dropped: Your inventory is full, so your card is at your feet. card-given: Here is your Wrapped card. Hang it in an item frame and take a screenshot! card-name: <accent>Wrapped {year} card-once: You already took your Wrapped card. Rejoin to take another. card-title: WRAPPED {year} card-title-brand: '{server} {year}' demo-name: Steve menu-map: <accent>Get your Wrapped map menu-map-lore: - <body>Hang it in an item frame - <body>and take a screenshot. menu-title: Your {year} Wrapped menu-title-brand: '{server} Wrapped {year}' menu-web: <accent>Open as a web page menu-web-lore: - <body>Your year as a short film - <body>with music, games and a card. - '' - <muted>Publishes your name and numbers - <muted>for {hours} hours. months: - January - February - March - April - May - June - July - August - September - October - November - December no-recap: Your first Wrapped is not ready yet. It opens on {date}. not-online: '{player} is not online.' players-only: Only a player can do that. ready: <body>Your <accent>{year} Wrapped</accent> is ready! <click:run_command:'/{command}'><accent><u>Open it</u></accent></click> unit-hours: h unit-km: km web-advancement: Advancement Made! web-bad-link: bad link web-brand-presents: '{server} presents' web-challenge: Challenge Complete! web-close: Close web-comparison: That is {name} {times} times web-cooldown: You can make another page in {minutes} minutes. web-copied: Link copied web-copy: Copy link web-copy-ip: Copy IP web-download: Download card web-failed: 'Your page could not be made: {reason}' web-fav-prompt: Which one was your favourite? web-favourite: 'Favourite: {target}' web-first-day: Your first day here web-footer: Made with LatWrapped web-guess: 'Guess: how much {label}?' web-heading: Your {year} Wrapped web-heading-brand: '{server} Wrapped {year}' web-ip-copied: IP copied web-keys: ← → skip · space pause · M mute web-now-playing: 'Now playing: {year} Wrapped' web-persona-intro: This year, you were web-persona-prompt: Which one were you? web-play: Press play web-play-on: Play on {address} web-post: Post on X web-presents: A year on the server, as told by your stats. web-published: '<body>Your Wrapped is ready: <click:open_url:''{url}''><accent><u>open it</u></accent></click> <muted>(link works for {hours} hours)' web-replay: Watch again web-right: Nailed it. web-save-hint: Long-press or right-click the card to save it. web-share: Share web-share-text: 'My {year} Wrapped: this year I was {persona}.' web-sound: Sound on or off web-summary: '{year} Wrapped' web-tap-hint: Pick one web-top: Top {top}% on the server web-unknown-error: unknown web-wait: One moment, making your page... web-website: Visit {server} web-wrong: Not quite.
