Programming CleanRMT: A RMT Formatting Tool

Nineage

Pugnacious.
is a Programmeris a Community Contributoris a Tiering Contributoris a Top Contributoris a Site Content Manager Alumnusis a Forum Moderator Alumnus
Introduction
The Rate My Team forum is a valuable resource to the Smogon community, both allowing new users to get feedback on and improve their teambuilding, and allowing more experienced players to showcase their teams. However, new user and more experienced player alike can feel daunted by the prospect of formatting their team: that is to say, turning a PS! importable into a visually appealing team.

In response to this, TheFenderStory and I have co-built an online tool that will convert a importable team into a BBcode-formatted Rate My Team thread. All you have to do is paste your team in, select some formatting options, and write the descriptions for your Pokemon. You can find the tool at: https://clean-rmt.herokuapp.com/

How To Use:
Using the tool is simple. Take a valid PS! Importable and paste it into the first box. Select your preferred options (a more detailed description of the options is below), and click Submit. Then, copy the result and create the thread in which you want to make your RMT. Then you must click the Use BB Code Editor in the top right. Paste your formatted team into the editor. At this point, you can go back to using the normal editor by clicking "Use Rich Text Editor".
But wait! Your RMT isn't complete! Remember to fill out descriptions for each Pokemon, and Introduction, and Conclusion that comply with RMT Forum standards before posting.


What Works
For your convenience, we have listed all the available options below. Some (I hope) are intuitive, others might be less so.
Build Process: Whether to display a Teambuilding Process section. This assumes your team is in the order you built it in.
Font: The font that your descriptions will be written in.
Align: The basic alignment (Left/Center/Right) of your RMT.
Header Size: The size of your headers (Eg. Introduction, Conclusion). Default is 3 (the size of this text).
Bold Headers: Whether to make headers bold.
Underline Headers: Whether to underline headers.
Header Font: The font of your headers.
Image Type: The type of image to be used for your Pokemon sprites.
Set Format: The format Pokemon sets should be displayed in. This is the least intuitive , so here are some samples of what each format looks like:
phanpy.gif

Phanpy @ Eviolite
Ability: Pickup
EVs: 196 Atk / 196 Def / 116 SpD
Impish Nature
- Counter
- Earthquake
- Gunk Shot
- Knock Off​
phanpy.gif

Phanpy @ Eviolite
Ability: Pickup
Nature: Impish
EVs: 196 Atk / 196 Def / 116 SpD
Moves: Counter | Earthquake | Gunk Shot | Knock Off​
phanpy.gif
Phanpy @ Eviolite | Pickup
Impish | 196 Atk / 196 Def / 116 SpD
• Counter
• Earthquake
• Gunk Shot
• Knock Off

phanpy.gif

@
eviolite.png

Ability- Pickup
EVs- 196 Atk | 196 Def | 116 SpD
Nature- Impish

Counter | Earthquake | Gunk Shot | Knock Off

What We Are Working On
There are a few known issues and things we would like to include in future updates to the formatting tool. They include:
  • Fixing certain formes (Kyurem, Rotom, etc.) which have broken sprites
  • Adding support for pastebin and hastebin links instead of just importables
  • Adding support for teamdumps
  • Allowing rearrangement of the Teambuilding Process section
If you have any ideas for improvements or new options, please let us know!

How You Can Help
GitHub Link: https://github.com/TheFenderStory/CleanRMT. Feel free to submit a pull request if you can handle virtually unreadable code!
If you aren't a coder, you can still help us out by using the tool and letting us know what you want to see added in this threat.

The link, one more time:
 
Here is a sample output of what the RMT tool can do:

vulpix.gif
petilil.gif
mienfoo.gif
pawniard.gif
cranidos.gif
vullaby.gif

Introduction

**Introduction goes here**

Teambuilding Process

vulpix.png

**Why did you choose this pokemon?**
vulpix.png
petilil.png

