Additions to existing entities: Difference between revisions

From SigMod
Jump to navigation Jump to search
No edit summary
(added interrupt action queue)
(38 intermediate revisions by 10 users not shown)
Line 1: Line 1:
__NOEDITSECTION__
== Targeting ==
== Targeting ==


* You can target parent of specified entity by adding @p@. @p@!activator would target parent of the activator entity
* You can target parent of specified entity by adding @p@. @p@!activator would target parent of the activator entity
* You can target children of specified entity by adding @c@ prefix. @c@!activator would target children of the activator entity
* You can target children of specified entity by adding @c@ prefix. @c@!activator would target children of the activator entity
*Target all entities in a box by adding @bbxmin ymin zmin xmax ymax zmax@ prefix. @bb-100 -100 -100 100 100 100@prop_dynamic would target prop_dynamic entities inside -100 -100 -100 100 100 100 box
*Target all entities in a box by adding @bbxmin ymin zmin xmax ymax zmax@ prefix. @bb-100 -100 -100 100 100 100@prop_dynamic would target prop_dynamic entities inside -100 -100 -100 100 100 100 world coordinates box
*Target entities matching the filter by adding @f@ prefix. @f@filtername@entityname would target all entityname that pass the filtername filter
*Target entity from datamap/sendprop by adding @e@ prefix. @e@m_hOwnerEntity@!activator would target the owner entity of !activator. You can also target in array with $. @e@m_hMyWeapons$1@!activator would target secondary weapon of !activator.


== point_viewcontrol ==
==Various==


=== Inputs ===
*You can execute an input immediately rather than with at least 1 tick delay by setting input delay to -1. This allows you to access !activator of $OnKilled entity
 
== [[Expressions]] ==
[[Expressions]] can be used to calculate input parameters without the need of extra logic entities
 
==point_viewcontrol==
 
=== Keyvalues ===
 
* $allowdamage <1/0>
** Should the player/s operating the camera receive damage. 0 by default
 
===Inputs ===


* $EnableAll
*$EnableAll
** Enable the camera for all players on the map. '''Start At Player, Interruptable by Player''' spawnflags will not work properly
**Enable the camera for all players on the map. Spawnflag [512] may not work properly. (''Start At Player, Interruptable by Player'')
* $DisableAll
*$DisableAll
** Disable the camera for all players on the map
**Disable the camera for all players on the map
* $SetTarget <entity>
*$SetTarget <entity>  
** Set current target to entity
**Set current target to entity


== Sentry Gun (obj_sentrygun) ==
== Sentry Gun (obj_sentrygun)==
===Spawnflags===
*'''[64]''' - Spawn as mini-sentry


* You can spawn mini sentry by adding spawnflags 64 keyvalue
== Teleporter (obj_teleporter) ==


== Weapon Mimic (tf_point_weapon_mimic) ==
===Keyvalues===
*$TeleportWhere <string>
**Teleport bots from specified botspawn name. It is possible to add multiple TeleportWhere keys. "all" name will teleport all bots, "small" will teleport all small bots, "giants" will teleport giants and their squad


* Fired projectiles can have their team assigned with teamnum keyvalue (2 for RED and 3 for BLU). Previously all fired projectiles always belonged to the BLU team
==Weapon Mimic (tf_point_weapon_mimic)==
* If the player owner is set with $SetOwner or $InheritOwner, fired projectiles are assigned to the owner
*Fired projectiles can have their team assigned with teamnum keyvalue (2 for RED and 3 for BLU). Previously all fired projectiles always belonged to the BLU team
*If the player owner is set with $SetOwner or $InheritOwner, fired projectiles are assigned to the owner
* Fired stickybombs are automatically removed if the mimic is removed
* Fired stickybombs are automatically removed if the mimic is removed
* If the ParticleEffect keyvalue is set to "Callback", "OnUser4" output is activated whenever a projectile is fired, with the projectile being the !activator
*Added projectile type 4 - Bullet.  SpeedMax keyvalue determines max distance (infinite if not specified). SplashRadius determines knockback force
* Added projectile type 4 - Bullet.  SpeedMax keyvalue determines max distance (infinite if not specified). SplashRadius determines knockback force
*It is possible to mimic a specific weapon. Setting owner might be required for the weapon to function properly. Setting a mimic weapon disables all other mimic properties except crits
 
=== Keyvalues===
 
*$preventshootparent <1/0>
**If set, bullets fired from the mimic cannot hit the parent entity
*$dmgtype <int>
**Set custom damage type
*$killicon <string>
**Set custom kill icon
*$weaponname <string>
**Set mimic weapon name, custom weapon names are allowed. example: The Righteous Bison
*$firetime <float>
**Delay between shots for $StartFiring input
*$weaponnosound <1/0>
**If set, disables weapon fire sound


== Tank (tank_boss) ==
=== Inputs ===


* When tank starts deploying, and there is at least one PointTemplate assigned to it, "OnUser4" output is activated
* $AddWeaponAttribute <string>
** Adds attribute to the mimic weapon, example: projectile speed increased|2
*$RemoveWeaponAttribute <string>
** Remove attribute from the mimic weapon, example: projectile speed increased
*$StartFiring <int>
**Starts firing automatically specified number of projectiles, 1 minimum, with $firetime delay between shots
*$StopFiring
**Stops firing automatically


=== Outputs ===
===Outputs===
 
*$OnFire
**Called when the projectile is being fired, with the projectile as <code>!activator</code>
 
===Spawnflags===
* '''[4]''' - Fire "OnUser4" output when projectile is fired, with the projectile as <code>!activator</code>.
 
== Tank (tank_boss)==
 
*When tank starts deploying, and there is at least one PointTemplate assigned to it, "OnUser4" output is activated
 
=== Outputs===


* OnStartDeploy
*$OnStartDeploy
** Fired when the tank is deploying the bomb
**Fired when the tank is deploying the bomb


== Medic shield (entity_medigun_shield) ==
==Medic shield (entity_medigun_shield)==
If you set spawnflags keyvalue to 1, the shield will stay if spawned manually. Setting spawnflags keyvalue to 3 creates a lvl 2 shield
===Spawnflags===
*'''[1]''' - Don't expire and don't block LOS
*'''[2]''' - Use the LV2 Shield model


== logic_case ==
==logic_case==


