if you know algrebra (algebraic substitution):
programming Attributes (1 of 3 types of VARIABLES) hold/store data, just as VARIABLES do in math/algrebra:
math:
( equals operator/operation: '=' )
x = 10
y = x + 5
y = 15
programming:
( assignment operator/operation: '=' , it's not the same as math's equals operator/operation )
Object_name.Attribute_name = Value_or_Expression
player.strength = 100
player.strength = 100
player.weapon.damage = 75
player.damage = player.weapon.damage + player.weapon.damage * player.strength / 100
game.greeting = "Hi, my name is HK, what is your name?"
msg ("Strength: " + player.strength)
// outputs: Strength: 100
msg (player.strength + " STR")
// outputs: 100 STR
msg (player.strength)
// outputs: 100
msg (player.damage)
// 75 + 75 * 100 / 100 = 75 + 75 * 1 = 75 + 75 = 150
// outputs: 150
msg ("Damage: " + player.damage)
// outputs: Damage: 150
msg (player.damage + " DMG")
// outputs: Damage: 150 DMG
msg (game.greeting)
// outputs: Hi, my name is HK, what is your name?
--------
so, for example:
(concatenation operator/operation: '+', literally putting together, is unique to programming: "5" + "5" = "55", "Mama " + "5" + " Mia" = "Mama 5 Mia", "Mama" + "5" + "Mia" = "Mama5Mia". Anything surrounded by double quotes is a String Data Type, string: a sequence of characters/symbols, aka text)
(the '+' operator is also addition operator/operation too for; integer:non-decimal number: -1, 0, 1, etc / double:decimal number: 0.2, 0.04876, 0.0, -0.9, etc; data types)
<game name="whatever">
<attr name="start" type="script">
set_name_function
display_name_function
alias_variable = get_name_function
msg ("Hi, " + alias_variable + ", nice to meet you.")
//
// outputs:
//
// Your name is HK.
// Hi, HK, nice to meet you.
//
</attr>
</game>
<function name="set_name_function">
msg ("What is your name?")
// say I type in: HK
get input {
// quest automatically (hidden from you) sets the built-in variable: result = your_input
player.alias = ToString (result)
// player.alias = result = "HK"
// player.alias = "HK"
}
</function>
<function name="display_name_function">
msg ("Your name is " + player.alias + ".")
</function>
<function name="get_name_function" type="string">
return (player.alias)
</function>