**Why did you choose this pokemon?**
vulpix.png
petilil.png
mienfoo.png

**Why did you choose this pokemon?**
vulpix.png
petilil.png
mienfoo.png
pawniard.png

**Why did you choose this pokemon?**
vulpix.png
petilil.png
mienfoo.png
pawniard.png
cranidos.png

**Why did you choose this pokemon?**
vulpix.png
petilil.png
mienfoo.png
pawniard.png
cranidos.png
vullaby.png

**Why did you choose this pokemon?**

The Team

vulpix.gif

SCARFPIX (Vulpix) @ Heat Rock
Ability: Drought
EVs: 52 HP / 196 SpA / 236 Spe
Timid Nature
IVs: 0 Atk
- Fire Blast
- Energy Ball
- Hex
- Will-O-Wisp
**Why did you choose this pokemon? What does it do for your team?**

petilil.gif

LO PETILIL (Petilil) @ Life Orb
Ability: Chlorophyll
EVs: 36 Def / 200 SpA / 36 SpD / 200 Spe
Timid Nature
IVs: 0 HP / 0 Atk / 30 SpA / 30 Spe
- Solar Beam
- Hidden Power [Fire]
- Sleep Powder
- Healing Wish
**Why did you choose this pokemon? What does it do for your team?**

mienfoo.gif

SCARFOO (Mienfoo) @ Eviolite
Ability: Regenerator
EVs: 196 Def / 36 SpD / 236 Spe
Jolly Nature
- High Jump Kick
- Knock Off
- Acrobatics
- U-turn
**Why did you choose this pokemon? What does it do for your team?**

pawniard.gif

SCARFPAWN (Pawniard) @ Berry Juice
Ability: Defiant
EVs: 236 Atk / 36 Def / 36 SpD / 196 Spe
Jolly Nature
- Sucker Punch
- Knock Off
- Iron Head
- Stealth Rock
**Why did you choose this pokemon? What does it do for your team?**

cranidos.gif

SCARFCRAN (Cranidos) @ Choice Scarf
Ability: Mold Breaker
EVs: 60 HP / 236 Atk / 212 Spe
Jolly Nature
- Head Smash
- Earthquake
- Zen Headbutt
- Stone Edge
**Why did you choose this pokemon? What does it do for your team?**

vullaby.gif

SCARFABY (Vullaby) @ Eviolite
Ability: Overcoat
EVs: 116 HP / 76 Atk / 156 Def / 76 SpD / 36 Spe
Adamant Nature
- Brave Bird
- Knock Off
- Defog
- Roost
**Why did you choose this pokemon? What does it do for your team?**

Conclusion

**Conclusion goes here**

SCARFPIX (Vulpix) @ Heat Rock
Ability: Drought
Level: 5
EVs: 52 HP / 196 SpA / 236 Spe
Timid Nature
IVs: 0 Atk
- Fire Blast
- Energy Ball
- Hex
- Will-O-Wisp

LO PETILIL (Petilil) @ Life Orb
Ability: Chlorophyll
Level: 5
EVs: 36 Def / 200 SpA / 36 SpD / 200 Spe
Timid Nature
IVs: 0 HP / 0 Atk / 30 SpA / 30 Spe
- Solar Beam
- Hidden Power [Fire]
- Sleep Powder
- Healing Wish

SCARFOO (Mienfoo) @ Eviolite
Ability: Regenerator
Level: 5
EVs: 196 Def / 36 SpD / 236 Spe
Jolly Nature
- High Jump Kick
- Knock Off
- Acrobatics
- U-turn

SCARFPAWN (Pawniard) @ Berry Juice
Ability: Defiant
Level: 5
EVs: 236 Atk / 36 Def / 36 SpD / 196 Spe
Jolly Nature
- Sucker Punch
- Knock Off
- Iron Head
- Stealth Rock

