Subtitle Edit

the subtitle editor :)


ASSA Override Tags Reference

Advanced SubStation Alpha (ASS/SSA) override tags allow you to modify the appearance and position of subtitle text inline, overriding the default style settings.

Overview

Override tags are enclosed in curly braces {} and can be placed anywhere in the subtitle text. They affect the text that follows them until another override tag changes the property or the line ends.

Basic syntax:

{\tag}text affected by tag
{\tag1\tag2}text affected by multiple tags
Normal text {\tag}tagged text{\r} back to normal

Important notes:

Quick Reference Table

Category Tag Description
Text Style \b1 / \b0 Bold on/off
  \i1 / \i0 Italic on/off
  \u1 / \u0 Underline on/off
  \s1 / \s0 Strikeout on/off
Border/Shadow \bord<size> Set border width
  \shad<size> Set shadow depth
  \be<strength> Blur edges
Colors \c&H<BGR>& Primary/text color
  \3c&H<BGR>& Border color
  \4c&H<BGR>& Shadow color
Transparency \alpha&H<AA>& Set alpha for all
  \1a&H<AA>& Primary alpha
Font \fn<name> Font name
  \fs<size> Font size
  \fscx<percent> Horizontal scale
  \fscy<percent> Vertical scale
  \fsp<pixels> Letter spacing
Position \pos(<x>,<y>) Absolute position
  \move(<x1>,<y1>,<x2>,<y2>) Move animation
  \an<1-9> Alignment (numpad)
Rotation \frz<degrees> Z-axis rotation (2D)
  \frx<degrees> X-axis rotation (3D)
  \fry<degrees> Y-axis rotation (3D)
Animation \fad(<in>,<out>) Fade in/out
  \t(<tags>) Transform/animate tags
  \clip(...) Clipping mask
Other \r Reset to default style
  \N Hard line break
  \p<level> Drawing mode

Text Styling Tags

Bold

Example:

How {\b1}are{\b0} you?          → How **are** you?
{\b1}This whole line is bold.   → **This whole line is bold.**
{\b700}Bold text{\b0}            → **Bold text**

Italic

Example:

How {\i1}are{\i0} you?          → How *are* you?
{\i1}This whole line is italic. → *This whole line is italic.*

Underline

Example:

How {\u1}are{\u0} you?              → How <u>are</u> you?
{\u1}This whole line is underlined. → <u>This whole line is underlined.</u>

Strikeout

Example:

How {\s1}are{\s0} you?               → How ~~are~~ you?
{\s1}This whole line is strikeout.   → ~~This whole line is strikeout.~~

Border/Outline

Note: Allows decimal values with period as decimal point (e.g., “3.5”).

Example: {\bord8.5}This has a large border

Border example

Example: {\xbord8.5}This has a large border width

Border width example

Example: {\ybord8.5}This has a large border height

Border height example

Shadow

Note: Allows decimal values with period as decimal point (e.g., “3.5”). \xshad and \yshad can be negative for different shadow directions.

Example: {\shad3}This has normal shadow

Shadow normal example

Example: {\shad8.5}This has a far away shadow

Shadow example

Example: {\xshad8.5}This has only xshad

Shadow X example

Example: {\yshad8.5}This has only yshad

Shadow Y example

Blur

Note: If the text has an outline (set with \bord or style), the outline will be blurred. If outline is not present, the text itself will be blurred.

Example: {\be1}Some blurred edges works

Blur edges example

Example: {\be8}Some blurred edges works

Blur edges 8 example

Example with outline: {\bord3\be8}Some blurred edges works

Blur edges with outline example

Color Tags

Colors are specified in hexadecimal BGR format (Blue-Green-Red, not RGB!): &H<BB><GG><RR>& or &H<AA><BB><GG><RR>& (with alpha).

Important: ASS/SSA uses BGR (Blue-Green-Red) order, which is different from the common RGB format!

Color examples:

Primary Color

Example:

This is {\c&H0000FF&}red text
This is {\1c&HFF0000&}blue text

Secondary Color

Note: Used mainly for karaoke effects.

Border Color

Note: Setting the outline color has no effect if text does not have an outline (either set with \bord or via style).

Example: {\bord3\3c&H0000FF&}This has a red outline

Outline color example

Shadow Color

Note: Setting the shadow color has no effect if text does not have a shadow (either set with \shad or via style).

Example: {\shad3\4c&H0000FF&}This has a red shadow

Shadow color example

Alpha/Transparency

Important: Alpha values range from 00 (fully opaque/visible) to FF (fully transparent/invisible). This is opposite to many other programs!

Alpha value examples:

Example: {\alpha&HCC\1a&H00}Transparent box with visible text

Alpha 1 example

Example: {\an7\alpha&HCC}Watermark

Alpha 2 example

Font Tags

Font Name

Example:

{\fnArial}Arial font
{\fnCourier New}Courier New font

Font Size

Example:

{\fs35}This is font size 35
{\fs12.5}Small text at 12.5 points

Font Scale

Example: {\fscx200}Current size double width

Font scale X example

Example: {\fscy200}Current size double height

Font scale Y example

Example: {\fscx200\fscy200}Current size double size

Font scale example

Font Spacing

Example: Normal spacing {\fsp5}5 pixel spacing

Font spacing example

Font Encoding

Common encoding values:

Position Tags

Position

Important notes:

Example: {\an2\pos(180,240)}This is \pos(180,240) with \an2

