As some of you probably noticed the Public Documentation is not complete and at times is a bit confusing, the goal of this thread is to create a list of things that needs to be updated as well as help clarify/fix errors while waiting for the official documentation to be updated.
If you find anything that’s not on this list feel free to comment it so I can add it!
I’ll also keep a temporary documentation here while waiting for the official documentation to be updated.
#Public Documentation
List of errors/pages that need clarification
- Condition Effects list is missing several status effects and is wrong/does not explain how Pet Stasis works.
- Transition List is missing some transitions.
- PlaySound behavior page uses PlaceMap params, it also doesn’t explain how to define sounds.
- Embed page does not give any information about Params.
- Tag page does not give any information about Global Tags.
- ConditionEffectAura behavior page missing ignoreInvisible param.
- CopyDamageRecord behavior page does not explain
<KeepDamageRecord/>
. - GrenadeToss behavior page is missing color param.
- ObjectToss behavior page is missing textureSourceId and color params.
- TrapTrigger behavior page has incorrect param name for conditionEffect and conditionDuration, should be condEffect and condDuration respectively, cooldownJitter is also not formatted correctly.
- Shoot behavior page is missing information on defaultAngle with forward.
- Missing enemy projectile properties
<FaceDir/>
and<NoRotation/>
, need explanation of<Magnitude>
for<Parametric>
. - Projectile page need more information on
<Rotation>
and<AngleCorrection>
. - Missing SetTag, ClearTag, SetGlobalTag, ClearGlobalTag, RestoresBreath, RemoveOnEmpty, RemainVisible, OryxTaunt, Taunt and VictoryAtDeath behaviors.
Suggestions
- Add a list of all object ids as they might be required for some behaviors.
- Add a list of all possible XML Tags as well as an explanation for each of them.
- Add a list of all possible terrains as well as their altitude number.
- Add a tips and trick section.
- Add gifs to illustrate behaviors.
#Temporary Documentation
This only contains information that is either wrong on the Public Documentation or not available there!
Condition Effects
Players only:
- Darkness: Visibility decreases to a small area around the player and prevents enemies from displaying red dots on the minimap. All entities outside of the area are completely invisible.
- Unstable: A character shoots in random directions when attacking. Also applies to abilities that require aiming (spells, poisons, etc).
- Silenced: Prevents player from using their ability. Unlike Quiet, Silenced does not deplete the player’s MP.
- Pet Stasis: See pet only effects.
Players and enemies:
Note: While those effects technically work on both players and enemies, the result might differ slightly between the two.
- Nothing: Does nothing. (Mostly used as a default value.)
- Petrify: Can not move or attack, but can still take damage.
- Curse: Take 20% more damage.
- Armor Broken Immune: Immunity to Armor Break.
- Stun Immune: Immunity to Stun.
- Slowed Immune: Immunity to Slowed.
- Dazed Immune: Immunity to Dazed.
- Curse Immune: Immunity to Curse.
- Petrify Immune: Immunity to Petrify.
Pets only:
Effects on Pets currently only work on Projectile by adding target="1"
to the <ConditionEffect>
tag.
Stasis: Player’s pet is unable to cast for the duration of the effect.
List of Transitions
- playerWithin: A player is within the specified number of squares. This includes invisible players. (distance|number of players)
- noPlayerWithin: There is no player within the specified number of squares. This does not include invisible players.
- exist: There are objects of the specified type in this dungeon. (objectId|amount)
- hasGlobalTag: Transition if this global tag is set.
- noGlobalTag: Transition if this global tag is not set.
- hasConditionEffect: Transition if the creature is inflicted by that condition effect.
Embed
Params
One of the great things about Embeds are params!
Params allow you to replace a value in your Embed with another without having to rewrite it!
This is quite useful for somewhat complex patterns where there is only minor differences between 2 use.
Example:
First, let’s define our Embed
<DefineEmbed name="Shotgun">
<Behavior numShots="{numShots}" projectileId="0" angle="{angle}" cooldown="1">Shoot</Behavior>
</DefineEmbed>
Next, let’s make a shotgun of 7 shots with an angle of 25, and another of 12 shots with an angle of 15.
<Embed name="Shotgun"><Param name="numShots">7</Param><Param name="angle">25</Param></Embed>
<Embed name="Shotgun"><Param name="numShots">12</Param><Param name="angle">15</Param></Embed>
Ta-da! Our monster now is absolutely unfair, but you now know how to use embeds to their full potential! It might not look like much, but on more complex behaviors it’s incredibly useful and allows you to cut down the amount of line (and work!) by quite a lot!
Tip: Keeping your Embed + Params on one line is useful if you are working with a pattern since every number you need to change will be in a clear column, however in some other situations, indenting it might be a better idea, it’s all up to you.
Tags
Global Tags
Global Tags are tags that are stored on the map instead of on a monster, this means all monster in the same map can detect it.
It uses its own set of behavior/transition so make sure you use the right one!
Behaviors
PlaySound
To define a sound, simply add a <Sound id="x">sound/path</Sound>
tag to your monster.
- soundId (int, default 0): specifies the sound
ConditionEffectAura
- ignoreInvisible (boolean, default false): whether to ignore invisible objects
CopyDamageRecord
Need a <KeepDamageRecord/>
tag on Monster you want to copy the damage record from.
GrenadeToss
- color (uint, default 0xFF0000): color of throw effect particles
ObjectToss
- textureSourceId (string, default empty): object id of which the texture is used for the throw effect (will overwrite particles)
- color (uint, default 0xFFC600): color of throw effect particles
TrapTrigger
- condEffect (string, default Nothing): name of condition effect
- condDuration (float, default 5.0): duration of effect
Shoot
-
defaultAngle:
- forward (float, default 0): added to the movement direction (30 aims 30 degrees right of the object’s direction, -20 aims 20 degrees left of the object’s direction)
SetTag
Effect:
Set a tag
- tagName (string, default empty): name of tag to set
ClearTag
Effect:
Clear a tag
- tagName (string, default empty): name of tag to clear
SetGlobalTag
Effect:
Set a global tag
- tagName (string, default empty): name of global tag to set
- sendNotification (boolean, default false): sends to all players (used for Davy keys)
- notificationCooldown (float, default 3.0): to reduce traffic
- notificationType (int, default 0): notification type
ClearGlobalTag
Effect:
Clear a global tag
- tagName (string, default empty): name of global tag to clear
RestoresBreath
Effect:
Restores breath (Used for Ocean Trench Vents)
- radius (float, default 1.0): restore range
- speed (float, default 50.0): restore speed
RemoveOnEmpty
Effect:
Removes once empty (Used for Containers)
RemainVisible
Effect:
Will always be rendered by the client, can be used to have monsters still shoot for players even when far away
OryxTaunt
Effect:
Used for encounters (requires taunts in separate file)
Taunt:
Effect:
Send messages to annoy players (requires taunts in separate file)
- listId (string, default self): name of monster to look up taunts for
- broadcast (boolean, default false): whether to yell or just chat
VictoryAtDeath:
Effect:
Special Behavior for Oryx only, drops Locked Wine Cellar Portal when it’s Oryx the Mad God 1, otherwise Portal to Nexus