SCARFCRAN (Cranidos) @ Choice Scarf
Ability: Mold Breaker
Level: 5
EVs: 60 HP / 236 Atk / 212 Spe
Jolly Nature
- Head Smash
- Earthquake
- Zen Headbutt
- Stone Edge

SCARFABY (Vullaby) @ Eviolite
Ability: Overcoat
Level: 5
EVs: 116 HP / 76 Atk / 156 Def / 76 SpD / 36 Spe
Adamant Nature
- Brave Bird
- Knock Off
- Defog
- Roost
 
Here's another one, just to show the range of the possible outputs!
037.png
548.png
619.png
624.png
408.png
629.png

Introduction

**Introduction goes here**

Teambuilding Process

vulpix.png

**Why did you choose this pokemon?**
vulpix.png
petilil.png

**Why did you choose this pokemon?**
vulpix.png
petilil.png
mienfoo.png

**Why did you choose this pokemon?**
vulpix.png
petilil.png
mienfoo.png
pawniard.png

**Why did you choose this pokemon?**
vulpix.png
petilil.png
mienfoo.png
pawniard.png
cranidos.png

**Why did you choose this pokemon?**
vulpix.png
petilil.png
mienfoo.png
pawniard.png
cranidos.png
vullaby.png

**Why did you choose this pokemon?**

The Team

037.png

@
heatrock.png

Ability- Drought
EVs- 52 HP | 196 SpA | 236 Spe
IVs- 0 Atk
Nature- Timid

Fire Blast | Energy Ball | Hex | Will-O-Wisp
**Why did you choose this pokemon? What does it do for your team?**

548.png

@
lifeorb.png

Ability- Chlorophyll
EVs- 36 Def | 200 SpA | 36 SpD | 200 Spe
IVs- 0 HP / 0 Atk / 30 SpA / 30 Spe
Nature- Timid

Solar Beam | Hidden Power [Fire] | Sleep Powder | Healing Wish
**Why did you choose this pokemon? What does it do for your team?**

619.png

@
eviolite.png

Ability- Regenerator
EVs- 196 Def | 36 SpD | 236 Spe
Nature- Jolly

High Jump Kick | Knock Off | Acrobatics | U-turn
**Why did you choose this pokemon? What does it do for your team?**

624.png

@
berryjuice.png

Ability- Defiant
EVs- 236 Atk | 36 Def | 36 SpD | 196 Spe
Nature- Jolly

Sucker Punch | Knock Off | Iron Head | Stealth Rock
**Why did you choose this pokemon? What does it do for your team?**

408.png

@
choicescarf.png

Ability- Mold Breaker
EVs- 60 HP | 236 Atk | 212 Spe
Nature- Jolly

Head Smash | Earthquake | Zen Headbutt | Stone Edge
**Why did you choose this pokemon? What does it do for your team?**

629.png

@
eviolite.png

Ability- Overcoat
EVs- 116 HP | 76 Atk | 156 Def | 76 SpD | 36 Spe
Nature- Adamant

Brave Bird | Knock Off | Defog | Roost
**Why did you choose this pokemon? What does it do for your team?**

Conclusion

**Conclusion goes here**

SCARFPIX (Vulpix) @ Heat Rock
Ability: Drought
Level: 5
EVs: 52 HP / 196 SpA / 236 Spe
Timid Nature
IVs: 0 Atk
- Fire Blast
- Energy Ball
- Hex
- Will-O-Wisp

LO PETILIL (Petilil) @ Life Orb
Ability: Chlorophyll
Level: 5
EVs: 36 Def / 200 SpA / 36 SpD / 200 Spe
Timid Nature
IVs: 0 HP / 0 Atk / 30 SpA / 30 Spe
- Solar Beam
- Hidden Power [Fire]
- Sleep Powder
- Healing Wish

SCARFOO (Mienfoo) @ Eviolite
Ability: Regenerator
Level: 5
EVs: 196 Def / 36 SpD / 236 Spe
Jolly Nature
- High Jump Kick
- Knock Off
- Acrobatics
- U-turn

