• Do not use Discord to host any images you post, these links expire quickly! You can learn how to add images to your posts here.
  • The Eevee Expo Game Jam has concluded! 🎉 Head on over to the game jam forum to play through the games.
    Don't forget to come back September 21st to vote for your favorites!
  • Reminder: AI-generated content is not allowed on the forums per the Rules and Regulations. Please contact us if you have any questions!
Outfit basics

Tutorial Outfit basics 2.0

Alaguesia

The Magician of Oddities
Member
Joined
Mar 29, 2017
Posts
20
Alaguesia submitted a new resource:

Outfit basics - The basics about outfits, and some neat things you can do with them

[tabs]
[tab=The Basics]
64Rxfsd.png
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...[/tab][/tabs]

Read more about this resource...
 
Perhaps the creative example 2 should describe how the pose charset is made (with a picture of the file as in the first two tabs). It will, for all four directions, depict the player facing down rather than the direction they are facing. This could be confusing to some people, as the player would still literally be facing sideways (or whichever direction), yet the graphic suggests otherwise.

Also, a reminder that you should have pose charsets for standing, cycling, surfing, perhaps diving, etc.
 
The last part that shows an outfit only working in one room reminded me of Paper Mario when you can turn into retro Mario. I'm gonna have to remember to do that for future projects.
 
The last part that shows an outfit only working in one room reminded me of Paper Mario when you can turn into retro Mario. I'm gonna have to remember to do that for future projects.

Paper Mario for N64 happens to be one of my favorite games and the Boo's Mansion and Chapter 3 in general happens to be my favorite part in the game. So I totally inspired that event on that room.
 
Great, and well done!

Poses are interesting, and something I'll need to keep in mind.

A good way to get around the problem of storing the character's pose in a Variable is - obivously - to do $trainer.outfit = $trainer.outfit+X, and then have X+(# of outfits) duplicate files stored. Of course, that takes more disc space so storing a variable is gonna be more reliable... if not a bit more coding.
 
I tried your tutorial out, it works on essentials v.16.2 but on v.17.2 it doesn't work. The player don't change his overworld graphic - just the trainer card sprite changes. the event is the exact same as yours
change screen tone color to black (wait 8 frames) script: $Trainer.outfit=1 (change screen tone color to normal)
the same for $Trainer.outfit=0
but the character doesn't change at all
 
I tried your tutorial out, it works on essentials v.16.2 but on v.17.2 it doesn't work. The player don't change his overworld graphic - just the trainer card sprite changes. the event is the exact same as yours
change screen tone color to black (wait 8 frames) script: $Trainer.outfit=1 (change screen tone color to normal)
the same for $Trainer.outfit=0
but the character doesn't change at all

I'd double check that the outfit you're switching to is named correctly and in the right spot, because it should be changing both the overworld and trainer card graphics.
 
I'd double check that the outfit you're switching to is named correctly and in the right spot, because it should be changing both the overworld and trainer card graphics.

It's correctly. The Trainer sprite is called trainer000_1
and trchar000_1
the script is named correctly too
It's still isn't working...
 
Last edited:
Ok. I found out that on v.17.2 it only works with pbChangePlayer(2) and $Trainer.outfit=1
the Trainer.outfit just shows the Trainer sprite, map player etc, while the pbChangePlayer changes the overworld sprite
 
Ok. I found out that on v.17.2 it only works with pbChangePlayer(2) and $Trainer.outfit=1
the Trainer.outfit just shows the Trainer sprite, map player etc, while the pbChangePlayer changes the overworld sprite
pbChangePlayer initializes a different player character (by default 0 is Red and 1 is Leaf from FRLG), those being set up in the PBS folder, under metadata.txt, reading:
#-------------------------------
[000]
PlayerA=POKEMONTRAINER_Red,trchar000,boy_bike,boy_surf,boy_run,boy_surf,boy_fish_offset,xxx
PlayerB=POKEMONTRAINER_Leaf,trchar001,girl_bike,girl_surf,girl_run,girl_surf,girl_fish_offset,xxx

Can you post a screenshot of the whole event doing the $Trainer.outfit=1 script and a screenshot of the folder holding the graphics? Perhaps they are mis-named.
 
the trchar000_1
IseAumt.png


the trainer sprite
rLlj9id.png


the trchars and trainer sprites inside the folder:
AIF0ppJ.png


the boy_run, boy_bike, boy_surf etc.
b3e55gk.png


NOTE: I'm not using boy_bike3, it's just there if I needed

The Event inside the map:

4QORj93.png

map player graphic:
nlQ0ZB8.png


now I'm just missing the VS animation, but I'll do that later.