Position 1 coordinate system

Position 2 example

Example: {\an7\pos(180,240)}This is \pos(180,240) with \an7

Position 3 example

Move

Example: {\move(350,350,1500,350)}Move test

Move 1 example

Example: {\move(350,350,1500,350,500,2600)}Move test

Move 2 example

Alignment

Numpad-style alignment (\an) layout:

7 (Top-left)      8 (Top-center)      9 (Top-right)
4 (Middle-left)   5 (Middle-center)   6 (Middle-right)
1 (Bottom-left)   2 (Bottom-center)   3 (Bottom-right)

Note: The modern \an tag is recommended over the legacy \a tag. Most subtitles use \an2 (bottom-center) as the default.

Margins

Note: These tags override the margins set in the style definition. Margins define the minimum distance from the edge of the video frame.

Rotation Tags

Important notes:

Example: {\fr45}Test angle (45° Z-axis rotation)

Angle 45 example

Example: {\frx45}A NEW HOPE (X-axis rotation, like Star Wars opening crawl)

Angle X example

Example: {\fry45}Rotate Y axis

Angle Y example

Rotation Origin

Note: When there is no \org tag, the rotation origin is implicitly the same as the position anchor point (e.g., center-bottom of text for \an2). This tag is useful for rotating text around a specific point on screen.

Text Shearing Tags

Important notes:

Example: {\fax1}fax1 text

Text shearing X example

Example: {\fay1}fay1 text

Text shearing Y example

Animation Tags

Fade

Important notes for \fad:

Example: {\fad(500,500)}Fade test (500ms fade-in, 500ms fade-out)

Fade 1 example

Complex fade (\fade) explanation:

Example: {\fade(0,255,0,1000,1200,1300,1500)}Fade (Advanced)

Fade 2 example

Transform

Supported tags for transformation: \fs \fsp \c \1c \2c \3c \4c \alpha \1a \2a \3a \4a \fscx \fscy \frx \fry \frz \fr \fax \fay \bord \xbord \ybord \shad \xshad \yshad \clip \iclip \be \blur

Example: {\1c&HFFFFFF&\t(\1c&H0000FF&)}Color (white to red transition)

Transform 1 example

Example: {\1c&HFFFFFF&\t(\1c&H0000FF&\fs90)}Color (color and size change)

Transform 2 example

Clip

Note: Clipping can be used to create split-screen effects or to hide parts of text/graphics.

Example: {\clip(0,0,320,180)}text text text

Clip example

Example: {\iclip(0,0,320,180)}text text text

Inverse clip example

Drawing Tags

Drawing precision levels:

Drawing command syntax:

Example:

{\p1}m 0 0 l 100 0 100 100 0 100{\p0}

This draws a square.

Note: For complex drawings, consider using the ASSA Draw tool in Subtitle Edit.

Other Tags

Reset

Example: {\c&H0000FF&\i1}Italic red text{\r} normal text

Reset example

Line Break

Note: \N (uppercase) forces a line break, while \n (lowercase) is a “smart” break that respects the wrapping style setting.

Karaoke

Note: Duration is in centiseconds (1/100 of a second). For example, \k50 means 0.5 seconds.

Wrapping Style

Wrapping styles:

Note: The wrapping style determines how long lines are broken into multiple lines.

Examples

Basic Styling

{\b1}Bold text{\b0} normal text
{\i1}Italic text{\i0} normal text
{\u1}Underlined text{\u0} normal text

Color Changes

{\c&H0000FF&}Red text{\r} normal text
{\c&HFF0000&}Blue text{\c&H00FF00&}Green text
{\1c&HFFFFFF&\3c&H0000FF&\bord2}White text with red outline

Font and Size

{\fs50}Large{\fs} normal {\fs20}small
{\fnArial}Arial font {\fnCourier New}Courier font
{\fscx200}Wide text{\fscx100} normal

Positioning

{\pos(640,360)}Centered on screen (for 1280×720 video with PlayResX=1280, PlayResY=720)
{\an7\pos(10,10)}Top-left corner
{\an3\pos(1270,710)}Bottom-right corner (for 1280×720)

Animation

{\fad(500,500)}Fade in and out
{\t(\frz360)}Rotating text (360° over subtitle duration)
{\t(0,1000,\fscx200\fscy200)}Growing text in first second
{\move(100,100,1180,620)}Diagonal movement across screen

Complex Combinations

{\b1\i1\c&HFF0000&}Bold italic blue text
{\pos(100,200)\fs40\bord3\3c&HFFFFFF&}Large text at position with thick white border
{\an5\pos(640,360)\fad(300,300)\t(\frz360)}Centered, fading, rotating text
{\clip(0,0,640,720)\move(0,360,1280,360)}Text moving behind a clip mask

Advanced Topics

Tag Priority and Order

Performance Considerations

Renderer Compatibility

Best Practices

  1. Use \r to reset styles rather than manually reversing each tag
  2. Combine multiple tags in one block for efficiency: {\b1\i1\fs30} rather than {\b1}{\i1}{\fs30}
  3. Set PlayResX and PlayResY to match your video resolution for accurate positioning
  4. Use decimal precision sparingly (e.g., \fs24.5) as not all renderers support it
  5. Comment your complex override tags in separate blocks: {Comment: This creates a spinning effect}{\t(\frz360)}
  6. Be mindful of subtitle duration when using fade effects
  7. Test animations at different playback speeds

Common Pitfalls

Notes

See Also