SCARFPAWN (Pawniard) @ Berry Juice
Ability: Defiant
Level: 5
EVs: 236 Atk / 36 Def / 36 SpD / 196 Spe
Jolly Nature
- Sucker Punch
- Knock Off
- Iron Head
- Stealth Rock

SCARFCRAN (Cranidos) @ Choice Scarf
Ability: Mold Breaker
Level: 5
EVs: 60 HP / 236 Atk / 212 Spe
Jolly Nature
- Head Smash
- Earthquake
- Zen Headbutt
- Stone Edge

SCARFABY (Vullaby) @ Eviolite
Ability: Overcoat
Level: 5
EVs: 116 HP / 76 Atk / 156 Def / 76 SpD / 36 Spe
Adamant Nature
- Brave Bird
- Knock Off
- Defog
- Roost
 
This is fantastic guys! I've included it as a resource in the RMT forum - it's a huge step in terms of helping new users with formatting their RMT properly and writing sufficient descriptions. Hopefully in time this will lead to a sustained increase in the quality of RMTs posted. Great stuff, really appreciate it :)
 
cool stuff

one comment, I'm using Firefox (waterfox 49.0.2), the screen has very slight horizontal scrolling despite not having anything there

yjWjTLz.png
 
this tool is really cool for my teams. however i have one request: would you mind adding in bw sprites as a sprite option? unlike xy models which are in 3d (
bulbasaur.png
) the bw sprites have a much different feel to them which i personally prefer. additionally thanks to spriters here at smogon we have sprites for every single mon (example:
wishiwashi-school.png
). thanks again for developing this!

edit: also some of the icons are broken
 
Last edited:
very sleek look :)
2 things:
1) is it possible to have the fonts in the font?
2) the site looks weird scaled to half a 1080p screen (ie windows + arrow key)
upload_2017-5-23_20-16-45.png
 
I feel like this would be very hard to implement, but something that allows you to insert a custom format would be amazing. The way I'd say this might be implemented, is by giving a sample set that you can edit as a base for your custom set:

Pokemon @ item
Ability
Nature
EVs
move 1
move 2
move 3
move 4

and lets say you want to use this format:
grimer-alola.gif

Eviolite
Poison Touch
Adamant Nature
36 HP / 196 Atk / 196 Def / 36 SpA / 36 SpD
Pursuit | Knock Off | Poison Jab | Shadow Sneak
Analysis
You'd submit is as so:
Pokemon
item
Ability
Nature
EVs
[.b]move 1 | move 2 | move 3 | move 4[/b] (without the dot ofc)
I get this may be very hard to implement, but if its possible it could help :)​
 
Hi, so I tried using this earlier today and it's not working. Clicking import doesn't change the screen or produce anything and the drop down menus aren't working either. It's a really cool tool for RMT and we'd appreciate it working again. Thanks!
 
  • Like
Reactions: Wob
Hi, I think this is a really cool tool and I'd love to see it get used more often. Would it be possible to update this with Generation 8? This is more of an optional suggestion, but do you think we could use sprites from here rather than pokemon stadium? I tried using it earlier for both a generation 8 team and a generation 7 team and the sprites weren't really working.

Thanks!
 
Hi, I think this is a really cool tool and I'd love to see it get used more often. Would it be possible to update this with Generation 8? This is more of an optional suggestion, but do you think we could use sprites from here rather than pokemon stadium? I tried using it earlier for both a generation 8 team and a generation 7 team and the sprites weren't really working.

Thanks!

Hi TPP, Glad to hear you like the tool! We haven't been actively maintaining it for awhile but I do have some time given ongoing circumstances so I'd be happy to have a look at updating it for Gen 8. Did you have any other feedback on the tool you'd like me to address while i'm checking this out?
 
Back
Top