vFoggy

Veteran
Veteran
Joined
Nov 3, 2012
Messages
75
Reaction score
33
Primarily Uses
Description

This script implements the Persona System from the Persona games (specifically Persona 4).

Quoting from the Megami Tensei Wiki:
A Persona is a manifestation of a Persona User's personality in the Persona series, referred to as a "mask" for an individual to use to face hardship.

In this system, you can use Personas to fight enemies. Each character can equip one of those Personas which, as a result, increases all of the user's parameters.
In the original game, the characters have no parameters nor skills and all those depend on the persona they have currently equipped. In this script you can choose the percentages of the parameters contributed by the user and the Persona while, also, use the skills of the currently equipped Persona.
Following the original game's system, Personas can only learn a specific number of skills. When they try to learn a new one, they have to forget an old one (or skip learning it).
Personas can be acquired with two different methods:
  • By fusing two (or three) Personas to create a new one
  • During the Shuffle Time
Compared to the original game's fusion system, this script implements a quiet simpler Fusion System, for ease of use. It is divided into a Normal Fusion (two Personas) and a Special Fusion (three Personas). When fusing Personas, the resulting Persona will gain a bonus EXP depending on the Arcana rank (explained later) and the Personas' level used in the Fusion.
Shuffle Time, happens after every battle and if the enemy has dropped any Persona cards. Along with the Persona cards, enemies drop Blank cards and Penalty cards. There are two different Shuffle methods: Rotating cards and Memory match. During the first method, the cards rotate either horizontally, diagonally or a combination of both. During the Memory match, the player has to match two cards together, with a maximum number of attempts. If the player has picked a Blank card during the Shuffle Time, nothing will happen (no Persona will be acquired), but if they pick a Penalty card, they will lose all battle rewards (no EXP or Gold will be acquired).
Additionally, Personas have classes called Arcanas. Quoting (again) the Megami Tensei Wiki:
Each Social Link represents a single Arcana, and raising a particular Social Link increases the experience bonus the protagonists receive when they fuse Personas of that Arcana. By completing a Social Link, it unlocks the ultimate Persona of that Arcana.

Each Arcana has its own rank and when it reaches a specific one the Persona of that Arcana can evolve into a stronger one (you can choose which Personas can evolve and at which rank).
You can check all the available Arcanas through the Social Link option in the main menu, along with its rank, its individual Social Links and their description. You can choose, for each Social Link, which actors it is consisted of.


You can change for each user which Personas they can use, if he can use only one, set the maximum rank of each Arcana separately, set whoever you want as a Social Link of an Arcana and change them at any point of the game, call the Shuffle Time whenever you want and with which ever cards you want, use a common event when a Persona is being evolved (if you want and for whichever Persona you want), set the position of a couple of small windows, pick some colors here or there, set the percentage of the parameters individually (for each param, xparam, sparam etc.) and many more that I may have missed. You can check all the possible settings in the script.

Screenshots and Videos

The bars were made from a really good artist (me) so please don't judge. :)
You have the ability to use your own graphics (white bar, small bar empty and filled).

PKFZw77.png


cLYSBmV.png


Some more screenshots from the Social Links menu.

There are some minor differences between the uploaded videos and the demo (messages and stuff) which were changed after the recording and upload (my upload speed is potato).


Playlist with all the videos.

Script

Link

Instructions and Demo

The instructions bellow are taken from the demo, which are also present in the script. They cover all the available tags that can be used to setup the system, along with all the scene calls you can make and explanation of each system. There are many option settings you can change in this script, which are not covered in the instructions and are located at the beginning of the script, for each "sub-system" separately.
The script goes above Main and bellow Materials.

Tags on actors (that are personas)
You can specify which actor is a persona by simply adding the following tag:
<Persona>
By adding the tag bellow:
<User: actor_id[, actor_id[, ...]]>
on a persona actor you can specify the users that can equip the specific
persona. Remember that for the <User: ...> tag to work the actor must be a
persona. Also, you can specify as many persona users as you want in the list.
For convenience, you can set the default users of a persona that doesn't have
that tag through the options module.
Personas can't learn an infinite number of skills. You can specify the
maximum number of skills a persona can learn by using the following tag:
<Max skills: number>
The default number of maximum skills for all personas is set to 4, but you can
change it through the options module! Lastly, a persona has the ability to evolve
into a stronger one when it reaches a specific arcana rank! You can specify the
rank of the arcana at which the persona will evolve with the following tag:
<Evolve at: rank>
and the persona to which it will evolve to with the following one:
<Evolve to: persona_name>

