» Uncategorized Posts

has_rune

Returns whether a specific rune is currently equipped on the player. For more info on how to add custom runes to your character, check the Custom Abyss Runes page.

ArgumentTypeDescription
letter:stringThe letter of the rune to check.

Example, called from init.gml:

//This code will set the character's dash speed to be much higher only if rune A is equipped.
if has_rune("A") {
dash_speed = 8;
} else {
dash_speed = 4;
}

Custom Abyss Runes

Custom Abyss runes can be added to your custom character via the config.ini file, as well as the function has_rune( letter )  Reference→.

Each rune, from A to O, can be set in the character’s config.ini file, using the two properties below, replacing the # with the letter of the rune you want to set.

Property Description
rune # type The rune’s type. Can be set to one of the following values:
O – Object modifier, for articles and other things the character creates.
R – Ranged modifier, for projectiles.
H – Hit modifier, for melee attacks.
A – Ability boost, for miscellaneous abilities that aren’t necessarily attacks.
rune # desc The rune’s description, explaining what it actually does.

Example of setting up runes in config.ini:
rune A type="H"
rune A desc="Makes FSTRONG stronger."
rune B type="R"
rune B desc="NSPECIAL's projectile moves way faster."
rune C type="A"
rune C desc="Increased coolness."

Keep in mind that the rune types are fairly arbitrary and don’t change anything gameplay-wise, so if a rune’s effects cover multiple types, just set it to what you think is the most relevant.

As for actually implementing them into your character, making runes affect their abilities, you’ll only need the has_rune( letter )  Reference→ function. This can be used in any script in any way other functions can, returning 1 if the rune is equipped and 0 if it isn’t. Some useful examples of applying this are:
//Conditional runes
if has_rune("A") {
dash_speed = 8;
}
//Adding a rune's value
max_djumps = 1 + has_rune("B") * 2;
//Modifying attack values
set_hitbox_value( AT_FAIR, 1, HG_DAMAGE, 10 + has_rune("C") * 10 );

set_hit_particle_sprite

Sets the character’s custom Hit Particle sprite for the specified slot. Note that this will only successfully run in init.gml.

Can be assigned to a custom sprite using

sprite_get( sprite )  Reference→

or set to one of the following indexes

ArgumentTypeDescription
num:realThe custom particle slot to change
sprite_index:realThe sprite index to assign to that slot

Example, called from init.gml:

set_hit_particle_sprite( 1, sprite_get( "custom_sprite" ) );

spawn_dust_fx

Spawns a visual effect at the specified position. Unlike hit fx, dust effects don’t pull from a list and instead just displays sprite indexes directly.

ArgumentTypeDescription
x:realThe x position to spawn effect at
y:realThe y position to spawn effect at
sprite_index:realThe sprite index to use.
length:realThe amount of time it takes for the animation to play, in frames.

Example, called from update.gml:

// spawns a visual effect at the beginning of 4th Fspecial window:
if (attack == AT_FSPECIAL && window == 4 && window_timer == 1) {
spawn_dust_fx( x, y, sprite_get("custom_sprite"), 26 );
}

get_bg_data

Returns the values of a custom stage’s specific background layer, using one of the following indexes:

Note that this only works on custom stages. Using this on a default stage will always return 0.

ArgumentTypeDescription
layer:realThe layer to check. Layers 1-6 are background, Layer 7 is ground level, and layers 8-9 are the foreground.
data:realThe data index to check. Can be one of the indexes listed above.

Example, called from a stage’s article1_update.gml:
//This will make the article's Y coordinate move at the same rate as the first background layer's Y-autoscroll speed.
y += get_bg_data(1, BG_LAYER_AUTOSCROLL_Y);