metadata.txt:
ZmswvjS.png



I hope I did show everything here.
I don't want to use multiple characters, because I just have little space from 000 until 005, then I need the trchars from 006 and so on and I don't want to replace them, so I hope you'd find out, what's going on...
 
Last edited:
the trchar000_1
IseAumt.png


the trainer sprite
rLlj9id.png


the trchars and trainer sprites inside the folder:
AIF0ppJ.png


the boy_run, boy_bike, boy_surf etc.
b3e55gk.png


NOTE: I'm not using boy_bike3, it's just there if I needed

The Event inside the map:

4QORj93.png

map player graphic:
nlQ0ZB8.png


now I'm just missing the VS animation, but I'll do that later.


metadata.txt:
ZmswvjS.png



I hope I did show everything here.
I don't want to use multiple characters, because I just have little space from 000 until 005, then I need the trchars from 006 and so on and I don't want to replace them, so I hope you'd find out, what's going on...
As Gela just said, pbChangePlayer changes the character, not the outfit. You'd be fine with just $Trainer.outfit=1, since that would change your player's sprite into the no hat version. So you wouldn't need that part of the metadata, either. The image files are fine. (Though watch out boy_bike3 should be boy_bike_3)
 
As Gela just said, pbChangePlayer changes the character, not the outfit. You'd be fine with just $Trainer.outfit=1, since that would change your player's sprite into the no hat version. So you wouldn't need that part of the metadata, either. The image files are fine. (Though watch out boy_bike3 should be boy_bike_3)
as I said before:
boy_bike3 isn't being used.
And I need that the overworld sprite changes too!
$Trainer.outfit=1 doesn't change the ow-sprite/icon
it just changes the sprite in the trainer card, I want the ow to change too
 
Also having the issue where $Trainer.outfit=1 only changes the trainer on the trainer card
 
What are your sprites named?
For the trainer sprites(trainer card, battle and overworld, though for the overworld ones the were originally called trchar000)
POKEMONTRAINER_Red
POKEMONTRAINER_Red_1
POKEMONTRAINER_Red_2
POKEMONTRAINER_Red_3
POKEMONTRAINER_Red_4
POKEMONTRAINER_Red_5
POKEMONTRAINER_Red_6
 
For the trainer sprites(trainer card, battle and overworld, though for the overworld ones the were originally called trchar000)
POKEMONTRAINER_Red
POKEMONTRAINER_Red_1
POKEMONTRAINER_Red_2
POKEMONTRAINER_Red_3
POKEMONTRAINER_Red_4
POKEMONTRAINER_Red_5
POKEMONTRAINER_Red_6

POKEMONTRAINER_Red is the name of the player slot, not the player graphic/sprite. The player spriteshould be exactly after POKEMONTRAINER_Red.
It goes like: PlayerA=player slot name, overworld sprite name(trchar000), overworld bike spritename, etc.

Your sprite should be called trchar000. Then your outfit for that sprite, should be trchar000_1

Generally, outfits have been kinda wonky to work with for a few people, and I've had some issues myself in the past.

I just avoid using complicated names with numbers or underscores.

So I define my player as RED,
and the outfits as protag, protag_1, etc,
make sure everything has been compiled,
close RMXP,
open,
then define the player (event command in starting event)
then change to player B, back to A
then change outfit, and it works that way.
 
Last edited:
POKEMONTRAINER_Red is the name of the player slot, not the player graphic/sprite. The player spriteshould be exactly after POKEMONTRAINER_Red.
It goes like: PlayerA=player slot name, overworld sprite name(trchar000), overworld bike spritename, etc.

Your sprite should be called trchar000. Then your outfit for that sprite, should be trchar000_1

Generally, outfits have been kinda wonky to work with for a few people, and I've had some issues myself in the past.

I just avoid using complicated names with numbers or underscores.

So I define my player as RED,
and the outfits as protag, protag_1, etc,
make sure everything has been compiled,
close RMXP,
open,
then define the player (event command in starting event)
then change to player B, back to A
then change outfit, and it works that way.
went and tried those steps, overworld still doesn't work but trainer battle/card and trainer back works(using v20.1 of essentials
 
Bonjour c'est pour savoir si sa marche en 21.1 comme j'aime beaucoup ce système et désolé de parler en français
 
Hi, I'm using Pokemon Essentials version 21.1, anyone knows if $Trainer.outfit=1 still works? The metadata is different and I tried that script code but it gave me an error, apparently it didn't recognize it despite me typing it correctly (without any grammatical errors). I haven't added any outfits yet nor messed with the metadata, I'm just trying to change the player from Red to Leaf and back for testing but it seems like my worries were confirmed.
 
Back
Top