=== Text formatter ===
===Text formatter===
With the use of the added inputs, logic_case can be transformed into a text formatter, replacing % in the format string into format parameters.  
With the use of the added inputs, logic_case can be transformed into a text formatter, replacing % in the format string into format parameters.  


Example point template usage:<syntaxhighlight>
Example point template usage:<syntaxhighlight lang="php">
Formatter
Formatter
{
{
Line 66: Line 122:
</syntaxhighlight>This would display "You have 6 out of 12 coins left. 50 % done" to all players
</syntaxhighlight>This would display "You have 6 out of 12 coins left. 50 % done" to all players


=== Menu ===
=== Menu===
You can use $DisplayMenu input to display a menu for the player, up to 15 entries<syntaxhighlight>
You can use $DisplayMenu input to display a menu for the player, up to 15 entries<syntaxhighlight lang="php">
Menu
Menu
{
{
Line 90: Line 146:
</syntaxhighlight>
</syntaxhighlight>


=== Inputs ===
===Inputs===


* $FormatString <string>
*$FormatString <string>  
** Sets formatting string, then fires OnDefault output, with formatted string as parameter
**Sets formatting string, then fires OnDefault output, with formatted string as parameter
* $FormatStringNoFire <string>
*$FormatStringNoFire <string>
** Sets formatting string
**Sets formatting string
* $FormatInput1 <string>
*$FormatInput1 <string>
** Sets formatting input argument 1, then fires OnDefault output, with formatted string as parameter
**Sets formatting input argument 1, then fires OnDefault output, with formatted string as parameter
* $FormatInput2-15 <string>
*$FormatInput2-15 <string>
** Sets formatting input argument 2-15, then fires OnDefault output, with formatted string as parameter
** Sets formatting input argument 2-15, then fires OnDefault output, with formatted string as parameter
* $FormatInputNoFire1 <string>
*$FormatInputNoFire1 <string>
** Sets formatting input argument 1
**Sets formatting input argument 1
* $Format  
*$Format  
** Fires OnDefault output, with formatted string as parameter
**Fires OnDefault output, with formatted string as parameter
* $TestSigsegv
*$TestSigsegv
** Fires OnUser1 output. Can be used to test if sigsegv extension is active
**Fires OnUser1 output. Can be used to test if sigsegv extension is active
* $ToInt <any>
*$ToInt <any>
** Fires OnDefault output, converts parameter value from string/float to integer
**Fires OnDefault output, converts parameter value from string/float to integer
* $ToFloat <any>
*$ToFloat <any>
** Fires OnDefault output, converts value from string/int to real number
**Fires OnDefault output, converts value from string/int to real number
* $CallerToActivator <any>
*$CallerToActivator <any>
** Fires OnDefault output, but the !caller entity is converted to !activator
**Fires OnDefault output, but the !caller entity is converted to !activator
* $GetKeyValueFromActivator <string>
* $GetKeyValueFromActivator <string>
** Fires OnDefault output, the key value from the !activator entity is the parameter
**Fires OnDefault output, the key value from the !activator entity is the parameter
* $GetConVar <string>
*$GetConVar <string>
** Fires OnDefault output, the convar (console variable) number value is the parameter
**Fires OnDefault output, the convar (console variable) number value is the parameter
* $GetConVarString <string>
*$GetConVarString <string>
** Fires OnDefault output, the convar (console variable) string value is the parameter
**Fires OnDefault output, the convar (console variable) string value is the parameter
*$DisplayMenu <entity>
*$DisplayMenu <entity>
**Display menu at player
**Display menu at player
*$HideMenu <entity>
*$HideMenu <entity>
**Hide menu at player
**Hide menu at player
*$BitTest <number>
**Fires all cases where after the bitwise AND operation between the parameter and the case value, the result is not 0


== tf_gamerules ==
* $BitTestAll <number>
** Fires all cases where after the bitwise AND operation between the parameter and the case value, the result is same as the parameter


=== Inputs ===
==tf_gamerules ==
 
===Inputs===


* $StopVO <string>
*$StopVO <string>
** Stops sound that was started with PlayVO input
** Stops sound that was started with PlayVO input


* $StopVORed <string>
*$StopVORed <string>
** Stops sound that was started with PlayVORed input
**Stops sound that was started with PlayVORed input


* $StopVOBlue <string>
*$StopVOBlue <string>
** Stops sound that was started with PlayVOBlue input
**Stops sound that was started with PlayVOBlue input
*$SetBossHealthPercentage <float>
*$SetBossHealthPercentage <float>
**Set Halloween boss bar percentage to a value between 0 and 1. 0 hides the health bar, any other value makes the bar appear
**Set Halloween boss bar percentage to a value between 0 and 1. 0 hides the health bar, any other value makes the bar appear
Line 141: Line 202:
*$AddCurrencyGlobal <int>
*$AddCurrencyGlobal <int>
**Add currency to all players
**Add currency to all players
*$ChangeLevel <string>
**Changes level. To set a specific mission, type the mission name after | . Example: mvm_bigrock|advanced1


== player ==
== player ==


=== Inputs ===
===Inputs===


* $AllowClassAnimations <0|1>
* $AllowClassAnimations <0|1>  
** Allow class animations instead of using refpose when UseCustomModel input is fired to change player model
**Allow class animations instead of using refpose when UseCustomModel input is fired to change player model
* $SwitchClass <string>
*$SwitchClass <string>
** Switch player class. The parameter can be either a class name (heavyweapons for example), or class index
**Switch player class. The parameter can be either a class name (heavyweapons for example), or class index
*$SwitchClassInPlace <string>
*$SwitchClassInPlace <string>
**Switch player class in current position. The parameter can be either a class name (heavyweapons for example), or class index
**Switch player class in current position. The parameter can be either a class name (heavyweapons for example), or class index
* $ForceRespawn
*$ForceRespawn
** The player instantly respawns
** The player instantly respawns
* $ForceRespawnDead
*$ForceRespawnDead
** The player instantly respawns, but only if they are dead
**The player instantly respawns, but only if they are dead
* $DisplayTextCenter <string>
*$DisplayTextCenter <string>  
** Display text in the middle of the screen
** Display text in the middle of the screen
* $DisplayTextChat <string>
*$DisplayTextChat <string>
** Display text to the player's chat
** Display text to the player's chat
* $Suicide
*$DisplayTextHint <string>
** Kill the player
** Display yellow text in the bottom part of the screen and play a sound cue
* $ChangeAttributes <string>
*$Suicide
**Kill the player
*$ChangeAttributes <string>
** If the player is a bot, this can be used to change active EventChangeAttributes
** If the player is a bot, this can be used to change active EventChangeAttributes
* $RollCommonSpell
*$RollCommonSpell
** Roll common spell
**Roll common spell
* $SetSpell <string>
*$SetSpell <string>
** Set player current spell to one of the following:
**Set player current spell to one of the following:
*** Fireball
***Fireball
*** Ball O' Bats
***Ball O' Bats
*** Healing Aura
***Healing Aura
*** Pumpkin MIRV
***Pumpkin MIRV
*** Superjump
*** Superjump
*** Invisibility
***Invisibility
*** Teleport
***Teleport
*** Tesla Bolt
***Tesla Bolt
*** Minify
***Minify
*** Meteor Shower
***Meteor Shower
*** Summon Monoculus
***Summon Monoculus
*** Summon Skeletons
***Summon Skeletons
* $AddSpell <string>
*$AddSpell <string>
** Adds spell to the number of spells. If the spell is different than the current one, it replaces the spell. The parameter is the same as in $SetSpell
**Adds spell to the number of spells. If the spell is different than the current one, it replaces the spell. The parameter is the same as in $SetSpell
* $AddCond <int> [int]
*$AddCond <int> [int]
** Add condition to player. If a second argument is present, the condition will only run for a specified duration  
** Add condition to player. If a second argument is present, the condition will only run for a specified duration
* $RemoveCond <int>
*$RemoveCond <int>
** Remove condition from player
**Remove condition from player
* $AddPlayerAttribute <string>
*$AddPlayerAttribute <string>
** Add attribute to player, the parameter should be passed in this way: attribute|value. Example: "move speed bonus|1.2"
**Add attribute to player, the parameter should be passed in this way: attribute|value. Example: "move speed bonus|1.2"
* $RemovePlayerAttribute <string>
*$RemovePlayerAttribute <string>
** Remove attribute from player. Example: "move speed bonus"
**Remove attribute from player. Example: "move speed bonus"
* $AddItemAttribute <string>
*$GetPlayerAttribute <string>
** Add attribute to item in slot, the parameter should be passed in this way: attribute|value|slot. Example "damage bonus|2|0" adds 100% damage bonus to primary weapon
**Sends attribute from player as the parameter.
* $RemoveItemAttribute <string>
**parameter format: attribute|entity|input|default value
** Remove attribute from item in slot, the parameter should be passed in this way: attribute|slot. Example "damage bonus|0" removes damage bonus from primary weapon
**example: fire rate bonus|!activator|$DisplayTextChat|0
* $PlaySoundToSelf <string>
*$AddItemAttribute <string>
**Add attribute to item in slot, the parameter should be passed in this way: attribute|value|slot or item name. Example "damage bonus|2|0" adds 100% damage bonus to primary weapon, "damage penalty|0.5" adds 50% damage penalty to active weapon
*$RemoveItemAttribute <string>
** Remove attribute from item in slot, the parameter should be passed in this way: attribute|slot or item name. Example "damage bonus" removes damage bonus from primary weapon, "damage penalty" removes damage penalty from active weapon
*$GetItemAttribute <string>
**Sends item attribute value as the parameter.
** parameter format: slot or item name|attribute|entity|input|default value
**example to grab primary slot item's fire rate bonus value: 0|fire rate bonus|!activator|$DisplayTextChat|0
**You can also type -1 for active weapon or the item name.
*$PlaySoundToSelf <string>
** Play sound to the player
** Play sound to the player
*$IgnitePlayerDuration <float>
*$IgnitePlayerDuration <float>  
**Ignite the player for a specified duration in seconds
**Ignite the player for a specified duration in seconds
*$WeaponSwitchSlot <int>
*$WeaponSwitchSlot <int>
**Forcibly switches to weapon in slot
**Forcibly switches to weapon in slot
*$WeaponStripSlot <int>
* $WeaponStripSlot <int>
**Removes weapon from a slot (-1 = current slot)
**Removes weapon from a slot (-1 = current slot)
*$GiveItem <string>
*$GiveItem <string>
Line 207: Line 281:
**Add currency to the player
**Add currency to the player
*$RemoveCurrency <int>
*$RemoveCurrency <int>
**Remove currency from the player
** Remove currency from the player
*$SetCurrency <int>
*$SetCurrency <int>
**Set currency to specified value
** Set currency to specified value
*$CurrencyOutputX <string>
* $CurrencyOutputX <string>
**Fires input if player currency is above specified value (the X in input name), the attribute should be passed in this way: target,input,parameter.
**Fires input if player currency is above specified value (the X in input name), the attribute should be passed in this way: target,input,parameter.
*$CurrencyInvertOutputX<string>
*$CurrencyInvertOutputX<string>
Line 216: Line 290:
*$DropItem <int>
*$DropItem <int>
**Drop item in slot (-1 = current slot)
**Drop item in slot (-1 = current slot)
*$RemoveItem <string>
* $RemoveItem <string>
**Remove item with a name
** Remove item with a name
*$Regenerate
*$Regenerate
**Regenerate the player, as if touching resupply cabinet
**Regenerate the player, as if touching resupply cabinet
*$RefillAmmo
*$RefillAmmo
**Restore player ammo
** Restore player ammo
*$PlaySequence <string>
**Play animation sequence with specified name
*$ResetInventory
**Reset loadout items, as if touching the resupply cabinet
*$BotCommand <string>
**Forces the bot to perform an action. Examples:
***interrupt_action -posent targetmove -lookposent targetlook -duration 10 -waituntildone -ondoneattributes AfterDone -name myname
****Move to entity targetmove, while looking at entity targetlook. Wait 10 seconds after moving to the target entity, then ChangeAttributes to AfterDone, and fire $onactiondone output with myname as parameter
***interrupt_action -posent targetkill -lookposent targetkill -killlook -waituntildone -alwayslook -distance 500
****Move to entity targetkill and try to destroy it. Always look at the target even if not in sight. Only move up to 500 units away from the target
***interrupt_action -pos 0 0 0 -lookpos 100 100 100 -duration 10
****Move to position 0 0 0 while looking at position 100 100 100 for the next 10 seconds
***interrupt_action_queue -pos 0 0 0 -lookpos 100 100 100 -duration 10
****Same as above, but add the action to the queue so it is only done when the previous interrupt action finishes
***clear_interrupt_action_queue
****Clears interrupt action queue added by above command
***remove_interrupt_action_queue_name name
****Delete from interrupt action queue if name matches
***stop interrupt action
****Stops current interrupt action
***despawn
****Forces to bot to despawn
***taunt
****Forces the bot to taunt
***cloak
****Forces the spy bot to cloak
***uncloak
****Forces the spy bot to uncloak
***disguise
****Forces the spy bot to disguise as something
***build sentry at nearest sentry hint
*$Taunt
**Forces the player to taunt
*$TauntFromItem <string>
**Forces the player to taunt with specified item name. Also allows to insert attributes separated by |. Example: Conga Taunt|taunt move speed|1000
*$TauntIndexConcept <string>
**Forces the player to taunt with specified index and concept. Example: 0|0
*$TauntFromItem2 <string>
**Forces the player to taunt with specified item index. Also allows to modify attack time for "taunt attack". Example: 1179|-0.5
*$AwardExtraItem <string>
**Awards extra loadout item with specified name to the player
*$AwardAndGiveExtraItem <string>
**Awards extra loadout item with specified name to the player, and equips it
*$StripExtraItem <string>
**Strips extra loadout item with specified name from the player
*$ResetExtraItems
**Strips all extra loadout items from the player
 
=== Outputs ===
 
* $OnActionDone <string>
** Called when interrupt action finishes, the string parameter is a name of the interrupt action


== trigger_hurt ==
==trigger_hurt==
If entity owner is set with $SetOwner or $InheritOwner, the owner will become the damage inflictor
If entity owner is set with $SetOwner or $InheritOwner, the owner will become the damage inflictor


== Filter entities ==
==Filter entities==
The server will no longer crash if the activator entity got removed the time TestActivator is called
The server will no longer crash if the activator entity got removed the time TestActivator is called


=== Inputs ===
===Inputs===


* $TestEntity <entity>
*$TestEntity <entity>  
** Test any entity, rather than only the !activator
**Test any entity, rather than only the !activator


== Trigger entities ==
==Trigger entities==
The server will no longer crash if the caller entity got removed the time StartTouch or EndTouch is called
The server will no longer crash if the caller entity got removed the time StartTouch or EndTouch is called


=== Inputs ===
===Inputs===


* $StartTouchEntity <entity>
*$StartTouchEntity <entity>  
** StartTouch any entity, rather than only the !caller
**StartTouch any entity, rather than only the !caller
* $EndTouchEntity <entity>
*$EndTouchEntity <entity>  
** EndTouch any entity, rather than only the !caller
**EndTouch any entity, rather than only the !caller


== game_ui ==
==game_ui==
The server will no longer crash if the player using the entity disconnected from the server
The server will no longer crash if the player using the entity disconnected from the server


== All entities ==
== env_entity_maker ==
 
=== Keyvalues ===
 
* $autoparent <1/0>
** When the PointTemplate template is spawned via ForceSpawnAtEntityOrigin, the template entities will be automatically parented
* $Param(name) <string>
** Sets PointTemplate template param to a specified value
 
==All entities ==
 
=== Keyvalues ===
 
* $modules <string>
** Comma separated list of [[Entity Modules|modules]] to attach to the entity


=== Inputs ===
===Inputs===


* $FireUserAsActivator1-4 <string>
*$FireUserAsActivator1-4 <string>
** Acts like FireUser1-4, but the entity becomes the !activator, and the parameter is passed in OnUser1-4 output
** Acts like FireUser1-4, but the entity becomes the !activator, and the parameter is passed in OnUser1-4 output
*$FireUser5-8 <string>
*$FireUser5-8 <string>
** Fires custom $onuser5-8 output
**Fires custom $onuser5-8 output
* $TakeDamage <int>
*$TakeDamage <int>
** Take specified amount of damage
**Take specified amount of damage. Does not support negative values.
* $TakeDamageFromActivator <int>
*$TakeDamageFromActivator <int>
** Take specified amount of damage, the !activator is the damage inflictor
** Take specified amount of damage, the !activator is the damage inflictor
* $SetModel <string>
*$SetModel <string>
** Set custom model
** Set custom model
* $SetModelOverride <string>
*$SetModelOverride <string>
** Set custom model, only changes the appearence
**Set custom model for all vision modes at once. Doesn't change the original model.
* $SetModelSpecial <string>
*$SetModelSpecial <string>
** Set custom model, in a special way, it does less additional changes to the entity
**Set custom model, in a special way, it does less additional changes to the entity
* $SetOwner <entity>
*$SetOwner <entity>
** Set entity owner
** Set entity owner
* $InheritOwner <entity>
*$ClearOwner
** Set entity owner to the passed entity owner
** Remove entity owner
* $InheritParent <entity>
*$InheritOwner <entity>  
** Set entity parent to the passed entity parent
**Set entity owner to the passed entity owner
* $GetKeyValue <string>
*$InheritParent <entity>
** Fire OnUser1 output, with key value as a parameter
**Set entity parent to the passed entity parent
* $MoveType <int>,<int>
*$GetKeyValue <string>  
** Set move type
**Fire OnUser1 output, with key value as a parameter
* $PlaySound <string>
*$MoveType <int>,<int>
** Play sound from this entity
**Set move type
* $StopSound <string>
*$PlaySound <string>
** Stop playing sound from this entity
**Play sound from this entity
* $SetLocalOrigin <vector>
*$StopSound <string>
** Set origin relative to parent
**Stop playing sound from this entity
* $SetLocalAngles <vector>
*$SetLocalOrigin <vector>
** Set angles relative to parent
**Set origin relative to parent
* $SetLocalVelocity <vector>
*$SetLocalAngles <vector>
** Set velocity relative to parent
**Set angles relative to parent
* $TeleportToEntity <entity>
*$SetLocalVelocity <vector>
** Teleport to specified entity
**Set velocity relative to parent
* $MoveRelative <vector>
*$TeleportToEntity <entity>
** Move relative to parent (world)
**Teleport to specified entity
* $RotateRelative <vector>
*$MoveRelative <vector>
** Rotate relative to parent (world)
**Move relative to parent (world)
*$RotateRelative <vector>
**Rotate relative to parent (world)
*$GetEntIndex <string>
**parameter format: entity|input
**example: !activator|$DisplayTextCenter
**Triggers the input of an entity, with entity index as parameter
*$RemoveOutput <string>
**remove outputs with given name
*$CancelPending
**Remove all pending inputs this entity is going to fire
*$SetForwardVelocity <float>
**Set forward velocity of an entity, does not work on every entity
*$FaceEntity <entity>
**Rotate the entity so that it faces the target entity
*$SetKey$(keyvalue name) <string>
*$SetKey$(keyvalue name) <string>
**Set keyvalue to specified value
**Set keyvalue to specified value
Line 296: Line 450:
**parameter format: entity|input|default value
**parameter format: entity|input|default value
**example: !activator|$DisplayTextCenter|def
**example: !activator|$DisplayTextCenter|def
**Trigger the input of an entity, with keyvalue as a paramer (default value if not found)
** Trigger the input of an entity, with keyvalue as a paramer (default value if not found)
*$SetVar$(variable name) <string>
*$SetVar$(variable name) <string>  
**Set custom entity variable
**Set custom entity variable
*$GetVar$(variable name) <string>
*$GetVar$(variable name) <string>
Line 303: Line 457:
**example: !activator|$DisplayTextCenter|def
**example: !activator|$DisplayTextCenter|def
**Trigger the input of an entity, with variable as a paramer (default value if not found)
**Trigger the input of an entity, with variable as a paramer (default value if not found)
*$SetData$(datamap prop name) <string>
*$SetData$([https://raw.githubusercontent.com/powerlord/tf2-data/master/datamaps.txt datamap] prop name) <string>
**Set datamap property to specified value
**Set datamap property to specified value
*$GetData$(datamap prop name) <string>
*$GetData$([https://raw.githubusercontent.com/powerlord/tf2-data/master/datamaps.txt datamap] prop name) <string>
**parameter format: entity|input|default value
**parameter format: entity|input|default value
**example: !activator|$DisplayTextCenter|def
**example: !activator|$DisplayTextCenter|def
**Trigger the input of an entity, with datamap prop as a paramer (default value if not found)
**Trigger the input of an entity, with datamap prop as a paramer (default value if not found)
*$SetProp$([https://raw.githubusercontent.com/powerlord/tf2-data/master/netprops.txt send prop] name)[$(array)] <string>
**Set send property to specified value. Can also set arrays.
**example without array: $SetProp$m_bInUpgradeZone
***sets player state if player is visiting an upgrade station
**example with array: $SetProp$m_iAmmo$3
***sets player ammo type array to 3, which is metal carried
*$GetProp$([https://raw.githubusercontent.com/powerlord/tf2-data/master/netprops.txt send prop] name)[$(array)] <string>
**parameter format: entity|input|default value
**example: !activator|$DisplayTextCenter|def
**Trigger the input of an entity, with send prop as a paramer (default value if not found)
*$SetClientProp$([https://raw.githubusercontent.com/powerlord/tf2-data/master/netprops.txt send prop] name)[$(array)] <string>
**Set fake send prop value only seen by players. Can also set arrays. Useful for setting fake mission name or wave number, as $SetProp would trigger unwanted behavior
**example without array: $SetClientProp$m_bInUpgradeZone
***sets player state if player is visiting an upgrade station
**example with array: $SetClientProp$m_iAmmo$3
***sets player ammo type array to 3, which is metal carried
*$ResetClientProp$([https://raw.githubusercontent.com/powerlord/tf2-data/master/netprops.txt send prop] name)[$(array)]
**Reset fake prop value set by $SetClientProp
*$AddModule <string>
**Add entity [[Entity Modules|module]] by name
*$RemoveModule <string>
**Remove entity [[Entity Modules|module]] by name
*$SetCollisionFilter <entity>
**Sets custom collision filter entity. If the filter passes, the entity collides as usual, otherwise the colliding entities pass through
*$HideTo <player>
**Hides this entity to specific player
*$ShowTo <player>
**Shows previously hidden entity to specific player
*$HideToAll
**Hides this entity to all players by default
*$ShowToAll
**Shows previously hidden entity to all players


=== Outputs ===
===Outputs===


* $OnUser5-8 <string>
*$OnUser5-8 <string>
** Called when $FireUser5-8 input is used
**Called when $FireUser5-8 input is used
* $OnKilled
*$OnKilled
** Fired when the entity is killed. The calling entity no longer exist and cannot be accessed
**Fired when the entity is killed (removed from the world). The calling entity no longer exist and cannot be accessed unless input delay is set to -1
*$OnDamageReceived <int>
**Fired when the entity is damaged. Parameter is the damage received by the entity. !activator is the damage inflictor
*$OnDamageBlocked <int>
**Fired when damage was blocked by the entity. Parameter is the amount of damage blocked by the entity. !activator is the damage inflictor
*$OnDeath <int>
**Fired when the entity died. Parameter is the damage of the fatal blow. !activator is the damage inflictor


[[Category:Misc Additions]]
[[Category:Misc Additions]]

Revision as of 10:29, 25 November 2022

Targeting

  • You can target parent of specified entity by adding @p@. @p@!activator would target parent of the activator entity
  • You can target children of specified entity by adding @c@ prefix. @c@!activator would target children of the activator entity
  • Target all entities in a box by adding @bbxmin ymin zmin xmax ymax zmax@ prefix. @bb-100 -100 -100 100 100 100@prop_dynamic would target prop_dynamic entities inside -100 -100 -100 100 100 100 world coordinates box
  • Target entities matching the filter by adding @f@ prefix. @f@filtername@entityname would target all entityname that pass the filtername filter
  • Target entity from datamap/sendprop by adding @e@ prefix. @e@m_hOwnerEntity@!activator would target the owner entity of !activator. You can also target in array with $. @e@m_hMyWeapons$1@!activator would target secondary weapon of !activator.

Various

  • You can execute an input immediately rather than with at least 1 tick delay by setting input delay to -1. This allows you to access !activator of $OnKilled entity

Expressions

Expressions can be used to calculate input parameters without the need of extra logic entities

point_viewcontrol

Keyvalues

  • $allowdamage <1/0>
    • Should the player/s operating the camera receive damage. 0 by default

Inputs

  • $EnableAll
    • Enable the camera for all players on the map. Spawnflag [512] may not work properly. (Start At Player, Interruptable by Player)
  • $DisableAll
    • Disable the camera for all players on the map
  • $SetTarget <entity>
    • Set current target to entity

Sentry Gun (obj_sentrygun)

Spawnflags

  • [64] - Spawn as mini-sentry

Teleporter (obj_teleporter)

Keyvalues

  • $TeleportWhere <string>
    • Teleport bots from specified botspawn name. It is possible to add multiple TeleportWhere keys. "all" name will teleport all bots, "small" will teleport all small bots, "giants" will teleport giants and their squad

Weapon Mimic (tf_point_weapon_mimic)

  • Fired projectiles can have their team assigned with teamnum keyvalue (2 for RED and 3 for BLU). Previously all fired projectiles always belonged to the BLU team
  • If the player owner is set with $SetOwner or $InheritOwner, fired projectiles are assigned to the owner
  • Fired stickybombs are automatically removed if the mimic is removed
  • Added projectile type 4 - Bullet. SpeedMax keyvalue determines max distance (infinite if not specified). SplashRadius determines knockback force
  • It is possible to mimic a specific weapon. Setting owner might be required for the weapon to function properly. Setting a mimic weapon disables all other mimic properties except crits

Keyvalues

  • $preventshootparent <1/0>
    • If set, bullets fired from the mimic cannot hit the parent entity
  • $dmgtype <int>
    • Set custom damage type
  • $killicon <string>
    • Set custom kill icon
  • $weaponname <string>
    • Set mimic weapon name, custom weapon names are allowed. example: The Righteous Bison
  • $firetime <float>
    • Delay between shots for $StartFiring input
  • $weaponnosound <1/0>
    • If set, disables weapon fire sound

Inputs

  • $AddWeaponAttribute <string>
    • Adds attribute to the mimic weapon, example: projectile speed increased|2
  • $RemoveWeaponAttribute <string>
    • Remove attribute from the mimic weapon, example: projectile speed increased
  • $StartFiring <int>
    • Starts firing automatically specified number of projectiles, 1 minimum, with $firetime delay between shots
  • $StopFiring
    • Stops firing automatically

Outputs

  • $OnFire
    • Called when the projectile is being fired, with the projectile as !activator

Spawnflags

  • [4] - Fire "OnUser4" output when projectile is fired, with the projectile as !activator.

Tank (tank_boss)

  • When tank starts deploying, and there is at least one PointTemplate assigned to it, "OnUser4" output is activated

Outputs

  • $OnStartDeploy
    • Fired when the tank is deploying the bomb

Medic shield (entity_medigun_shield)

Spawnflags

  • [1] - Don't expire and don't block LOS
  • [2] - Use the LV2 Shield model

logic_case

Text formatter

With the use of the added inputs, logic_case can be transformed into a text formatter, replacing % in the format string into format parameters.

Example point template usage:

Formatter
{
	OnSpawnOutput
	{
		Target "formattest"
		Action "$Format"
		Delay 1
	}
	logic_case
	{
		"targetname" "formattest"
		"case16" "You have % out of % coins left. % %% done" // Formatter string
		"case01" "6" //First argument
		"case02" "12" //Second argument
		"case03" "50" //Third argument
		"ondefault" "player,$DisplayTextCenter,,0,-1"
	}
}

This would display "You have 6 out of 12 coins left. 50 % done" to all players

Menu

You can use $DisplayMenu input to display a menu for the player, up to 15 entries

Menu
{
	OnSpawnOutput
	{
		Target "menutest"
		Action "$DisplayMenu"
		Delay 1
		Param "player"
	}
	logic_case
	{
		"targetname" "menutest"
		"case16" "Menu title|30|Cancel" // Title, menu duration (0 for infinite), display optional cancel button
		"case01" "option1" //First argument
		"case02" "!disabled option" //Second argument, disabled
		"case03" "suicide" //Third argument
		"oncase03" "!activator,sethealth,0,0,-1" // Selected 3rd option
		"ondefault" "player,$DisplayTextCenter,he,0,-1" // No option selected
	}
}

Inputs

  • $FormatString <string>
    • Sets formatting string, then fires OnDefault output, with formatted string as parameter
  • $FormatStringNoFire <string>
    • Sets formatting string
  • $FormatInput1 <string>
    • Sets formatting input argument 1, then fires OnDefault output, with formatted string as parameter
  • $FormatInput2-15 <string>
    • Sets formatting input argument 2-15, then fires OnDefault output, with formatted string as parameter
  • $FormatInputNoFire1 <string>
    • Sets formatting input argument 1
  • $Format
    • Fires OnDefault output, with formatted string as parameter
  • $TestSigsegv
    • Fires OnUser1 output. Can be used to test if sigsegv extension is active
  • $ToInt <any>
    • Fires OnDefault output, converts parameter value from string/float to integer
  • $ToFloat <any>
    • Fires OnDefault output, converts value from string/int to real number
  • $CallerToActivator <any>
    • Fires OnDefault output, but the !caller entity is converted to !activator
  • $GetKeyValueFromActivator <string>
    • Fires OnDefault output, the key value from the !activator entity is the parameter
  • $GetConVar <string>
    • Fires OnDefault output, the convar (console variable) number value is the parameter
  • $GetConVarString <string>
    • Fires OnDefault output, the convar (console variable) string value is the parameter
  • $DisplayMenu <entity>
    • Display menu at player
  • $HideMenu <entity>
    • Hide menu at player
  • $BitTest <number>
    • Fires all cases where after the bitwise AND operation between the parameter and the case value, the result is not 0
  • $BitTestAll <number>
    • Fires all cases where after the bitwise AND operation between the parameter and the case value, the result is same as the parameter

tf_gamerules

Inputs

  • $StopVO <string>
    • Stops sound that was started with PlayVO input
  • $StopVORed <string>
    • Stops sound that was started with PlayVORed input
  • $StopVOBlue <string>
    • Stops sound that was started with PlayVOBlue input
  • $SetBossHealthPercentage <float>
    • Set Halloween boss bar percentage to a value between 0 and 1. 0 hides the health bar, any other value makes the bar appear
  • $SetBossState <int>
    • If set to 1, makes the health bar green, like if Merasmus is hiding. If set to 0, the bar goes back to normal
  • $AddCurrencyGlobal <int>
    • Add currency to all players
  • $ChangeLevel <string>
    • Changes level. To set a specific mission, type the mission name after | . Example: mvm_bigrock|advanced1

player

Inputs

  • $AllowClassAnimations <0|1>
    • Allow class animations instead of using refpose when UseCustomModel input is fired to change player model
  • $SwitchClass <string>
    • Switch player class. The parameter can be either a class name (heavyweapons for example), or class index
  • $SwitchClassInPlace <string>
    • Switch player class in current position. The parameter can be either a class name (heavyweapons for example), or class index
  • $ForceRespawn
    • The player instantly respawns
  • $ForceRespawnDead
    • The player instantly respawns, but only if they are dead
  • $DisplayTextCenter <string>
    • Display text in the middle of the screen
  • $DisplayTextChat <string>
    • Display text to the player's chat
  • $DisplayTextHint <string>
    • Display yellow text in the bottom part of the screen and play a sound cue
  • $Suicide
    • Kill the player
  • $ChangeAttributes <string>
    • If the player is a bot, this can be used to change active EventChangeAttributes
  • $RollCommonSpell
    • Roll common spell
  • $SetSpell <string>
    • Set player current spell to one of the following:
      • Fireball
      • Ball O' Bats
      • Healing Aura
      • Pumpkin MIRV
      • Superjump
      • Invisibility
      • Teleport
      • Tesla Bolt
      • Minify
      • Meteor Shower
      • Summon Monoculus
      • Summon Skeletons
  • $AddSpell <string>
    • Adds spell to the number of spells. If the spell is different than the current one, it replaces the spell. The parameter is the same as in $SetSpell
  • $AddCond <int> [int]
    • Add condition to player. If a second argument is present, the condition will only run for a specified duration
  • $RemoveCond <int>
    • Remove condition from player
  • $AddPlayerAttribute <string>
    • Add attribute to player, the parameter should be passed in this way: attribute|value. Example: "move speed bonus|1.2"
  • $RemovePlayerAttribute <string>
    • Remove attribute from player. Example: "move speed bonus"
  • $GetPlayerAttribute <string>
    • Sends attribute from player as the parameter.
    • parameter format: attribute|entity|input|default value
    • example: fire rate bonus|!activator|$DisplayTextChat|0
  • $AddItemAttribute <string>
    • Add attribute to item in slot, the parameter should be passed in this way: attribute|value|slot or item name. Example "damage bonus|2|0" adds 100% damage bonus to primary weapon, "damage penalty|0.5" adds 50% damage penalty to active weapon
  • $RemoveItemAttribute <string>
    • Remove attribute from item in slot, the parameter should be passed in this way: attribute|slot or item name. Example "damage bonus" removes damage bonus from primary weapon, "damage penalty" removes damage penalty from active weapon
  • $GetItemAttribute <string>
    • Sends item attribute value as the parameter.
    • parameter format: slot or item name|attribute|entity|input|default value
    • example to grab primary slot item's fire rate bonus value: 0|fire rate bonus|!activator|$DisplayTextChat|0
    • You can also type -1 for active weapon or the item name.
  • $PlaySoundToSelf <string>
    • Play sound to the player
  • $IgnitePlayerDuration <float>
    • Ignite the player for a specified duration in seconds
  • $WeaponSwitchSlot <int>
    • Forcibly switches to weapon in slot
  • $WeaponStripSlot <int>
    • Removes weapon from a slot (-1 = current slot)
  • $GiveItem <string>
    • Gives an item to the player
  • $AddCurrency <int>
    • Add currency to the player
  • $RemoveCurrency <int>
    • Remove currency from the player
  • $SetCurrency <int>
    • Set currency to specified value
  • $CurrencyOutputX <string>
    • Fires input if player currency is above specified value (the X in input name), the attribute should be passed in this way: target,input,parameter.
  • $CurrencyInvertOutputX<string>
    • Fires input if player currency is below specified value(the X in input name), the attribute should be passed in this way: target,input,parameter
  • $DropItem <int>
    • Drop item in slot (-1 = current slot)
  • $RemoveItem <string>
    • Remove item with a name
  • $Regenerate
    • Regenerate the player, as if touching resupply cabinet
  • $RefillAmmo
    • Restore player ammo
  • $PlaySequence <string>
    • Play animation sequence with specified name
  • $ResetInventory
    • Reset loadout items, as if touching the resupply cabinet
  • $BotCommand <string>
    • Forces the bot to perform an action. Examples:
      • interrupt_action -posent targetmove -lookposent targetlook -duration 10 -waituntildone -ondoneattributes AfterDone -name myname
        • Move to entity targetmove, while looking at entity targetlook. Wait 10 seconds after moving to the target entity, then ChangeAttributes to AfterDone, and fire $onactiondone output with myname as parameter
      • interrupt_action -posent targetkill -lookposent targetkill -killlook -waituntildone -alwayslook -distance 500
        • Move to entity targetkill and try to destroy it. Always look at the target even if not in sight. Only move up to 500 units away from the target
      • interrupt_action -pos 0 0 0 -lookpos 100 100 100 -duration 10
        • Move to position 0 0 0 while looking at position 100 100 100 for the next 10 seconds
      • interrupt_action_queue -pos 0 0 0 -lookpos 100 100 100 -duration 10
        • Same as above, but add the action to the queue so it is only done when the previous interrupt action finishes
      • clear_interrupt_action_queue
        • Clears interrupt action queue added by above command
      • remove_interrupt_action_queue_name name
        • Delete from interrupt action queue if name matches
      • stop interrupt action
        • Stops current interrupt action
      • despawn
        • Forces to bot to despawn
      • taunt
        • Forces the bot to taunt
      • cloak
        • Forces the spy bot to cloak
      • uncloak
        • Forces the spy bot to uncloak
      • disguise
        • Forces the spy bot to disguise as something
      • build sentry at nearest sentry hint
  • $Taunt
    • Forces the player to taunt
  • $TauntFromItem <string>
    • Forces the player to taunt with specified item name. Also allows to insert attributes separated by |. Example: Conga Taunt|taunt move speed|1000
  • $TauntIndexConcept <string>
    • Forces the player to taunt with specified index and concept. Example: 0|0
  • $TauntFromItem2 <string>
    • Forces the player to taunt with specified item index. Also allows to modify attack time for "taunt attack". Example: 1179|-0.5
  • $AwardExtraItem <string>
    • Awards extra loadout item with specified name to the player
  • $AwardAndGiveExtraItem <string>
    • Awards extra loadout item with specified name to the player, and equips it
  • $StripExtraItem <string>
    • Strips extra loadout item with specified name from the player
  • $ResetExtraItems
    • Strips all extra loadout items from the player

Outputs

  • $OnActionDone <string>
    • Called when interrupt action finishes, the string parameter is a name of the interrupt action

trigger_hurt

If entity owner is set with $SetOwner or $InheritOwner, the owner will become the damage inflictor

Filter entities

The server will no longer crash if the activator entity got removed the time TestActivator is called

Inputs

  • $TestEntity <entity>
    • Test any entity, rather than only the !activator

Trigger entities

The server will no longer crash if the caller entity got removed the time StartTouch or EndTouch is called

Inputs

  • $StartTouchEntity <entity>
    • StartTouch any entity, rather than only the !caller
  • $EndTouchEntity <entity>
    • EndTouch any entity, rather than only the !caller

game_ui

The server will no longer crash if the player using the entity disconnected from the server

env_entity_maker

Keyvalues

  • $autoparent <1/0>
    • When the PointTemplate template is spawned via ForceSpawnAtEntityOrigin, the template entities will be automatically parented
  • $Param(name) <string>
    • Sets PointTemplate template param to a specified value

All entities

Keyvalues

  • $modules <string>
    • Comma separated list of modules to attach to the entity

Inputs

  • $FireUserAsActivator1-4 <string>
    • Acts like FireUser1-4, but the entity becomes the !activator, and the parameter is passed in OnUser1-4 output
  • $FireUser5-8 <string>
    • Fires custom $onuser5-8 output
  • $TakeDamage <int>
    • Take specified amount of damage. Does not support negative values.
  • $TakeDamageFromActivator <int>
    • Take specified amount of damage, the !activator is the damage inflictor
  • $SetModel <string>
    • Set custom model
  • $SetModelOverride <string>
    • Set custom model for all vision modes at once. Doesn't change the original model.
  • $SetModelSpecial <string>
    • Set custom model, in a special way, it does less additional changes to the entity
  • $SetOwner <entity>
    • Set entity owner
  • $ClearOwner
    • Remove entity owner
  • $InheritOwner <entity>
    • Set entity owner to the passed entity owner
  • $InheritParent <entity>
    • Set entity parent to the passed entity parent
  • $GetKeyValue <string>
    • Fire OnUser1 output, with key value as a parameter
  • $MoveType <int>,<int>
    • Set move type
  • $PlaySound <string>
    • Play sound from this entity
  • $StopSound <string>
    • Stop playing sound from this entity
  • $SetLocalOrigin <vector>
    • Set origin relative to parent
  • $SetLocalAngles <vector>
    • Set angles relative to parent
  • $SetLocalVelocity <vector>
    • Set velocity relative to parent
  • $TeleportToEntity <entity>
    • Teleport to specified entity
  • $MoveRelative <vector>
    • Move relative to parent (world)
  • $RotateRelative <vector>
    • Rotate relative to parent (world)
  • $GetEntIndex <string>
    • parameter format: entity|input
    • example: !activator|$DisplayTextCenter
    • Triggers the input of an entity, with entity index as parameter
  • $RemoveOutput <string>
    • remove outputs with given name
  • $CancelPending
    • Remove all pending inputs this entity is going to fire
  • $SetForwardVelocity <float>
    • Set forward velocity of an entity, does not work on every entity
  • $FaceEntity <entity>
    • Rotate the entity so that it faces the target entity
  • $SetKey$(keyvalue name) <string>
    • Set keyvalue to specified value
  • $GetKey$(keyvalue name) <string>
    • parameter format: entity|input|default value
    • example: !activator|$DisplayTextCenter|def
    • Trigger the input of an entity, with keyvalue as a paramer (default value if not found)
  • $SetVar$(variable name) <string>
    • Set custom entity variable
  • $GetVar$(variable name) <string>
    • parameter format: entity|input|default value
    • example: !activator|$DisplayTextCenter|def
    • Trigger the input of an entity, with variable as a paramer (default value if not found)
  • $SetData$(datamap prop name) <string>
    • Set datamap property to specified value
  • $GetData$(datamap prop name) <string>
    • parameter format: entity|input|default value
    • example: !activator|$DisplayTextCenter|def
    • Trigger the input of an entity, with datamap prop as a paramer (default value if not found)
  • $SetProp$(send prop name)[$(array)] <string>
    • Set send property to specified value. Can also set arrays.
    • example without array: $SetProp$m_bInUpgradeZone
      • sets player state if player is visiting an upgrade station
    • example with array: $SetProp$m_iAmmo$3
      • sets player ammo type array to 3, which is metal carried
  • $GetProp$(send prop name)[$(array)] <string>
    • parameter format: entity|input|default value
    • example: !activator|$DisplayTextCenter|def
    • Trigger the input of an entity, with send prop as a paramer (default value if not found)
  • $SetClientProp$(send prop name)[$(array)] <string>
    • Set fake send prop value only seen by players. Can also set arrays. Useful for setting fake mission name or wave number, as $SetProp would trigger unwanted behavior
    • example without array: $SetClientProp$m_bInUpgradeZone
      • sets player state if player is visiting an upgrade station
    • example with array: $SetClientProp$m_iAmmo$3
      • sets player ammo type array to 3, which is metal carried
  • $ResetClientProp$(send prop name)[$(array)]
    • Reset fake prop value set by $SetClientProp
  • $AddModule <string>
  • $RemoveModule <string>
  • $SetCollisionFilter <entity>
    • Sets custom collision filter entity. If the filter passes, the entity collides as usual, otherwise the colliding entities pass through
  • $HideTo <player>
    • Hides this entity to specific player
  • $ShowTo <player>
    • Shows previously hidden entity to specific player
  • $HideToAll
    • Hides this entity to all players by default
  • $ShowToAll
    • Shows previously hidden entity to all players

Outputs

  • $OnUser5-8 <string>
    • Called when $FireUser5-8 input is used
  • $OnKilled
    • Fired when the entity is killed (removed from the world). The calling entity no longer exist and cannot be accessed unless input delay is set to -1
  • $OnDamageReceived <int>
    • Fired when the entity is damaged. Parameter is the damage received by the entity. !activator is the damage inflictor
  • $OnDamageBlocked <int>
    • Fired when damage was blocked by the entity. Parameter is the amount of damage blocked by the entity. !activator is the damage inflictor
  • $OnDeath <int>
    • Fired when the entity died. Parameter is the damage of the fatal blow. !activator is the damage inflictor