This article's documentation is for anything that uses the Source engine. Click here for more information.

Phys spring: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
m (Changed parameters of {{this is a}} to comply with the updated version. This action was performed by a bot.)
No edit summary
 
(3 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{this is a|point entity|name=phys_spring|engine=Source}} It is a physically simulated spring. '''length''' is what's known as the "natural spring length". This is how long the spring would be if it was at rest (nothing hanging on it or attached). When you attach something to the spring, it will stretch longer than its natural length. The amount of stretch is determined by the spring constant '''constant'''. The larger the spring constant the less stretch in the spring.
{{TabsBar|main=s2|base=phys_spring}}
{{CD|CPhysicsSpring|file1=1}}
{{this is a|point entity|name=phys_spring|engine=Source}}  
 
It is a physically simulated spring. '''length''' is what's known as the "natural spring length". This is how long the spring would be if it was at rest (nothing hanging on it or attached). When you attach something to the spring, it will stretch longer than its natural length. The amount of stretch is determined by the spring constant '''constant'''. The larger the spring constant the less stretch in the spring.
{{tip|To break the spring and disconnect elements it holds together, fire {{code|Kill}} input on the spring.}}
 
{{Official vmf example|sdk_phys_spring.vmf}}


== Keyvalues ==
== Keyvalues ==
{{KV Targetname}}
{{KV|Entity 1|intn=attach1|target_destination|First entity to attach.}}
{{KV|Entity 1|intn=attach1|target_destination|First entity to attach.}}
{{KV|Entity 2|intn=attach2|target_destination|Second entity to attach.}}
{{KV|Entity 2|intn=attach2|target_destination|Second entity to attach.}}
Line 10: Line 18:
{{KV|Relative Damping Constant|intn=relativedamping|string|The amount of energy the spring loses proportional to the relative velocity of the two objects the spring is attached to.}}
{{KV|Relative Damping Constant|intn=relativedamping|string|The amount of energy the spring loses proportional to the relative velocity of the two objects the spring is attached to.}}
{{KV|Break on Length|intn=breaklength|string|If the spring's length ever exceeds this length, the spring breaks.}}
{{KV|Break on Length|intn=breaklength|string|If the spring's length ever exceeds this length, the spring breaks.}}
{{KV Targetname}}


== Flags ==
== Flags ==
* 1 : Force only on stretch
{{fl|1|Force only on stretch}}


== Inputs ==
== Inputs ==
{{IO|SetSpringConstant|Set the Spring Constant.|param=float}}
{{I|SetSpringConstant|Set the Spring Constant.|param=float}}
{{IO|SetSpringLength|Set the Spring Length.|param=float}}
{{I|SetSpringLength|Set the Spring Length.|param=float}}
{{IO|SetSpringDamping|Set the Spring Damping.|param=float}}
{{I|SetSpringDamping|Set the Spring Damping.|param=float}}
{{I Targetname}}


== Outputs ==
{{O Targetname}}


[[Category:Constraints|C]]
[[Category:Constraints|C]]

Latest revision as of 07:12, 29 April 2025

C++ Class hierarchy
CPhysicsSpring
CBaseEntity
C++ physobj.cpp

phys_spring is a point entity available in all Source Source games.

It is a physically simulated spring. length is what's known as the "natural spring length". This is how long the spring would be if it was at rest (nothing hanging on it or attached). When you attach something to the spring, it will stretch longer than its natural length. The amount of stretch is determined by the spring constant constant. The larger the spring constant the less stretch in the spring.

Tip.pngTip:To break the spring and disconnect elements it holds together, fire Kill input on the spring.
PlacementTip.pngExample:See steamapps/common/sourcesdk_content/hl2/mapsrc/sdk_phys_spring.vmf for example use (comes with Source SDK installation [confirm])

Keyvalues

Name (targetname) <string>[ Edit ]
The name that other entities refer to this entity by, via Inputs/Outputs or other keyvalues (e.g. parentname or target).
Also displayed in Hammer's 2D views and Entity Report.
See also:  Generic Keyvalues, Inputs and Outputs available to all entities

Entity 1 (attach1) <targetname>
First entity to attach.
Entity 2 (attach2) <targetname>
Second entity to attach.
Spring Axis (springaxis) <vector>
Use the helper. Drag it out to match the virtual spring.
Spring Length (length) <string>
How long the spring would be if it was at rest (nothing hanging on it or attached). 0 means the length of the brush.
Spring Constant (constant) <string>
Stiffness of the spring. The larger the number the less the spring will stretch.
Damping Constant (damping) <string>
How much energy the spring loses. The larger the number, the less bouncy the spring.
Relative Damping Constant (relativedamping) <string>
The amount of energy the spring loses proportional to the relative velocity of the two objects the spring is attached to.
Break on Length (breaklength) <string>
If the spring's length ever exceeds this length, the spring breaks.

Flags

Force only on stretch : [1]

Inputs

SetSpringConstant <floatRedirectInput/float>
Set the Spring Constant.
SetSpringLength <floatRedirectInput/float>
Set the Spring Length.
SetSpringDamping <floatRedirectInput/float>
Set the Spring Damping.