- Joined
- Mar 20, 2013
- Messages
- 210
- Reaction score
- 86
- First Language
- English
- Primarily Uses
- RMMV
A Guide to Battle Symphony
[SIZE=10pt]Author’s Notes:[/SIZE][SIZE=10pt]This is a guide to Yami’s ‘Battle Symphony’ for RPG Maker VX Ace. This battle engine is free to use in non-commercial and commercial projects, so long as the proper credits are given:[/SIZE]
[SIZE=10pt]Yami[/SIZE]
[SIZE=10pt]Yanfly[/SIZE]
[SIZE=10pt]Nessiah & EvilEagles (for their contributions to Symphony)[/SIZE]
[SIZE=10pt]Credits for this guide go to:[/SIZE]
[SIZE=10pt]Yami (for creating the engine and Yami’s Manual to Battle Symphony)[/SIZE]
[SIZE=10pt]Pioneer Valley Games (for the battlesheets and spritesets)[/SIZE]
[SIZE=10pt]Yanfly (for some of the scripts seen in the images)[/SIZE]
[SIZE=10pt]This guide includes one or more sections that reference scripts and/or programs that are unrelated to Symphony and its authors. If these scripts are used in any project, proper credit must be given to the authors and contributors.[/SIZE]
Table of Contents
- Introduction
- Requirements and Preparation
- Battlesheets
- Symphony Tags
- Basic Commands
- Advanced Commands
- Wrapping Things Up
- Introduction
At first glance, Battle Symphony appears to be a complex script that requires some programming knowledge to use properly. This perception of Battle Symphony is entirely true, so here’s the programming knowledge you’ll need to know in order to proceed:
Programming consists of commands that tell one object how to interact with another object.
Battle Symphony is based on this core principle of programming. The engine features its own programming language, which allows for the creation of complex, beautiful animations that put most of the old Final Fantasy games to shame. With a couple of minutes and a few simple lines of code (and I’m talking simple, there’s nothing in Battle Symphony that will cause your eyes to bleed), you could have visual battlers that are darting across the screen, slashing enemies and using complex skills that would normally take days (or weeks) to animate.
[SIZE=10pt]Omnislash Test[/SIZE][SIZE=10pt] – this simple animation doesn’t event scratch the surface of Symphony’s capabilities. Pretty impressive, wouldn’t you say?[/SIZE]
Using Battle Symphony isn’t an effortless procedure, so let’s dive in and tackle the Requirements and Preparation section of this guide.
*I recommend creating a new Ace gamefile as you follow this guide. You can easily copy/paste everything over to your original project when we’re finished, so don’t fret. As a measure of safety, learning a new program in an expendable gamefile is wise so we can avoid the risk of overwriting an important skill, script, etc.
2. Requirements and Preparation
To use Battle Symphony, the only true requirement is the Battle Symphony Script. However, to accomplish more advanced animations, we’ll also need to use the Holder’s Battlers Add-on, which will allow for more detailed animations via battlesheets.
Place Battle Symphony’s script in the ‘Materials’ section of the Script Editor. Battle Symphony should go below all of Yanfly’s scripts, but above any custom non-battle, non-Yanfly scripts you may have installed. Holder’s Battlers Add-on should go directly beneath Battle Symphony in the scriptlist. Once you’ve installed Battle Symphony and Holder’s Battler Add-on in the Script Editor, head on over to Yami’s Manual on the Symphoria webpage and bookmark it. His manual can be confusing at first, but it will be more understandable and digestible once you’ve worked through my guide. All of the basic information in Yami’s Manual can be found in my guide, but advanced users may want to reference Yami’s Manual for its comprehensive list of Symphony Tags.
Finally, you’ll need to download three free .zip resource sets from the Pioneer Valley Games website:
Engineer Resources
Barbarian Resources
Frost Dragon Resources
[SIZE=9pt]*I downloaded and tested each .zip file; the .zips were clean and virus-free at 2:13 pm, 11/8/2013.[/SIZE]
Now, let’s take a look at lines 84-128 in the Battle Symphony script, starting with line 84.
Line 84: EMPTY_VIEW = X
Set ‘X’ to ‘true’ or ‘false’. ‘True’ turns off every visual aspect of Symphony, including actors, animations, and items. This feature has its uses, but since we’re learning how to implement animations and visual battlers, set this to ‘false’ so everything remains visible in the battle screen.
Line 88: PARTY_DIRECTION = X
Set ‘X’ to ‘4’, ‘8’, ‘6’, or ‘2’. This adjusts the direction of the actor’s battlers in accordance to the NumPad, so if you set the operand to ‘4’, the party will face left and the enemies will face right. Some laptops don’t have a NumPad, so 4=left, 8=up, 6=right, and 2=down.
Line 95: ACTORS_POSITION: { # Begin.
Line 96: 0 => [480, 224],
Line 97: 1 => [428, 244],
Line 98: 2 => [472, 264],
Line 99: 3 => [422, 284],
Line 100: 3 => [452, 304],
Line 101: }
This adjusts the position of your actors, so this segment is fairly basic. Line 96, ‘0 => [x,y]’, adjusts the position of the first actor, with ‘x’ and ‘y’ representing the actor’s position based on pixels in the x-y scale (‘x’ is left-right, ‘y’ is up-down). Line 97 adjusts the second actor’s position, and so forth. You shouldn’t need to edit line 100 unless you have a fifth actor, which is not recommended for the purposes of this guide because of the large battlers in Section III - Battlesheets.
Line 107: WEAPON_ICON_NON_CHARSET = X
Set ‘X’ to ‘true’ or ‘false’. This command specifies whether or not weapon icons appear when your actors attack. ‘True’ is absolutely not recommended in this guide, as weapon animations are included in the battlesheets in Section III – Battlesheets. Set this to ‘false’, or else we’ll wind up with this:

[SIZE=9pt]Brutus is currently in therapy because he sees cartoon apparitions on a regular basis.[/SIZE]
Line 111: DISABLE_AUTO_MOVE_POSE = XSet ‘X’ to ‘true’ or ‘false’. ‘False’ allows auto-move-posing to be enabled, which automatically poses actors as they move around the battlefield. This feature is useful in certain situations, but it doesn’t work well with Holder’s Battlers, so let’s leave this as ‘true’ for the sake of this guide.
Line 114: BATTLER_SHADOW = X
Set ‘X’ to ‘true’ or ‘false’. Again, this works well in certain situations, but it looks odd with the battlers we’re going to use in this guide. So, let’s set this to ‘false’.
Line 119: ENEMY_ATTACK_ANIMATION = X
Set ‘X’ to the ID of any animation in the database; this sets the default animation for basic enemy attacks.
Your Battle Symphony script should now look like this (the operands in lines 96-100, as well as 119, don’t have to be identical to the example):

Now, let’s move onto the implementation of battlesheets in Battle Symphony.
3. Battlesheets
By default, Symphony will display the charsets for actors that have been specified in the database in the ‘Actor’ tab. This is suitable in certain situations, but we can take Symphony a step further and use Battlesheets for each character instead of a static charset. To do this, we’ll need the Holder’s Battler Add-on script, which should already be in your scriptlist if you followed the instructions in Section I. Next, you’ll need to extract the 3 .zips you downloaded from Pioneer Valley Games (buy his stuff, it’s awesome).
Now, find the extracted files, and locate the battlesheet for each individual character. These characters aren’t named, so let’s called the gun-wielding woman the ‘Engineer’, the axe-wielding man the ‘Barbarian’, and the dragon the ‘Azure Dragon’. Change the name of the Engineer’s battlesheet to ‘Engineer Battlesheet’, the Barbarian to ‘Barbarian Battlesheet’, and the dragon to ‘Azure Dragon Battlesheet’.
Next, go into the resource manager in Ace, then import the renamed battlesheets for each of the three characters into the graphics/characters folder. Once you’ve successfully imported the battlesheets into graphics/characters, we’re ready to move onto the next step.

Holder’s Battler Add-on allows us to specify which battlesheets are used for which character during combat via notetags. The notetag looks like this:
<holders battler: X>
‘X’ represents the filename of the battlesheet. So, to keep this simple, let’s go into the database and change the names of Actors 1 and 2. Actor 1 should be ‘Tiara’, the Engineer, and Actor 2 should be ‘Brutus’, the Barbarian; you can even go the extra mile here and import the appropriate faces for each character, but this isn’t a requirement. Now, Tiara is our Engineer, so we need to specify her battlesheet in the notetags. Put the code ‘<holders battler: Engineer Battlesheet>’ into her actor’s notes. See below:

Now, go to the ‘Troops’ tab and initiate a battle test with Tiara. Have Tiara ‘Attack’ and take note of the complex animation as she dashes toward the enemy, draws her gun, shoots, then dashes back to her original position. Symphony has default animations for attacking, defending, using items, and using magic, which is great for basic attacks and skills. However, for more advanced animations, we’ll need to do some programming of our own using Symphony Tags. Let’s get started!4. Symphony Tags
Battle Symphony utilizes a programming language based on something called ‘Symphony Tags’, which are simple commands that can be combined to create complex and intricate animations. These tags are placed in the ‘notes’ section of skills in the Database. The ‘Attack’ and ‘Defend’ skills already have animations that are specified in the Battle Symphony script, so it’s best to leave those skills untouched.
When Tiara attacked in the battle test, did you notice that she charged forward with a gun? That seems a little odd, so let’s give her a better animation for shooting. We’ll start off by creating a new skill in slot 8 called ‘Shoot’. Instead of trying to explain how to set up the skill, I’ll just have you refer to the image below (do NOT type anything into the ‘Note’ box yet):

