This event system will demonstrate how to create a summoning skill that can be used by a party member. There are many things that can be done to make this skill unique. This will provide you with a basic setup which can then be altered to fit your needs.
Features-Summon and dismiss characters
-Only one character can be summoned at a time
-Complete recovery upon dismissal
-Dismissal after battle (add-on)
-Prevention of summoning when there are already four party members (script)
CharactersBefore you go any further, you need to create the characters that you wish to summon. You can, for now, just make the characters, or you could set up their class, stats, etc. now and then continue.
SkillsThese are the skills that you will need to create before you start making the common events. I'll only include the information that you need to add for now. I'm going to include two possible characters to summon in this example.
Summon Character 1Scope: None
Occasion: Always
Summon Character 2Scope: None
Occasion: Always
DismissScope: None
Occasion: Always
Common EventsNow, it's time to set up the common events that you'll need.
Summon Character 1Trigger: None
- @>Change Party Member: Add [Character 1]
- @>Change Skills: [Summoner], + [Dismiss]
- @>Change Skills: [Summoner], - [Summon Character 1]
- @>Change Skills: [Summoner], - [Summon Character 2]
Expand to see the code.
Summon Character 2Trigger: None
- @>Change Party Member: Add [Character 2]
- @>Change Skills: [Summoner], + [Dismiss]
- @>Change Skills: [Summoner], - [Summon Character 1]
- @>Change Skills: [Summoner], - [Summon Character 2]
Expand to see the code.
In these events, you add the character to the party (summon them), then add the "Dismiss" skill and remove all "Summon Character" skills.
DismissTrigger: None
- @>Conditional Branch: [Character 1] is in the party
- @>Recover All: [Character 1]
- @>Change Party Member: Remove [Character 1]
- : Branch End
- @>Conditional Branch: [Character 2] is in the party
- @>Recover All: [Character 2]
- @>Change Party Member: Remove [Character 2]
- : Branch End
- @>Control Variables: [0001: Summoner's Level] = [Summoner]'s Level
- @>Change Skills: [Summoner], + [Summon Character 1]
- @>Conditional Branch: Variable [0001: Summoner's Level] >= 3
- @>Change Skills: [Summoner], + [Summon Character 2]
- : Branch End
- @>Change Skills: [Summoner], - [Dismiss]
Expand to see the code.
That's a lot to take in all at once, so I'll explain it in pieces. The first two conditional branches check which character is in the party (which one was summoned), and, based on those results, it heals the appropriate character and removes them from the party. Next, I created a variable to keep track of the summoner's level. This isn't used for "Summon Character 1" because the summoner knew that skill at level 1, but "Summon Character 2" is learned at level 3. So, I created a conditional branch that checks the summoner's level. If the summoner's level is greater than or equal to level 3, "Summon Character 2" is added to the summoner's skills. Finally, I removed the "Dismiss" skill.
Dismiss CheckTrigger: Parallel
Switch: 0001: Start
- @>Conditional Branch: [Summoner] is [Dismiss] learned
- @>Conditional Branch: [Summoner] is [Summon Character 2] learned
- @>Change Skills: [Summoner], - [Summon Character 2]
- : Branch End
- : Branch End
Expand to see the code.
This common event is needed because when a character achieves the required level, the skill is added to their list. So, this parallel common event that starts as soon as possible (with a switch that's turned on at the start of the game) resolves a small problem. If a character is summoned and the summoner learns a new summoning skill, they'll have both the "Dismiss" skill and the new summoning skill. That means they'll be able to have more than one summoned character in the party. This common event checks if the summoner has "Dismiss" and then, if that's true, it checks for extra summoning skills and removes them.
SkillsSummon Character 1Common Event: 001: Summon Character 1
Summon Character 2Common Event: 002: Summon Character 2
DismissCommon Event: 003: Dismiss
You just need to attach the common events to the corresponding skills. Now, fill out the rest of the information in the skills if you wish and attach the skills to the summoner's class. That's it!
Dismissal After BattleIf you want the summoned characters to be dismissed after battle, you just need to make a few adjustments, which will be explained below.
SkillsSummon Character 1Occasion: Only in Battle
Summon Character 2Occasion: Only in Battle
DismissOccasion: Only in Battle
You'll need to change all of the summoning skills so the player can only use them in battle. If the player can summon outside of battle, there's no point in dismissing the summoned character after battle in the first place, so make sure you include these changes.
Common EventsDismiss Check
- @>Conditional Branch: [Summoner] is [Dismiss] learned
- @>Conditional Branch: [Character 1] is in the party
- @>Recover All: [Character 1]
- @>Change Party Member: Remove [Character 1]
- : Branch End
- @>Conditional Branch: [Character 2] is in the party
- @>Recover All: [Character 2]
- @>Change Party Member: Remove [Character 2]
- : Branch End
- @>Control Variables: [0001: Summoner's Level] = [Summoner]'s Level
- @>Change Skills: [Summoner], + [Summon Character 1]
- @>Conditional Branch: Variable [0001: Summoner's Level] >= 3
- @>Change Skills: [Summoner], + [Summon Character 2]
- : Branch End
- @>Change Skills: [Summoner], - [Dismiss]
- : Branch End
Expand to see the code.
It looks like a lot, but it's really just the Dismiss common event pasted below the conditional branch that checks whether or not the character knows "Dismiss". The conditional branch that checked for the "Summon Character 2" skill after checking for "Dismiss" is no longer necessary, so it can be deleted and replaced by the entire "Dismiss" common event.
ScriptsRPG Maker XPBattler ErrorIf you're using RPG Maker XP, you'll need to use the following script. This script fixes an error where a character's battler won't appear if the character is removed and then added to the party again.
Inhibit Party OverloadThis script will allow you to set which skills are summoning skills so they can't be used when there are already four party members. Instructions for setting it up are inside the script.
- #----------------------------------------------------------------------------
- # [XP] Inhibit Party Overload
- #----------------------------------------------------------------------------
- # Made by Guardian(1239)
- #----------------------------------------------------------------------------
- # This script prevents a skill or skills from being used when there
- # are already four party members. This was made to be used with my
- # summoning event system, but it can be used elsewhere.
- #----------------------------------------------------------------------------
- # Instructions: Paste in a new slot above "Main" and below all other
- # custom scripts. Edit the values for "Skills" to match the ID(s)
- # of the skill(s) you wish to follow the restriction of the script
- # (can't be used when there are four party members).
- #----------------------------------------------------------------------------
- # Copyright: You may use this script freely. You may distribute
- # this script as long as credit is given to Guardian(1239). You
- # may edit this script as you wish. You may distribute an edit of
- # this script as long as credit for the original is given to
- # Guardian(1239).
- #----------------------------------------------------------------------------
-
- module PARTY_OVERLOAD
- # Edit these values to match the ID(s) of the skill(s) you wish
- # to follow the restriction of the script (can't be used when
- # there are four party members).
- Skills = [1,2]
- end
-
- class Game_Battler
- include PARTY_OVERLOAD
- #--------------------------------------------------------------------------
- # * Determine Usable Skills
- # skill_id : skill ID
- #--------------------------------------------------------------------------
- alias overload_skill_can_use? skill_can_use?
- def skill_can_use?(skill_id)
- # If there are 4 party members, the summoning skills can't be used.
- if ($game_party.actors.size == 4 and Skills.include?(skill_id))
- return false
- end
-
- overload_skill_can_use?(skill_id)
-
- end
- end
Expand to see the code.
RPG Maker VXVariable ErrorIf you're using RPG Maker VX, you'll need to use the following script. This script fixes the problems with the default variable operation scripts.
[i]Inhibit Party Overload
This script will allow you to set which skills are summoning skills so they can't be used when there are already four party members. Instructions for setting it up are inside the script.
- #------------------------------------------------------------------
- # [VX] Inhibit Party Overload
- #------------------------------------------------------------------
- # Made by Guardian(1239)
- #------------------------------------------------------------------
- # This script prevents a skill or skills from being used when there
- # are already four party members. This was made to be used with my
- # summoning event system, but it can be used elsewhere.
- #------------------------------------------------------------------
- # Instructions: Paste in a new slot under "Materials" and below all
- # other custom scripts. Edit the values for "Skills" to match the
- # ID(s) of the skill(s) you wish to follow the restriction of the
- # script (can't be used when there are four party members).
- #------------------------------------------------------------------
- # Copyright: You may use this script freely. You may distribute
- # this script as long as credit is given to Guardian(1239). You
- # may edit this script as you wish. You may distribute an edit of
- # this script as long as credit for the original is given to
- # Guardian(1239).
- #------------------------------------------------------------------
-
- module PARTY_OVERLOAD
- # Edit these values to match the ID(s) of the skill(s) you wish
- # to follow the restriction of the script (can't be used when
- # there are four party members).
- Skills = [1,2]
- end
-
- class Game_Battler
- include PARTY_OVERLOAD
- #--------------------------------------------------------------------------
- # * Determine Usable Skills
- # skill : skill
- #--------------------------------------------------------------------------
- alias overload_skill_can_use? skill_can_use?
- def skill_can_use?(skill)
- # If there are 4 party members, the summoning skills can't be used.
- if ($game_party.members.size == 4 and Skills.include?(skill.id))
- return false
- end
-
- overload_skill_can_use?(skill)
-
- end
- end
Expand to see the code.
DemosThe first two demos contain the base structure for summoning, and the second two demos contain the Dismissal After Battle add-on. All of them are hosted by Mediafire.
Summoning Base (XP)Summoning Base (VX)Summoning Dismissal (XP)Summoning Dismissal (VX)Problems?Post any problems you're having with the event system or scripts here and I'll help you fix them.