Outfit basics

Outfit basics

Pokémon Essentials Version
The Basics

What is an outfit?
Basically, anything that changes your current player graphics, it doesnt have to be clothes, it could be hair color, you can even change it to a pokemon if you want to. Outfits are a thing in essentials since Essentials v13.

How to set an outfit?
There is a variable called $Trainer.outfit , this variable stores a number and it's 0 by default. That means 0 is the default graphic for the player, and any number that you assign for it it's an outfit (Yes, even negative numbers, but why over complicate your life when you can just use possitive numbers?)

For each number you use for your outfits, you will need the charset, that means for all the graphics you are going to use in your game for your player, you need to add an additional graphic with the same name but adding "_OutfitNumber" to it.

Let's take for example the default Red that comes in essentials, I want to add an outfit to it, this outfit will be the number 1, that means that besides Red's default graphics, I will need:

In Graphics\Characters folder:

trainer000_1 (front sprite)
trback000_1 (back sprite)
trchar000_1 (walking sprite)
boy_bike_1 (bike sprite)
boy_dive_offset_1 (diving sprite) (*)
boy_fish_offset_1 (fishing sprite) (*)
boy_fishsurf_offset_1 (fishing while surfing) (*)
boy_run_1 (running sprite)
boy_surf_offset_1 (surfing sprite) (*)

Important note:
As of v17, without changing the metadata, these sprites were either deleted, renamed or changed behavior, they would now work like this:

boy_surf_1 (sprite for the character stance while surfing and diving)
boy_fish_offset_1 (sprite for fishing while surfing and while on land)

If you want surf and dive be separated, you can check how to change the metadata here. I havent been able to separate the fishing sprites even changing the metadata, but I at least cant think any reason why would you want 2 separate sprites for that so it should be ok...?

In the Graphics\Transitions folder:

vsTrainer0_1 (vs animation sprite)

In the Graphics\Pictures folder:

mapPlayer000_1 (the player's head in the map)

Example of the default walking sprite, next to it its the outfit 1 walking sprite:

And then all I have to do in game is $Trainer.outfit=1 in an event, selecting the script button in the third tab.

Take into account that the names for the bike,surf,dive,run and both fishing sprites are defined in the metadata of the pbs folder, so if for example your running sprite is named trainerRun for the player you are putting an outfit then you do trainerRun_1

If you want more outfits just keep adding numbers to it, _2 , _3 .... _55 _56 and so on.

So if I plan to use outfits the default outfit for Red's walking sprite in this example should be named trchar000_0?
No, the default outfit while it's true that the variable value is 0, you don't have to do anything to the charset, leave it as trchar000

What about introBoy in Graphics\Pictures folder?
Outfits don't apply to either introBoy or introGirl, they are just images only shown in the default intro event of essentials. If you want to show outfits at the beggining you will have to either use the event commands like show picture combined with conditional branches to get the player answer or with a script if you make one. It really depends on what you want to do.

What if I'm missing an outfit charset I don't plan to use?
Nothing. If you don't plan to have fishing in your game then don't do sprites for fishing, if you don't have vs animations, don't sprite those, etc.

What if I'm missing an outfit charset I DO plan to use?
Then it will show the default outfit for that player, that means that if I have the walking sprite but I don't have the running sprite, every time I run, it will show the default sprite and return to the outfit sprite when I start waking again. You can take advantage of this, for example if your player's head doesn't change at all while changing outfits, then just have the default map head, you don't have to copy and paste the same graphic and rename it for each outfit.

Does it have to be sequential?
Not really, you can start from outfit 55 and then jump to outfit 102 if you really wanted to, so that really leaves you room to create neat things with aritmetics and all. (More info on this in Creative Example 2: Poses tab)

Can I do outfits like this for NPC trainers?
No, if you want your npc trainers to have outfits you'll have to define them as another type in the PBS, the editor (for 16.2 or less) or the debug menu(for v17 onwards), something like having LASS and LASS2 as internal names with different graphics but they both show Lass as trainer type in game. The editor/debug should have your back anyways, and if you put the same name as other trainer type, like Lass, the internal name will automatically be LASS_number

I changed the players outfit so now is a female but the graphics for things like the trainer card and the pokegear are still blue like if I was male (or the other way around)
Outfits only change the player's graphic, it will not change anything that is defined in its trainer type, like the gender or the trainer type name, for the game you are still male and a pkmn trainer even if your graphic is a girl and you are a lass. For this maybe the method pbChangePlayer would suit your needs.

Can I give outfits at the intro of my game?
Yes, just take into account what version of essentials are you using,
Before v16: Change the value of $Trainer.outfit after naming the player
V16.1 and probably 16(I never tested): why are you using these they are so buggy upgrade to 16.2 please apply this fix and keep reading like you are using v16.2
V16.2: In the intro look for pbTrainerName and change it to pbTrainerName(nil,outfitNumber), outfitNumber being the outfit number or a variable that holds a number (like something that holds the player's choice).

Why to use outfits?
Well, mostly character customization, but you can do all kinds of neat stuff, you just have to get creative, for example, you can do an outfit that only works in a certain map!

As of v17 the sprites base_dive and base_surf were added, can they be customized with outfits?
No, they arent customizable with outfits, there is only one of them and they are the same for all the players, meaning all your players with whatever outfit will use the same dive and surf base. However this graphic is not needed and you can delete it without fearing your game will crash, so if you need to customize the bases according to outfits or players just work with the "player_surf" graphic by itself (in other words, work everything in the same sprite of "player_surf".

Simple Changing Outfit Event In Game

Like the title says, this is a simple event, therefore, is not the only way you could approach this, but it will give you the picture on how it works. Also, I'm going to assume that you already know how to do events. For this event in particular I just took advantage of the dresser in player's room in the example map (at least I think it's a dresser).

This event it's really bare and could use work, but I think it's perfect for understanding how outfits work. I have 3 sprites for Leaf, the default one which changes nothing of the default Leaf, outfit 1 where she changes completely to May, and outfit 2 where she has a slightly green shirt instead of blue. As you can see here, changing the value of $Trainer.outfit matches the sprite with that number at the end.

Now that you know how it works you can make the event seem more natural, something like this:

Now the screen will fade out everytime you change, so it feels like you are actually changing!

If you have more outfits than the "Show choices" command just look how to make more than 4 choices in the example maps.

Creative Example 1: Outfit that only works in a certain map

So remember this gif?

Well, its pretty easy to set up, the channeler works pretty similar to the Simple Changing Outfit Event

And to really make it so it only works in that map we go to the exit event and add the line to revert the outfit back.

I added the line to revert to the default outfit before it transfered the player. You could use this like I did to throw some nostalgia into the player, or something like adding a glitchy looking outfit and then force the player onto it when it steps in a glitch world or something, I dunno. The important thing is that the event is "Player Touch" so it forces the player into the outfit as soon as he steps on the tile.

For this map in particular, there should be another charset for the running outfit since the player can run indoors, other charsets like surfing and cycling in this case are unnecesary, so be aware of what the player can do in the map.

Also notice that this will always revert to the player default outfit, so I made this event assuming that you only have one outfit in your game, If you have more than one you should store the current outfit value in a variable, and then when the player exits make $Trainer.outfit equal to the variable. Now if you want to have these lets say, a GBC sprite for each outfit you have in your game, you might want to read Creative Example 2: Poses to get ideas on how to handle this.

Creative Example 2: Poses

You may or may not realised that you can use outfits to set little poses in your game, like an item get one

These pose outfits were done just repeating an image all over the charset, so no matter the direction the player is facing, its always the same pose facing down.

It's worth mentioning that you need to add this pose not only for the walking but for the other charsets like cycling, surfing, diving, etc, unless there is no way the player can make a pose while doing it (maybe you dont change outfits in all the events where the player finds an item while diving or something like that)

But wait, you might be wondering how I used outfits for customizing the character and as poses at the same time, well, nothing is stopping you from doing it, but to do it better we can take advantage that the outfit is treated like a number, hence we can do arithmetic with it.

For example, I will assign ranges to my outfits and to my poses, lets say that from numbers 0 to 99 they will be outfits, even if I dont really have 100 outfits at the moment, it gives me plenty of numbers to play with if I wanted to add another outfit later on. Like this, I will say that numbers from 100 to 199 will be my item get pose, having each outfit correspond to the +100 pose (so outfit 100 will be pose for outfit 0, 101 to outfit 1 and so on), after this is just a matter of applying arithmetic to our event.

Also if you want to try, you could animate the pose using move routes, though my result doesnt really look that smooth (probably because the sprites I found and the simple move route I used) and I have no idea how to make the player face the event again, but perhaps is just my inexperience

I did this using this charset and this move route

Well, if you are going to repost somewhere and you somehow must absolutely copy paste this tutorial instead of giving the link because reasons I guess you should give me some credit for my work, redacting, making gifs and all....
First release
Last update
5.00 star(s) 1 ratings

More resources from Alaguesia

Latest reviews

Very helpful! This tutorial seems to cover everything and is perfect for better understanding the outfits mechanic. :D