These are used in scripts, usually using %actor.<something or other>% This is directly from the wonderful people at The Builder's Academy. 4Dimensions does actually have more than these, but these are a good fallback for almost anything.
Characters
In this context, %char% represents a variable for a character,
%obj% is a variable for an object, and %room% is a variable for a room.
When using field:
The variable returns:
%char.alias%
The list of aliases of the mob or the character name for players.
%char.align(<number>)%
%char.align%
The numeric alignment of the character.
If a subfield is provided, the alignment is set to this value.
-1000 <= subfield <= 1000.
%char.affect(<spellname>)%
True if the character is affected by the spell <spellname>.
Example: %self.affect(bless)%
%char.canbeseen%
True if the character can be seen by the mob.
Always returns true for non-mob triggers.
%char.cha%
%char.cha(<value>)%
The character's charisma.
If a subfield is provided, the value is added to the current stat.
%char.class%
The character's class, as a string.
%char.con%
%char.con(<value>)%
The character's constitution.
If a subfield is provided, the value is added to the current stat.
%char.dex%
%char.dex(<value>)%
The character's dexterity.
If a subfield is provided, the value is added to the current stat.
%char.exp%
%char.exp(<amount>)%
The character's experience points.
If a subfield is provided, the value is added to the current experience.
Currently the limit is set to 1000 exp. Do not abuse this feature!
%char.eq(<position>)%
%char.eq(*)%
An object variable for the object equipped inposition, if any.
The specified position may be either a position number (0-17) or the name of the location:
light, rfinger, lfinger, neck1, neck2, body, head, legs, feet, hands, arms, shield, about, waist, rwrist, lwrist, wield, hold
When called with * as subfield, it will return whether or not the character is wearing anything at all.
%char.fighting%
A variable for the target this character is currently fighting, or an empty return.
%char.follower%
A variable for the first character following this character, or an empty return.
%char.gold%
%char.gold(<amount>)%
The amount of gold on the character.
If a subfield is used, the amount is added to the current gold amount.
Do not abuse this feature!
%char.has_item(<object variable>)%
%char.has_item(<object vnum>)%
%char.has_item(<object name>)%
True if character has an object with the correct characteristics.
%char.hisher%
"his", "her" or "its", depending on the gender of the character.
%char.heshe%
"he", "she" or "it", depending on the gender of the character.
%char.himher%
"him", "her" or "it", depending on the gender of the character.
%char.id%
The unique id of the character.
This is mostly an internal value, but can be useful when you want a unique identifier.
%char.int%
%char.int(<value>)%
The character's intelligence.
If a subfield is provided, it will be added to the current stat.
%char.inventory%
%char.inventory(<object vnum>)%
An object variable pointing to the first object in the inventory, or if a subfield is given, the first item with the correct vnum.
If such an item cannot be found, the reutrn is empty.
%char.is_killer%
%char.is_killer( on | off )%
The player killer status of the character.
The subfield sets or removes the flag.
%char.is_thief%
%char.is_thief( on | off )%
The player thief status of the character.
The subfield sets or removes the flag.
%char.is_pc%
True if the character is a player.
This is the new and official way to check this.
%char.level%
The character's current level.
%char.hitp%
%char.hitp(<value>)%
The current hit points of the character.
If a value is given, it will be added to the current stat.
%char.mana%
%char.mana(<value>)%
The current mana points of the character.
If a value is given, it will be added to the current stat.
%char.move%
%char.move(<value>)%
The movement points of the character.
If a value is given, it will be added to the current stat.
%char.master%
A variable for the master of the character, or an empty return.
The master is the person the character is currently following.
%char.maxhitp%
%char.maxhitp(<value>)%
The maximum hit points of the character.
If a value is given, it will be added to the current stat.
%char.maxmana%
%char.maxmana(<value>)%
The maximum mana points of the character.
If a value is given, it will be added to the current stat.
%char.maxmove%
%char.maxmove(<value>)%
The maximum movement points of the character.
If a value is given, it will be added to the current stat.
%char.name%
The character's name (the short description for mobs).
%char.next_in_room%
A variable for the next person in the room.
An empty return if this character is the last in the room.
%char.pos%
%char.pos(<position>)%
The current position of the character.
If a subfield is provided, the characters position is changed.
Allows Sleeping, Resting, Sitting, Fighting, Standing
Thx to Christian Ejlertsen for this contribution.
%char.prac%
%char.prac(<value>)%
The number of practice sessions available to the character.
If a subfield is provided, it is added to the current amount.
%char.race%
The character's race, as a string.
%char.room%
A room variable for the room the character is in.
Older versions returned a room vnum here.
%char.sex%
The character's sex, as a string (MALE, FEMALE, or NEUTRAL).
%char.skill(<skillname>)%
The percentage of learnedness in the named skill.
%char.skillset("<skill>" <value>)%
Set the character's learnedness of skill <skill> to <value>.
This variable has no return value.
Example: %char.skillset("magic missile" 65)%
%char.str%
%char.str(<value>)%
The character's strength.
If a subfield is provided, the value is added to the current stat.
%char.stradd%
%char.stradd(<value>)%
The character's strength addition (if str is 18).
If a subfield is provided, the value is added to the current stat.
%char.saving_para%
%char.saving_para(<value>)%
The characters saving throw vs. paralysis.
If a subfield is provided, the value is added to the current stat.
%char.saving_rod%
%char.saving_rod(<value>)%
The characters saving throw vs. rods and staves.
If a subfield is provided, the value is added to the current stat.
%char.saving_petri%
%char.saving_petri(<value>)%
The characters saving throw vs. petrification.
If a subfield is provided, the value is added to the current stat.
%char.saving_breath%
%char.saving_breath(<value>)%
The characters saving throw vs. breath weapons.
If a subfield is provided, the value is added to the current stat.
%char.saving_spell%
%char.saving_spell(<value>)%
The characters saving throw vs. spells.
If a subfield is provided, the value is added to the current stat.
%char.title%
%char.title(<value>)%
The character's title. This only makes sense for PCs.
If a subfield is provided, the title is set to this value.
%char.vnum%
%char.vnum(<value>)%
The character's virtual number. -1 for PCs.
The check for %actor.vnum% != -1 is deprecated. Use %actor.is_pc% instead.
If a subfield is given, it is the equivalent of
(%char.vnum% == <value>)
%char.varexists(<var>)%
True if:
1. %char% has a script attached, and
2. the global variable <var> exists.
Otherwise, false is returned.
This is highly useful when dealing with remote vars on players.
%char.weight%
The character's weight.
%char.wis%
%char.wis(<value>)%
The character's wisdom.
If a subfield is provided, it will be added to the current stat.
%char.<global>%
If the specified field is not a recognized one, the character's script global list is searched for a matching global name. If found, its value will be returned. This can is also used to get values of vars set on players;
if %actor.varexists(testvar)%
set testvar %actor.testvar%
end
* and then later in the script write it back:
remote testvar %actor.id%