Tags on actors (that use personas)
You can specify that a specific actor can use ONLY one (which will be
automatically equipped) by using the following tag:
<Persona: actor_id>
Also, to specify which persona will be equipped in Battle test on a specific
ctor, you can use the following tag:
<Battletest persona: actor_id>

Tags on classes (Arcana)
You can specify which classes represent an arcana by adding the tag
bellow:
<Arcana>
Each arcana's current rank is stored in a game variable. Those variables
can be set for each Arcana separately by adding the following tag:
<Rank variable: variable_id>
Of course, you can set the maximum rank of each arcana by adding the
tag bellow on each arcana:
<Max rank: rank>
The default maximum rank is set to 10, but can be changed through the
options module. As in the original game, each arcana has its own social link(s).
You can specify who is or are those links by adding the following tags
to specify by actor id:
<Social links actors: actor_id[,actor_id[,...]]>
and to specify by variable id (in which actor ids are stored):
<Social links actors: actor_id[,actor_id[,...]]>
As far as naming those social links and their description goes, you can
use the tag bellow to specify the name of the social link:
<Social target: name>
and the one bellow to specify its description:
<Description: description>
You can specify the description of an actor's social link by adding
this tag:
<Social description: description>

Tags on enemies
There is only one tag that is used on enemies and it specifies the card
that an enemy can drop:
<Card drop: card_name, chance>
The chance is specified by a floating number and not a percentage, for
example using the tag bellow on an enemy, has a 30% chance to drop the
Ghoul card:
<Card drop: Ghoul, 0.3>

Add persona to party
You can add a persona to your party by calling the following script (by id):
$game_party.add_persona_by_id(actor_id)
or by using the following one (by name)
$game_party.add_persona_by_name("actor_name")
It is important to remember that you cannot have duplicate personas in
your party! Also, for developing purposes a message box will be displayed
if you try adding an actor as a persona that is not actually a persona!
a persona or if you misstype a name by accident!
Personas can also be acquired through the Shuffle Time that happens after
a battle and if the enemy troop has dropped any cards. You can learn
more about Shuffle Time by going to the back of the room.

Remove social link through variable
If you have specified someone as a social link of an arcana via
variables (see Tags on class (Arcanas)) you can remove a social
link by setting the specific variable's value to -1. Do remember
that if you have specified that social link through the actor social
link tag, then even if you remove that actor they will still be a
social link. Social links specified via actor ids cannot be removed!

Increase/Decrease arcana rank
You can increase an arcana's rank by making the following script
call:
$game_player.arcana_rank_up(arcana_name)
You can also decrease an arcana's rank by making the following
script call:
$game_player.arcana_rank_down(arcana_name)
The minimum arcana rank can be set though the persona module!
For convenience you can use the script call bellow to increase the
arcana's rank by
multiple ranks:
$game_party.arcana_rank_up_by(arcana_name, ranks)
The same can be done to decrease the arcana's rank by multiple ranks
by making the following script call:
$game_party.arcana_rank_down_by(arcana_name, ranks)

Persona in party or equipped
You can check if a persona is in the party by using the following
script call:
$game_party.persona_in_party(persona_name)

You can check if a persona is currently equipped by simply calling
the following script:
$game_party.persona_equipped(persona_name)

Also, you can check if a persona is equipped by a specific actor
with the following script call:
$game_party.persona_equipped_by(actor_id, persona_name)

Shuffle Time
Shuffle Time happens after battle and gives the player a chance to
receive new Persona cards. Shuffle Time happens only if the enemies have
dropped at least two cards. Of course, you can change this number
through the options module. There are three types of cards in Shuffle
Time:
Persona cards,
Blank cards and
Penalty cards.
When a Blank card is picked, nothing happens whereas when a Penalty
card is picked, the player gains no battle rewards! There are also
two different shuffle methods:
Rotating card either horizontally, diagonally or a combination
of both and
Memory match, where player matches two cards and has at most
five attempts.
You can change the maximum number of tries the player has through
the options module! Also, you can force the next Shuffle Time method
to be a specific one (among the available) by setting the value of
the variable with ID 1 to the method you want. For example "Horizontal"
if you want the next Shuffle Time method to be Horizontal or "Matching"
if you want it to be the Matching one. Of course, you can change which
variable you want to specify the method, though the options module.
Lastly, you can call the shuffle scene with whichever cards you want
by firstly setting the variable with ID 2 to a script call with a
list of persona names like this:
["name_1", "name_2", ...]
and then by calling the scene with the following command:
$game_system.shuffle_time
It is important to remember that you cannot have duplicate personas
in your party! Additionally, a message box will be displayed if you
try running Shuffle Time without setting the list of cards to be included!
You can access the result of the last shuffle time by simply calling
the following script command:
$game_system.shuffle_result

