Boonzeet
Pokémon Secrets of the Ages Developer
- 188
- Posts
- 16
- Years
- United Kingdom
- Seen Feb 18, 2025
Boon's Mark Ribbons
![[PokeCommunity.com] [v18] Boon's SwSh-Style Mark Ribbons [PokeCommunity.com] [v18] Boon's SwSh-Style Mark Ribbons](https://i.imgur.com/0mPbwGl.png)
![[PokeCommunity.com] [v18] Boon's SwSh-Style Mark Ribbons [PokeCommunity.com] [v18] Boon's SwSh-Style Mark Ribbons](https://i.imgur.com/UNfErbP.png)
A script to emulate the marks feature of Pokémon Sword and Shield, and provide a custom tagline when you send your Pokémon out.
How to Use
Not much required to use once set up. There's a 1/1000 to 1/25 chance of various marks being attached to a caught Pokémon. A user can go into the ribbons page and press C on any ribbon, including a mark, to attach it. If a mark is attached to a Pokémon, the name of the Pokémon will be extended via a tagline in single battles.
Install
Essentials Version 18.1
Just download this zip file, extract and copy the ribbons.png file to Graphics/Pictures and place the code from markribbons.txt above main.
The script is now plug and play, so you're good to go!
Essentials Version 17.2 (No longer supported)
This plugin only supports v18 going forward. Please do not ask for help or fixes for this older version, or it will be eventually removed.
Spoiler:
First, download this linked zip file. Extract and copy the ribbons.png file to Graphics/Pictures, to overwrite the existing one.
Make these changes to PBRibbons. Remember to add a comma to the lines that you are adding below.
Below
WORLDCHAMPION = 80
add (a comma, then):
Spoiler:
Code:
MARKLUNCHTIME = 81
MARKSLEEPYTIME = 82
MARKDUSK = 83
MARKDAWN = 84
MARKCLOUDY = 85
MARKRAINY = 86
MARKSTORMY = 87
MARKSNOWY = 88
MARKBLIZZARD = 89
MARKDRY = 90
MARKSANDSTORM = 91
MARKMISTY = 92
MARKDESTINY = 93
MARKFISHING = 94
MARKCURRY = 95
MARKRARE = 96
MARKUNCOMMON = 97
MARKROWDY = 98
MARKABSENTMINDED = 99
MARKJITTERY = 100
MARKEXCITED = 101
MARKCHARISMATIC = 102
MARKCALMNESS = 103
MARKINTENSE = 104
MARKZONEDOUT = 105
MARKJOYFUL = 106
MARKANGRY = 107
MARKSMILEY = 108
MARKTEARY = 109
MARKUPBEAT = 110
MARKPEEVED = 111
MARKINTELLECTUAL = 112
MARKFEROCIOUS = 113
MARKCRAFTY = 114
MARKSCOWLING = 115
MARKKINDLY = 116
MARKFLUSTERED = 117
MARKPUMPEDUP = 118
MARKZEROENERGY = 119
MARKPRIDEFUL = 120
MARKUNSURE = 121
MARKHUMBLE = 122
MARKTHORNY = 123
MARKVIGOR = 124
MARKSLUMP = 125
In PBRibbons.getName, below
_INTL("World Champion Ribbon")
add (a comma, then):
Spoiler:
Code:
_INTL("Lunchtime Mark"),
_INTL("Sleepy-Time Mark"),
_INTL("Dusk Mark"),
_INTL("Dawn Mark"),
_INTL("Cloudy Mark"),
_INTL("Rainy Mark"),
_INTL("Stormy Mark"),
_INTL("Snowy Mark"),
_INTL("Blizzard Mark"),
_INTL("Dry Mark"),
_INTL("Sandstorm Mark"),
_INTL("Misty Mark"),
_INTL("Destiny Mark"),
_INTL("Fishing Mark"),
_INTL("Curry Mark"),
_INTL("Rare Mark"),
_INTL("Uncommon Mark"),
_INTL("Rowdy Mark"),
_INTL("Absent-Minded Mark"),
_INTL("Jittery Mark"),
_INTL("Excited Mark"),
_INTL("Charismatic Mark"),
_INTL("Calmness Mark"),
_INTL("Intense Mark"),
_INTL("Zoned-Out Mark"),
_INTL("Joyful Mark"),
_INTL("Angry Mark"),
_INTL("Smiley Mark"),
_INTL("Teary Mark"),
_INTL("Upbeat Mark"),
_INTL("Peeved Mark"),
_INTL("Intellectual Mark"),
_INTL("Ferocious Mark"),
_INTL("Crafty Mark"),
_INTL("Scowling Mark"),
_INTL("Kindly Mark"),
_INTL("Flustered Mark"),
_INTL("Pumped-Up Mark"),
_INTL("Zero Energy Mark"),
_INTL("Prideful Mark"),
_INTL("Unsure Mark"),
_INTL("Humble Mark"),
_INTL("Thorny Mark"),
_INTL("Vigor Mark"),
_INTL("Slump Mark")
In PBRibbons.getDescription, below
_INTL("Pokémon World Championships World Champion Ribbon.")
add (a comma, then):
Spoiler:
Code:
_INTL("A mark for a peckish Pokémon."),
_INTL("A mark for a sleepy Pokémon."),
_INTL("A mark for a dozy Pokémon."),
_INTL("A mark for an early-riser Pokémon."),
_INTL("A mark for a cloud-watching Pokémon."),
_INTL("A mark for a sodden Pokémon."),
_INTL("A mark for a thunderstruck Pokémon."),
_INTL("A mark for a snow-frolicking Pokémon."),
_INTL("A mark for a shivering Pokémon."),
_INTL("A mark for a parched Pokémon."),
_INTL("A mark for a sandswept Pokémon."),
_INTL("A mark for a mist-drifter Pokémon."),
_INTL("A mark of a chosen Pokémon."),
_INTL("A mark for a catch-of-the-day Pokémon."),
_INTL("A mark for a curry-connoisseur Pokémon."),
_INTL("A mark for a reclusive Pokémon."),
_INTL("A mark for a sociable Pokémon."),
_INTL("A mark for a rowdy Pokémon."),
_INTL("A mark for a spacey Pokémon."),
_INTL("A mark for an anxious Pokémon."),
_INTL("A mark for a giddy Pokémon."),
_INTL("A mark for a radiant Pokémon."),
_INTL("A mark for a serene Pokémon."),
_INTL("A mark for a feisty Pokémon."),
_INTL("A mark for a daydreaming Pokémon."),
_INTL("A mark for a joyful Pokémon."),
_INTL("A mark for a furious Pokémon."),
_INTL("A mark for a beaming Pokémon."),
_INTL("A mark for a teary-eyed Pokémon."),
_INTL("A mark for a chipper Pokémon."),
_INTL("A mark for a grumpy Pokémon."),
_INTL("A mark for a scholarly Pokémon."),
_INTL("A mark for a rampaging Pokémon."),
_INTL("A mark for an opportunistic Pokémon."),
_INTL("A mark for a stern Pokémon."),
_INTL("A mark for a kindhearted Pokémon."),
_INTL("A mark for an easily flustered Pokémon."),
_INTL("A mark for a driven Pokémon."),
_INTL("A mark for an apathetic Pokémon."),
_INTL("A mark for an arrogant Pokémon."),
_INTL("A mark for an unsure Pokémon."),
_INTL("A mark for a humble Pokémon."),
_INTL("A mark for a pompous Pokémon."),
_INTL("A mark for a lively Pokémon."),
_INTL("A mark for a worn-out Pokémon."),
In PokeBattle_Battle, find these lines:
Code:
opposing=@battlers[index].pbOppositeOpposing
if opposing.fainted? || opposing.hp==opposing.totalhp
pbDisplayBrief(_INTL("Go! {1}!",party[newpokename].name))
elsif opposing.hp>=(opposing.totalhp/2)
pbDisplayBrief(_INTL("Do it! {1}!",party[newpokename].name))
elsif opposing.hp>=(opposing.totalhp/4)
pbDisplayBrief(_INTL("Go for it, {1}!",party[newpokename].name))
else
pbDisplayBrief(_INTL("Your opponent's weak!\nGet 'em, {1}!",party[newpokename].name))
end
And replace with
Code:
opposing=@battlers[index].pbOppositeOpposing
mark = party[newpokename].setRibbon ? PBRibbons.getMarkTag(party[newpokename].setRibbon) : nil
marktitle = mark != nil ? " #{mark}" : ""
if opposing.fainted? || opposing.hp==opposing.totalhp
pbDisplayBrief(_INTL("Go! {1}{2}!",party[newpokename].name,marktitle))
elsif opposing.hp>=(opposing.totalhp/2)
pbDisplayBrief(_INTL("Do it! {1}{2}!",party[newpokename].name,marktitle))
elsif opposing.hp>=(opposing.totalhp/4)
pbDisplayBrief(_INTL("Go for it, {1}{2}!",party[newpokename].name,marktitle))
else
pbDisplayBrief(_INTL("Your opponent's weak!\nGet 'em, {1}{2}!",party[newpokename].name,marktitle))
end
And find this:
Code:
@battlers[0].pbInitialize(@party1[sendout],sendout,false)
pbDisplayBrief(_INTL("Go! {1}!",@battlers[0].name))
And replace with
Code:
@battlers[0].pbInitialize(@party1[sendout],sendout,false)
mark = @battlers[0].pokemon.setRibbon ? PBRibbons.getMarkTag(@battlers[0].pokemon.setRibbon) : nil
marktitle = mark != nil ? " #{mark}" : ""
pbDisplayBrief(_INTL("Go! {1}{2}!",@battlers[0].name,marktitle))
Lastly, in PScreen_Summary, find these lines:
Code:
ribn = @pokemon.ribbons[i]-1
imagepos.push(["Graphics/Pictures/ribbons",230+68*(coord%4),78+68*(coord/4).floor,
64*(ribn%8),64*(ribn/8).floor,64,64])
Code:
if @pokemon.setRibbon && @pokemon.setRibbon == @pokemon.ribbons[i]
imagepos.push([sprintf("Graphics/Pictures/shiny"),230+68*(coord%4),78+68*(coord/4).floor,0,0,-1,-1])
Then, add the contents of the .rb file (edit with Notepad if you need) above Main, in a script section called BoonsMarkRibbons, or whatever you want to call it.
Please credit Boonzeet if used.
Last edited: