Skip to content
JayPM edited this page Jan 28, 2025 · 3 revisions

The <char> tag is 100% one of the more difficult tags to master, due to it's use of many child elements, however, if you give it time you will likely find it rather intuitive!

Defining the root element

Mandatory Attributes

  • id The id for your asset. This is what will be used to find your files, however, like multistate props, this references a folder: no file extension should be included.
  • name Your character's name. Type whatever you like, so long as it abides by XML standards, it is an allowed value.
  • enable If the character will show up in menus. If you remove characters, it's likely better to set this to 'N' (false) instead of commenting out the assets for backwards compatibility. (Available options are 'Y' (true) or 'N' (false))
  • thumb Your character's thumbnail. It expects a filename and it will be found with the actions.
  • default Your character's default action. It expects a filename and it will be found with the actions. (Most characters have their default state as "standing.swf")
  • motion Your character's default walking action. It expects a filename and it will be found with the actions.

Optional Attributes

  • facing Determines which direction the prop spawns. Available options are 'left' and 'right'. Default is left.
  • aid Intended to be a unique integer to represent the asset/action... however GoAnimate tended to get lazy with these, and they are useless for most cases. Was for GoAnimate4Schools censorship and not much else.

Example

<!-- A character definition, ready to fill with actions! -->
<char id="my_new_char" name="My New Char" thumb="standing.swf" facing="left" default="standing.swf" motion="walk.swf" enable="Y" aid="57239">
</char>

Adding Actions

Adding actions isn't very tricky! In between the char tags, you will add you actions like so...

<!-- Truncated for brevity -->
<char...>
  <action.../>
</char>

Essentially, you will literally put actions inside the character tag. There are two tags for adding actions <action> and <motion>. Both function identically, aside from motion automatically making the character move when activated. Actions and motions have the following attributes:

Mandatory Attributes

  • id Unlike the character id, this does expect a file. The pathfinding is done automatically, simply type in the filename.
  • name The action's name. Accepts any valid string.
  • enable If the action will show up in menus. If you remove actions, it's likely better to set this to 'N' (false) instead of commenting out the assets for backwards compatibility. (Available options are 'Y' (true) or 'N' (false))
  • totalframe This is a value is used for dynamically determining scene length. It expects an integer indicative to how long the animation is, but really you shouldn't ever make it particularly high, it's just a hassle.

Optional Attributes

  • aid Intended to be a unique integer to represent the asset/action... however GoAnimate tended to get lazy with these, and they are useless for most cases. Was for GoAnimate4Schools censorship and not much else.

Example

Now that we've done that, lets look at a potential character correctly implementing these ideas.

<char id="my_new_char" name="My New Char" thumb="standing.swf" facing="left" default="standing.swf" motion="walk.swf" enable="Y" aid="57239">
 <action id="standing.swf" name="Stand" enable="Y" totalframe="32" aid="123456"/>
 <motion id="walk.swf" name="Walk" enable="Y" totalframe="32" aid="123457"/>
</char>

Adding Categories

So, you created a lot of actions. Now they all look like a mess! How can we sort them? Thankfully GoAnimate thought of this and made it incredibly easy! The <category> tag has only one attribute ('name'), and wraps around actions, like so.

<char id="my_new_char" name="My New Char" thumb="standing.swf" facing="left" default="standing.swf" motion="walk.swf" enable="Y" aid="57239">
 <action id="standing.swf" name="Stand" enable="Y" totalframe="32" aid="123456"/>
 <motion id="walk.swf" name="Walk" enable="Y" totalframe="32" aid="123457"/>
 <category name="Fear">
  <action id="scared.swf" name="Scared" enable="Y" totalframe="32" aid="123458"/>
  <action id="really_scared.swf" name="Really Scared" enable="Y" totalframe="32" aid="123459"/>
  <action id="teriffied.swf" name="Terrified" enable="Y" totalframe="32" aid="123460"/>
 </category>
</char>

It's very simple! Should be no problem. If you do not put an action in a category it will automatically be added to the "Basic" category.

Adding Facial Expressions

Facial expressions are not necessary for a character, however adding them to the theme is relatively the same process as actions with less attributes. They cannot be categorized. They are added with the unfortunately named <facial> tag.

Mandatory Attributes

  • id Unlike the character id, this does expect a file. The file will be in a folder called 'head' inside your character folder, and the filename in GoAnimate's formatting always has head_ as a prefix.
  • name The facial expressions's name. Accepts any valid string.
  • enable If the facial expression will show up in menus. If you remove expressions, it's likely better to set this to 'N' (false) instead of commenting out the assets.

Optional Attributes

  • aid Intended to be a unique integer to represent the asset/action... however GoAnimate tended to get lazy with these, and they are useless for most cases. Was for GoAnimate4Schools censorship and not much else.

Example

So.. Let's see our final character XML, using all features.

<char id="my_new_char" name="My New Char" thumb="standing.swf" facing="left" default="standing.swf" motion="walk.swf" enable="Y" aid="57239">
 <action id="standing.swf" name="Stand" enable="Y" totalframe="32" aid="123456"/>
 <motion id="walk.swf" name="Walk" enable="Y" totalframe="32" aid="123457"/>
 <category name="Fear">
  <action id="scared.swf" name="Scared" enable="Y" totalframe="32" aid="123458"/>
  <action id="really_scared.swf" name="Really Scared" enable="Y" totalframe="32" aid="123459"/>
  <action id="teriffied.swf" name="Terrified" enable="Y" totalframe="32" aid="123460"/>
 </category>
 <facial id="head_happy.swf" name="Happy" enable="Y" aid="123461"/>
 <facial id="head_talk.swf" name="Talk" enable="Y" aid="123462"/>
 <facial id="head_sad.swf" name="Sad" enable="Y" aid="123463"/>
</char>

Clone this wiki locally