Fusion
Fusion is the system in which two or more personas are combined
together to create a new persona. You can use the following tag
bellow on a persona to specify which personas need to be fused to
create that one:
<Fusion parents: actor_id1, actor_id2>
For example, if you use the following tag on Himiko:
<Fusion parents: 13, 14>
then when you try fusing Andras with Forneus, the fusion will result
to... Himiko.
Additionally, you can specify arcana rank and player level
requirements to specific fusion children. To apply a minimum
arcana rank requirement for a specific persona you use the following
tag:
<Arcana rank: rank>
To apply a minimum player level requirement for a specific persona
you use the following tag:
<Player level: level>
You can also have a persona of a specific arcana have a different class!
This can be done just by setting its nickname to the arcana you want!
Don't forget to use the following tag to hide its nickname in the status window!
<Hide status nickname>
You can also fuse three personas together to create special
ones too! To specify the parents of a "special" persona you can
use the following tag:
<Special fusion: actor_id1, actor_id2, actor_id3>
Last but not least! To call the persona fusion scene you use the
following script call:
$game_system.fuse_personas(2)
For the special fusion scene you use the following script call:
$game_system.fuse_personas(3)

Persona and user parameters
Personas can be equiped through the main menu command called
"Persona". Personas add percentages of their parameters and
stats to the actor they're equiped on. The default percentage
is set to 100%, but can be changed through the persona options
module. You can also change the percentage of the user's parameters
that are added to the end result. The default percentage is also
set to 100% and can be changed though the options module too.

Demo

Click on "Download as ZIP" on the top right.
Demo

Terms of use
Free to use in non commercial or commercial games, credits are required (PM me).
If you'd like to share or make a reference to the script, always link to this post.

Updates
Previous Updates

13-07-2019
  • Fixed bug where BGM of map would not replay if the shuffle was canceled.
13-05-2020
  • Added support for element, debuff and state rate multipliers
  • You can now set an arcana by using the nickname. If an arcana has a class which is not an arcana, but its nickname exists as an arcana name then it considers the nickname.
  • Fixed a bug when a fusion was canceled and another persona was chosen (even with a wrong combination) it asked if you wanted to create the previous persona.
16-05-2020
  • Fixed mistake where aliased state_rate, debuff_rate and element_rate methods were not being called.
  • Fixed a bug when declining a shuffle the message and windows were not being disposed correctly or in time.
  • Fixed an error when pressing enter on an empty Personas menu.
  • Fixed an error when equipping persona through the status menu.
  • Added <Hide status nickname> and <Hide status classname> tags that hide the corresponding info in the status menu.
  • Fixed incorrect arcana display on short Persona status.
17-05-2020
  • You can now release a persona from the Personas menu.
  • You can no longer fuse personas that result into one that already exists in the party.
  • Fixed incorrect arcana name being drawn in fusion results window.
  • Fixed missing Sprite classes.
  • Fixed unordered special fusion bug.
24-05-2020
  • Personas window now correctly does not take any input if there are no personas.
  • Fixed empty line in personas window after releasing the last persona on the list (selects first persona).
  • Added additional messages to message window when release a persona (if persona is equipped or if it is the actor's last persona).
  • Correctly handles unordered persona fusion.
  • Personas that are already in the party have now disabled color in the results window.
  • Minor bug fixes.
19-07-2020
  • Updated description and demo with the changes made to script calls and extra features.
  • You can now release personas from the persona list menu.
  • Added variables for the release key (RELEASE_PERSONA_KEY) and one that lets (or not) the player release only personas (CAN_RELEASE_ONLY_PERSONAS) (personas used only by one actor).
  • Party can no longer receive personas that already exist in the party (More of a bug than a feature).
  • Added variables with the text shown when the duplicate persona is picked in the shuffle method (DUPLICATE_PERSONA_DRAW_MSG) and the message shown at the battle result screen (DUPLICATE_PERSONA_RESULT_MSG) and audio that is played upon selection (SHUFFLE_DUPLICATE_SOUND).
  • You can now set the arcana of a persona by using the nickname field.
  • Added new tag <Hide status nickname> that hides the persona's nickname in the status window (useful in the above cases).
  • Renamed methods add_persona and remove_persona to add_persona_by_id and remove_persona_by_id.
  • Added two new methods: add_persona_by_name and remove_persona_by_name.
  • Updated the input keys window shown when opening the personas window with the release button.
  • Added msgbox if a persona is not found when parsing manually selected personas for shuffling.
  • Fixed incorrect variable usage in element_rate, debuff_rate and state_rate methods in Game_Actor class.
  • Fixed Persona command in battle being enabled in users that use only one persona.
  • Fixed bug where after equipping a persona in battle, the window with the personas kept taking inputs.
  • Fixed process_handling in Window_Arcanas.
  • Fixed window openning and closing when showing the extra exp earned when fusing a persona.
  • Fixed cases where the second (or third) persona to be fused was enabled in incorrect cases when choosing personas.
  • Fixed incorrect scene handling between battle scene and fusion scene.
  • Fixed size of selected card in shuffle time.
Latest Update 29-05-2021
  • Fixed incorrect variable for shuffle type in shuffle time docs
  • Added HIDE_PERSONA_COMMAND option that includes actor ids for which to hide the persona battle command
  • You can now hide the Social Links menu command by setting the ARCANA_MENU_COMMAND_INDEX option to nil
  • Fixed game_personas not being saved with the game contents when saving the game
  • Last selected cards (before running out of match chances in Matching shuffle time) are now correctly returning to normal color (instead of staying white from the flash effect)
  • Fixed card method calls instead of card_name for Sprite_Card
  • Added message box in case you try to set the shuffle method to an incorrect one (none of the Horizontal, Diagonal or Combination)
  • Even more missed remove_persona -> remove_persona_by_id
  • Changed NO_PERSONAS_MSG
  • Can now check status of all actors (this was an incorrect behavior where you could not check an only-one-persona-user actor's status if they didn't have the persona equipped).

Credits

TODO
  • Implement the fusion result calculation as it is in the original game, which can become a bit confusing when using it.
  • Implement Arcana effects that can happen after battles.
  • Implement "slot machine" Shuffle Time method.
  • Bug fixes, if there are (there probably are I hope not) there were
 
Last edited:

JugoTHEBot

Warper
Member
Joined
May 8, 2019
Messages
4
Reaction score
2
First Language
Spanish
Primarily Uses
RMMV
This is actually pretty impressive, if we added a "One more" battle system and a calendar it would be possible to create a "Persona Maker"

Nice job!
 

noajb

Villager
Member
Joined
Mar 23, 2019
Messages
21
Reaction score
19
First Language
English
Primarily Uses
RMVXA
Looking cool!
 

Engr. Adiktuzmiko

Chemical Engineer, Game Developer, Using BlinkBoy'
Veteran
Joined
May 15, 2012
Messages
14,682
Reaction score
3,005
First Language
Tagalog
Primarily Uses
RMVXA
This is actually pretty impressive, if we added a "One more" battle system and a calendar it would be possible to create a "Persona Maker"

Nice job!

The calendar and day system can easily be evented and would better off done that way considering how specific days have specific events in the game, and day/time progress only happens after certain things anyway.

The script is really useful for people wanting to make a Persona game.
 

hhldegujia

Villager
Member
Joined
Aug 3, 2017
Messages
15
Reaction score
1
First Language
chinese
Primarily Uses
RMVXA
Can it be used in commercial games?
 

vFoggy

Veteran
Veteran
Joined
Nov 3, 2012
Messages
75
Reaction score
33
Primarily Uses
Can it be used in commercial games?
Yes. Only credits are required. Please pm me if you are going to use it though.

Also:
Fixed a bug where bgm of map would not replay if Shuffle was canceled.
 

Finneess

Villager
Member
Joined
Jul 29, 2019
Messages
15
Reaction score
4
First Language
Spanish
Primarily Uses
RMVXA
Man, this is wonderful.
Do you think you'll add any other features besides the ones in the 'to do' list in the future? If not, it's still a great script.
 

vFoggy

Veteran
Veteran
Joined
Nov 3, 2012
Messages
75
Reaction score
33
Primarily Uses
Man, this is wonderful.
Do you think you'll add any other features besides the ones in the 'to do' list in the future? If not, it's still a great script.
Thank you :)
I will probably implement them. The Slot Machine, though, is less likely to be implemented as I tried doing so after releasing the script and there were too many bugs with the animations that I couldn't fix.
 

NihilGhoul

Villager
Member
Joined
Sep 17, 2017
Messages
5
Reaction score
1
First Language
English
Primarily Uses
RMMV
Is there a way to not have Params of the Actor and Persona added together?
 

vFoggy

Veteran
Veteran
Joined
Nov 3, 2012
Messages
75
Reaction score
33
Primarily Uses
Is there a way to not have Params of the Actor and Persona added together?
If you want to keep only the actor's parameters then you can set the persona param multipliers to 0.0s and vice versa.
 

fearjunkie

Villager
Member
Joined
Jul 20, 2014
Messages
13
Reaction score
0
First Language
English
Primarily Uses
Holy crap this is amazing.

Is there any chance that you or someone else can port this to MV?
 

Finneess

Villager
Member
Joined
Jul 29, 2019
Messages
15
Reaction score
4
First Language
Spanish
Primarily Uses
RMVXA
Is there any way to give the mc a limit to how much personas he can use at any given time? I've tried to do a compendium-like system, but it's useless if mc can have as much personas as he wants.
 

vFoggy

Veteran
Veteran
Joined
Nov 3, 2012
Messages
75
Reaction score
33
Primarily Uses
Is there any way to give the mc a limit to how much personas he can use at any given time? I've tried to do a compendium-like system, but it's useless if mc can have as much personas as he wants.
No, there is no way to do that.
I would add this functionality, but unfortunately I don't have much time lately. Will try to find some though.
 

NameNotFound

Villager
Member
Joined
May 13, 2020
Messages
7
Reaction score
1
First Language
Portuguese
Primarily Uses
RMVXA
Hello! First of all, I want to thank you for this awesome plugin! Now, I am quite new to scripting, and I've been trying to make a Persona style game for a while, but... I wanted to know if there's a way to make it so a Persona's arcana isn't based on their class, but on their nickname, or with a note. The reason behind this is that I want to make a class for each different Persona: So the moves they learn are different, their exp curve may be different, etc. However, I still want them to be linked to a certain arcana based on their nickname, or on the note tag. Below is an example of what I mean:

Arsene.png
This is Arsene, a Persona. They are actor number 21. As you can see, their nickname is Fool, which is the arcana I want them to have. I wanted to know if there's a way the script can be edited to make it work that way. Another thought I had was to use a note tag like <Arcana: 50>. For reference, here's two more images.

ArseneClass.png
Arsene's class (class 21), and also:

FoolClass.png
The Fool arcana (class 11).

Edit: After some testing, it seems like the weaknesses and resistances of the persona aren't working, either. Any idea as to why this may be happening?

Here's my current script:

 
Last edited:

Finneess

Villager
Member
Joined
Jul 29, 2019
Messages
15
Reaction score
4
First Language
Spanish
Primarily Uses
RMVXA
It seems like the weaknesses and resistances of the persona aren't working, either. Any idea as to why this may be happening?
I've also noticed that the status menu of the Persona doesn't show properly whether the Persona is weak to a certain element or not, as for example when Izanagi receives 200% damage from Fire, meaning he is weak, the menu says he's strong to Fire and viceversa.
1589328797822.png
1589328828925.png
 

NameNotFound

Villager
Member
Joined
May 13, 2020
Messages
7
Reaction score
1
First Language
Portuguese
Primarily Uses
RMVXA
I've also noticed that the status menu of the Persona doesn't show properly whether the Persona is weak to a certain element or not, as for example when Izanagi receives 200% damage from Fire, meaning he is weak, the menu says he's strong to Fire and viceversa.

That's an easy fix. Change where it says "Str" to "Wk", and viceversa.
 

vFoggy

Veteran
Veteran
Joined
Nov 3, 2012
Messages
75
Reaction score
33
Primarily Uses
I've also noticed that the status menu of the Persona doesn't show properly whether the Persona is weak to a certain element or not, as for example when Izanagi receives 200% damage from Fire, meaning he is weak, the menu says he's strong to Fire and viceversa.
Thanks for letting me know. I have fixes the issue and added support for element, debuff and state rates (work the same way with the params options).

Hello! First of all, I want to thank you for this awesome plugin! Now, I am quite new to scripting, and I've been trying to make a Persona style game for a while, but... I wanted to know if there's a way to make it so a Persona's arcana isn't based on their class, but on their nickname, or with a note. The reason behind this is that I want to make a class for each different Persona: So the moves they learn are different, their exp curve may be different, etc. However, I still want them to be linked to a certain arcana based on their nickname, or on the note tag. Below is an example of what I mean:

View attachment 143414
This is Arsene, a Persona. They are actor number 21. As you can see, their nickname is Fool, which is the arcana I want them to have. I wanted to know if there's a way the script can be edited to make it work that way. Another thought I had was to use a note tag like <Arcana: 50>. For reference, here's two more images.

View attachment 143415
Arsene's class (class 21), and also:

View attachment 143416
The Fool arcana (class 11).

Edit: After some testing, it seems like the weaknesses and resistances of the persona aren't working, either. Any idea as to why this may be happening?

Here's my current script:

The added the nickname support you asked. Please let me know if there are any bugs.

Changelog:
  • Added support for element, debuff and state rate multipliers
  • You can now set an arcana by using the nickname. If an arcana has a class which is not an arcana, but its nickname exists as an arcana name then it considers the nickname.
  • Fixed a bug when a fusion was canceled and another persona was chosen (even with a wrong combination) it asked if you wanted to create the previous persona.
Post updated with the above changes.
I want to let you (or anyone else) know that although I added the above request, it is highly unlikely that I will add any other in the future. This one turned out to require small changes (and kinda made sense as it restricted the arcana skills variability) and not much time so I added it.
Bugs that may be found in the future will be fixed asap.
 

NameNotFound

Villager
Member
Joined
May 13, 2020
Messages
7
Reaction score
1
First Language
Portuguese
Primarily Uses
RMVXA
Thank you! I was testing it out, and it did pick up on the nicknames for the arcanas (fusion worked, that's how I know). However, now there's another issue, though this one is more about compatibility. Now, whenever I equip a persona (whether right as I equip it in battle, or after I back out of the persona menu after equipping one outside of battle), it gives me a "FloatDomainError" error on line 710 of the Yanfly Engine Ace Core script. I use the default script, no changes whatsoever. Do you happen to know why this happens?

Edit: I doubt that people will use nicknames and class names half and half for personas (as in, some personas use class names, others use nicknames, both in the same game), so an option for the persona info format to used would be useful. It's not hard to change in the script, but it would still be convenient. The two main parts are the persona list you access out of battle, and the info screen of said persona.

Trying not to pile too much info into one post, but equipping a persona while on its status screen crashes the game, with a "FloatDomainError" error on line 645.

Edit2: Both of the errors are now fixed. It was an issue with the parameter section. I tried using a single "0.0" to set all persona xparams to 0.0, but it didn't work.

Edit3: Would it be possible to get the current number of personas that an actor has through a script call?

Edit4: Sorry, I keep having trouble... I'm getting an error when trying to check a social link (opening the menu, and selecting the link), on line 2009. A NameError. I thought it would be due to the picture file name not matching the social link target's name, but with some debugging, it seems to be printing the correct file name, so I don't know what else it could be.

Here's my script:

 
Last edited:

vFoggy

Veteran
Veteran
Joined
Nov 3, 2012
Messages
75
Reaction score
33
Primarily Uses
Thank you! I was testing it out, and it did pick up on the nicknames for the arcanas (fusion worked, that's how I know). However, now there's another issue, though this one is more about compatibility. Now, whenever I equip a persona (whether right as I equip it in battle, or after I back out of the persona menu after equipping one outside of battle), it gives me a "FloatDomainError" error on line 710 of the Yanfly Engine Ace Core script. I use the default script, no changes whatsoever. Do you happen to know why this happens?

Edit: I doubt that people will use nicknames and class names half and half for personas (as in, some personas use class names, others use nicknames, both in the same game), so an option for the persona info format to used would be useful. It's not hard to change in the script, but it would still be convenient. The two main parts are the persona list you access out of battle, and the info screen of said persona.

Trying not to pile too much info into one post, but equipping a persona while on its status screen crashes the game, with a "FloatDomainError" error on line 645.

Edit2: Both of the errors are now fixed. It was an issue with the parameter section. I tried using a single "0.0" to set all persona xparams to 0.0, but it didn't work.

Edit3: Would it be possible to get the current number of personas that an actor has through a script call?

Edit4: Sorry, I keep having trouble... I'm getting an error when trying to check a social link (opening the menu, and selecting the link), on line 2009. A NameError. I thought it would be due to the picture file name not matching the social link target's name, but with some debugging, it seems to be printing the correct file name, so I don't know what else it could be.

Here's my script:

I added two new tags that can be used to hide the name of the class or the nickname from the status. (See changes below)
I couldn't recreate any of the errors you mentioned, though the first one may be fixed with the update.
You can get the number of personas an actor has by using the following command:
$game_party.actors_personas(actor_id).size

Changes:
  • Fixed mistake where aliased state_rate, debuff_rate and element_rate methods were not being called.
  • Fixed a bug when declining a shuffle the message and windows were not being disposed correctly or in time.
  • Fixed an error when pressing enter on an empty Personas menu.
  • Fixed an error when equipping persona through the status menu.
  • Added <Hide status nickname> and <Hide status classname> tags that hide the corresponding info in the status menu.
  • Fixed incorrect arcana display on short Persona status.
 

NameNotFound

Villager
Member
Joined
May 13, 2020
Messages
7
Reaction score
1
First Language
Portuguese
Primarily Uses
RMVXA
Yep, the first error is fixed! I eventually discovered what the error with the social links was: The error mentioned that Sprite_SocialLink was uninitialized (the past script showed a different error message). In fact, searching for that class held no results. I then went to the demo project and copied this chunk of code, pasting it at the top of the Arcana section:

Code:
class Sprite_SocialLink < Sprite
  def initialize(viewport, name)
    viewport.z = 100
    super(viewport)
    @name = name
    update_bitmap
  end
 
  def dispose
    bitmap.dispose if bitmap
    super
  end
 
  def update_bitmap
    if @name.nil?
      self.bitmap = nil
    else
      self.bitmap = Cache.picture(@name)
    end
  end
end

This fixed the issue, it seems the class was missing.

Regarding the tags, I tried them out. The tag to hide the class doesn't affect the fusion screen, as it appears like: "Arsene LV1 Arsene", when the tag should make that "Arsene LV1 Fool", or "Arsene LV1" if this tag just hides the class name and doesn't change it to the nickname. Once again, it's an easy change in the code, but it's just a heads up.

I should also note, even though you can't have two of the same persona, you can fuse a persona that you already have. For example, Arsene + Pixie = Agathion. If I have all three, I can still attempt to craft Agathion. Would it be difficult to add a restriction where you can't craft the persona if you already have it? If so, and if you could implement it, I'd be really grateful.

Furthermore, expanding on the question I asked about the number of personas: I'll be using it to prevent the user from carrying too many personas. I'm using an event to make personas craftable using shards from the respective arcana, which drop from enemies of that same arcana. Simply verifying if the number of personas is equal to the limit would be enough to deny the crafting. And so, players would have to delete a persona from their inventory to make room for another one. How would I go about making a menu to remove a persona from my inventory? Or would it be possible to change the persona menu so a remove option is implemented?
 

Latest Threads

Latest Posts

Latest Profile Posts

The full estate map(include 1F,2F,3F and backyard), yes the backyard is a small labyrinth as well as an entrance to a real labyrinth!
Sometimes you Just need to realise someone is beyond help... Still hard to walk away tho :(
100 Horror/Tragedy Sample Maps, Penguin Mech Sprite, & TileD Templates | RPG Maker News #70

Continuing working on abs. So far I have done the workout twice. I am excited to see the results after a couple of weeks. How is everyone doing? :)
MZ: oh boy imma work today
Me, excited: Really?
MZ, doesn't do what I tell It too
Me: I Thought-
MZ: I am Working!

Forum statistics

Threads
112,227
Messages
1,066,699
Members
145,834
Latest member
Grazzok
Top