See the stuff written in the Note box? Those are Symphony Tags, which I’ll address in a moment. First, copy and paste ‘Shoot’ into skill slot 9. Rename skill #9 as ‘Throw Bomb’. In order to proceed, we’ll need to go over the Symphony Tags and learn about their many functions and utilities. Let’s get started:
Symphony Tags - Action Categories
Setup Actions
<setup action> </setup action>
These actions are the ‘setup’ for the main bulk of the action. Setup actions happen first, other actions happen later.
Target Actions
<target action> </target action>
Actions specified under the ‘Target Action’ category will happen to an individual, individually. In other words, Target Actions can only be directed at a singular object at any given time. Target Actions are good for animating an individual, while Whole Actions are better for animating groups that are supposed to act simultaneously.
Whole Actions
<whole action> </whole action>
While Target Actions only affect an individual, Whole Actions can affect numerous individuals simultaneously. Whole Actions are best suited for displaying animations on all enemies at the same time, moving the entire party at the same time, etc.
Follow Actions
<follow action> </follow action>
I only recommend Follow Actions to advanced Battle Symphony users. Follow Actions are used for ‘cleaning up’ after a Whole or Target Action. Follow Actions are used to remove flags, initiate common events, etc.
Finish Actions
<finish action> </finish action>
As the name implies, Finish Actions are used to indicate the completion of a chain of commands or animations. Finish Actions can include (but aren’t limited to) moving back to an original position, sheathing a weapon, etc.
Advanced Battle Symphony users will be able to utilize all five Action Categories in a single skill. Even so, Target Actions alone can provide enough customization to satisfy the majority of users, and these actions are also easier for rookies to learn. When programming animations, I personally prefer to stick to Target Actions and nix the rest. As such, I’m going to focus solely on Target Actions in this guide.
Symphony Tags - Target Typing
'Target Typing' refers to the commands used when specifying targets for certain actions or animations. When you see a Symphony Tag that says 'refer to Target Typing', that means you can use any of the commands below to specify a target:user: This will select the active battler.
target, targets: These will select the active targets in question.
actors, party, actors living: These will select all living actors.
all actors: This will select all actors including dead ones.
actors not user: This will select all living actors except for the user.
enemies, troop, enemies living: This will select all living enemies.
all enemies: This will select all enemies, even dead.
enemies not user: This will select all enemies except for the user.
actor x: This will select the actor in slot x.
enemy x: This will select the enemy in slot x.
everything: Selects all living actors and enemies.
everything not user: This will select all living battlers except user.
allies, friends: This will select the battler’s allies.
friends not user: This will select the battler’s allies except itself.
opponents, rivals: This will select the battler’s opponents.
focus: Selects the active battler and its targets.
not focus: Selects everything but the active battler and its targets.
counter subject: This will select the countering battler.
reflect subject: This will select the reflecting battler.
Default Symphony Tags
After you decide which category of action to use, and which target the action is going to affect, these tags decide the actions the target is going to take. So, if we want Tiara to literally jump when the skill 'Jump' is used, we would first define in Jump's notes that the animation is a 'Target Action'. We would then specify that the user of the skill is going to take an action, and then we use the Default Symphony Tags to tell the user to jump when the skill 'Jump' is used.Here are the list of Symphony's actions/tags, copied from Yami's Manual:
animation id: tune1, tune2
This will play an animation on the targets. By default, this animation will be played with non-mirror and no waiting.
id: Animation ID in Database.
tune1: Refer to Target Typing.
tune2 (optional):
- wait: Causes the animation to wait until it’s done before going on.
- mirror: Causes the animation to mirror itself.
Example: 'animation 12: user, wait' - plays animation 12 on the skill's user, and other animations/actions will wait until this animation is finished.
attack animation: tune1, tune2
skill animation: tune1, tune2
last animation: tune1, tune2
This will play a normal attack animation or skill animation or last used animation on the targets. By default, this animation will be played with non-mirror and no waiting.
tune1: Refer to Target Typing.
tune2 (optional):
- wait: Causes the animation to wait until it’s done before going on.
- mirror: Causes the animation to mirror itself.
Example: 'attack animation: user, wait' - plays default attack animation on user, and other animations/actions will wait until this animation is finished.
attack effect: tune1, tune2
skill effect: tune1, tune2
This will calculate all attack or skill effect, from damage to effects. You will have to use this tag to make the skill to damage and cause effect on targets.
tune1 (optional):
- clear: This will clear any miss, or evade flags.
- counter check: This will check and calculate counter flags.
- reflect check: This will check and calculate reflect flags.
- dmg: This will damage targets.
- effect: This will cause effects, includes Gain TP.
- whole: This will include these three tunes: calc, dmg, effect.
tune2 (optional):
- calc: This will recalculate miss and evade flags for current step.
- perfect: This will prevent missing or evading.
Example: 'skill effect' - this calculates the damages and effects of the skill that's being used.
auto symphony: tune1
This will play an Actions Set defined by Auto Symphony (Section III).
tune1: Refer to Auto Symphony key (Section III).
Example: no need for an example. There are uses for this, but we don't need to go over them in this guide.
icon create: tune1, tune2, tune3, tune4
This will create an icon object from IconSet, often use for weapons and items.
tune1: Refer to Target Typing.
tune2: Icon Symbol, use to call effect with tag icon effect. There are default Icon Symbols:
- weapon, weapon1: Create Icon for Weapon 1.
- weapon2: Create Icon for Weapon 2.
- shield: Create Icon for Shield.
- item: Create Icon for Using Item.
tune3 (optional): Icon Attachment, also known as Icon Position
- hand: Create Icon on Character’s Hand.
- shield: Create Icon on Character’s Other Hand.
- item: Create Icon on item position.
- middle: Create Icon on middle body.
- top: Create Icon on top body.
- bottom: Create Icon on bottom body.
tune4 (optional): Icon ID, use when not using Default Icon Symbols.
Example: 'icon create: user, weapon, hand' - creates an icon of the equipped weapon on the user's hand. The weapon won't do anything by itself, but this icon needs to be created in order for it to be animated later on.
icon delete: tune1, tune2
This will delete an icon object created by tag icon create.
tune1: Refer to Target Typing.
tune2: Icon Symbol.
Example: 'icon delete: user, weapon' - deletes the weapon icon we created with icon create.
icon effect: tune1, tune2, tune3, tune4, wait
This will make effect for an icon object created by tag icon create.
tune1: Refer to Target Typing.
tune2: Icon Symbol.
tune3: Icon Effect:
- angle, x: Set Icon angle to x.
- rotate, x: Make Icon rotate to angle x.
- animation x: Start Animation ID x on Icon.
- move_x x: Make Icon move to X-coordinate x.
- move_y y: Make Icon move to Y-coordinate y.
- cur_x x: Make Icon move to X-coordinate: Current X + x.
- cur_y y: Make Icon move to Y-coordinate: Current Y + y.
- fade in: Make Icon fade in.
- fade out: Make Icon fade out.
- float: Make Icon float (Use for Item Using).
- swing: Swing Icon down (Use for Swing Attack).
- upswing: Swing Icon up (Use for Swing Attack).
- stab: Special Move for Spear Attack.
- claw: Special Move for Claw Attack.
tune4 (optional): Total Frames. Use to define effect speed.
wait (optional): Type wait here to wait until effect’s done before going on.
Example: 'icon effect: user, weapon, swing, 30, wait' - this makes the weapon icon move in a swinging arc, and the animation will take 30 frames to be completed. Other actions/animations will wait until this animation is completed.
Is this starting to make sense? Let's take a look at some more Symphony Tags.
icon throw main: tune1, tune2, tune3, tune4, wait
This will throw an object created by tag icon create to target.
main: Object Owner. Refer to Target Typing.
tune1: Target. Refer to Target Typing.
tune2: Icon Symbol.
tune3: Throwing Arc. Negative Integer will make object be thrown downward.
tune4 (optional): Total Frames. Use to define throwing speed.
wait (optional): Type wait here to wait until effect’s done before going on.
if condition
This will check an if condition before doing next actions. End this condition by end.
unless condition
This will check an unless condition before doing next actions. End this condition by end.
jump arc X main: tune1, tune2, wait
This will make main jump to a specific location.
X: Jump Arc. Integer.
main: Jumping Subject. Refer to Target Typing.
tune1: Specific Location
- forward, x: Jump forward for x pixel.
- backward, x: Jump backward for x pixel.
- origin: Jump to original location.
- target, tune3: Jump to target’s location. tune3 is position on target’s body: foot, body, center, head, back
tune2 (optional): Total Frames. Use to define jumping speed.
wait (optional): Type wait here to wait until effect’s done before going on.
message
This will display using skill/item on Battle Log.
move main: tune1, tune2, wait
This will move main to a specific location.
main: Moving Subject. Refer to Target Typing.
tune1: Specific Location
- forward, x: Move forward for x pixel.
- backward, x: Move backward for x pixel.
- origin: Move to original location.
- target, tune3: Move to target’s location. tune3 is position on target’s body: foot, body, center, head, back
tune2 (optional): Total Frames. Use to define moving speed.
wait (optional): Type wait here to wait until effect’s done before going on.
immortal: tune1, tune2
This will change immortal flag for targets, which is useful when making a multi-hit skill. Set flag to false will make targets collapse if fulfill death condition.
tune1: Refer to Target Typing.
tune2: Immortal Flag, set to true or false.
teleport main: tune1, tune2, wait
This will teleport main to specific location. Usage is the same as move main.
wait for animation
This will wait until all animations have done before going on. Often use last in an Actions Sequence.
wait for move
This will wait until all movement is done before going on. Often use last in an Actions Sequence.
wait: x
This will wait for x frames before going on.
Holder’s Battlers Tags
By default, the Holder’s Battler Add-on script will specify Battlesheet poses for use in Battle Symphony commands. Here are the default Symphony Tags for Holder’s Battlers:
stance: tune1, tune2
This will change battler stance when using Holder Battlesheets.
tune1: Refer to Target Typing.
tune2: Refer to Stance Key:
- break: Break and Cancel any being stance.
- idle: Idle/Ready Stance.
- struck: Struck Stance. Use when battler is attacked.
- woozy: Woozy Stance. Use when battler’s HP is low.
- march: March Stance. Use when make battler rush to target.
- victory: Victory Stance. Use when Victory.
- defend: Defend Stance.
- dead: Dead Stance. Use for death battler.
- attack: Attack Stance.
- magic: Magic Stance.
- item: Item Stance.
- skill: Skill Stance.
- forward: Advance Stance. Use when move.
- retreat: Retreat Stance.
Example: ‘stance: user, defend’ – the skill’s user will go into a defensive pose.
Holder’s Battler tags are self-explanatory, so there shouldn’t be a need for further explanation here.
5. Basic Commands
Now that we’ve gone over the Symphony Tags, we can start programming actions and animations for our battlers! At this point, go back to your ‘Shoot’ skill and copy the Symphony Tags from ‘Note’ section in the image below:

Make sure your Note box looks exactly like the image above. Since we don’t want the Engineer to move all the way toward the enemy to shoot her gun, the goal of this skill is to create a realistic animation where the Engineer steps forward, raises her gun, and fires at the enemy from a distance. Will our Symphony Tags accomplish that? To find out, make sure the Engineer can use the ‘Shoot’ skill by adding it to her class’s skill list, and then run a battle test. Here’s what we’ll get:
[SIZE=9pt]That looks really, really painful.[/SIZE]
“Dammit,” you might say, “that didn’t work at all!” You’re right; our ‘Shoot’ skill was a huge failure, and all due to a very simple mistake. In the second line of Shoot’s Note box, see where it says ‘move user: target, wait’? Doh! We don’t want our Engineer to move to her target, so change that line to ‘move user: forward, 6, wait’. Our Engineer will now move forward by 6 pixels before taking her ‘shooting’ action. Save your changes, and then run the battletest again. What happens when we use ‘Shoot’ this time? See below:
[SIZE=9pt]Ye’ gods, behold the range![/SIZE]
Congratulations, you just wrote the code for a successful animation using Symphony Tags! ‘Shoot’ is a relatively simple skill to animate, so let’s move on to a more complex skill: ‘Throw Bomb’.6. Advanced Commands
Earlier, we copied ‘Shoot’, pasted it into Skill Slot 9, and renamed it as ‘Throw Bomb.’ Go to that skill now and put the following code into its Note box:

Now, in order to make the bomb visible, we used ‘icon create’ to create the bomb’s image. However, we still need to specify what the bomb’s graphic is going to look like. If you’re using the default iconset, you’ll have 527 icons to choose from. Select the skill’s icon changer at the top of the window to bring up the icon selection menu:
When you select an icon in the menu (don’t double click, just click one to highlight it), an indicator appears in the bottom-left corner of the menu that shows the icon’s ID number.

Find an icon graphic that looks like a bomb (or a shoe, whatever floats your boat), and take note of the index number, which will serve as the iconID. Hit ‘cancel’, and go back to the Note box for ‘Throw Bomb’. In the line ‘icon create: user, item, hand, X’, change ‘X’ to the iconID you wish to use for the bomb’s graphic.
Now, we need to test ‘Throw Bomb’ to make sure it works properly. Make sure Tiara can use ‘Throw Bomb’ by putting it in the skill list for her class; when you’re done with that, run a battle test and use the ‘Throw Bomb’ skill.

[SIZE=9pt]“Bawkaaaaaaaawwwww!!!”[/SIZE]
‘Throw Bomb’ is a success! At this point, you could probably go nuts with Battle Symphony and create all sorts of wacky animations. First, check out the following section for a few more tricks, as well as the closing notes for this guide.7. Wrapping Things Up
So far, this guide has focused on animating party members, but not enemies. To use use an animated enemy in battle, find an enemy in the database and put the code <holders battler: X> into the Note box, where ‘X’ is the filename of the desired battlesheet found in the graphics/characters folder. For now, create an enemy in the database called ‘Azure Dragon’. Put the code <holders battler: Azure Dragon Battlesheet> in the Azure Dragon’s Note box. If you imported the Azure Dragon battlesheet in Section III (if not, go back and do so), an animated Azure Dragon will replace the database graphic when battle has been initiated (even though your enemy may be a Slime in the database, it will be the Azure Dragon during combat). Run a battle test with the Azure Dragon and make sure the battlesheet is working properly. Your battle screen should look like this:

[SIZE=9pt]“What is it? Dragons?”[/SIZE]
You have now completed this guide (whew!), and have taken a crucial first step toward creating beautiful, complex animations using Battle Symphony. Good luck, and thanks for your time!External Links
Battle Symphony Website
Pioneer Valley Games Website
Yanfly’s Website
Last edited by a moderator: