Embedded Attributes

Instead of unexposed C++ variables in the source code, there are attributes that are already "embedded" and read from a related Postal3Script for given entities.

For example, "ea_health" is the health of the entity that uses the assigned p3s behaviour, or the health of a set target, and can be read, changed, and set using the various "Attr" statements.

There are a variety of attributes and they each serve their own purposes.

Note

Embedded Attributes have the ea_ prefix.

🆙🪽 Ultrapatch Embedded Attributes

🆙🪽 Postal III Ultrapatch-only feature

These embedded attributes below will only work with Postal III Ultrapatch.

ImAnAnimal              -- Entity is an animal NPC, if it exist
ImAHuman                -- Entity is a Human NPC, if it exist
ImACat                  -- Entity is a Cat NPC, if it exist
ImADog                  -- Entity is a Dog NPC, if it exist
ImAMonkey               -- Entity is a Monkey NPC, if it exist
ImMotorhead             -- Entity is Motorhead, if it exist
ImAHelicopter           -- Entity is a Helicopter, if it exist
ImAPigeon               -- Entity is a Pigeon NPC, if it exist
ImAPoliceman            -- Entity is an unused Policeman-type Human NPC, if it exist
ImAMilitary             -- Entity is a Military-type Human NPC, if it exist
ImACitizen              -- Entity is a Citizen-type Human NPC, if it exist
ImARhino                -- Entity is a Rhino-type Animal NPC, if it exist
ImASimDriver            -- Entity is a Sim Driver-type Citizen NPC, if it exist
ImHugoChavez            -- Entity is Hugo Chavez Sim Driver NPC, if it exist

ea_glow                 -- Entity will glow if Player looks at it, if it exist
active                  -- (Weapon) If it's 1 they can be seen, not holstered
dropped                 -- (Weapon) By default (on spawn) is 0

flag_boss               -- NPC is a boss, used for missions and achievements, if it exist

🪽 Angel Embedded Attributes

🪽 Postal III Ultrapatch Angel-only feature

These embedded attributes below will only work with Postal III Ultrapatch Angel.

ea_allowpickup          -- (Interactable prop) Pick up is allowed, if it exist
ea_propMotion           -- (Interactable prop) Motion is enabled on hurt, if it exist
ea_touch                -- (Interactable prop) Entity is able to feel, if it exist

as_restore              -- Fires OnASRestore on save game load on the entity, if it exist
as_transition           -- Fires OnASTransition on transition load on the entity, if it exist

All Embedded Attributes


flag_zombie             -- NPC is a boss, used for missions and achievements, if it exist
flag_bystander          -- NPC is a bystander, used for missions and achievements, if it exist
SnatchBiteDamage        -- Used for overriding snatch bite damage for animals

ea_lean                 -- Whether NPC or Player is currently covering
ea_consciousness        -- Gets or sets the consciousness of an NPC, setting it to zero does nothing
ea_health               -- Health
ea_status               -- Status (Killer, Victim, Corpse, etc..)
ea_armed                -- Stored/Active Weapon ID
ea_hostage              -- Whether the Player currently has a hostage
ea_NumEnemy             -- Number of enemies
ea_NumFear              -- Number of fear enemies
ea_NumVisibleEnemy      -- Number of visible enemies
ea_NumVisibleFear       -- Number of visible fear enemies
ea_ammo                 -- Gets the Ammo of NPC's weapon (broken)
ea_Faction              -- Faction
ea_Manner               -- Manner
ea_ActiveWeapon         -- Gets the weapon type
-1  = FLESH
 0  = NONE
 1  = ANIMAL
 2  = GADGET
 3  = NONLETHAL_MELEE
 4  = NONLETHAL_RANGED
 5  = MELEE
 6  = RANGED
 7  = BIGGUN

ea_games                -- Whether the Player is currently peeing (0 if they aren't)
ea_takeable             -- Player can interact with Cat/Human by pressing USE on them
ea_distance             -- UNUSED, won't do anything
ea_name                 -- Given name by the mapper to the entity
ea_crit_disabled        -- Taken crit damage (is this a leftover from TF2?)
ea_no_gibs              -- NPC's limbs can no longer be deattached if died
ea_dmg_absorb           -- ALL Damage type absorption
ea_flamedmg_absorb      -- Flame DMG absorption (DMG_BURN)
ea_bulletdmg_absorb     -- Bullet DMG absorption (DMG_BULLET)
ea_clubdmg_absorb       -- Club DMG absorption (DMG_CLUB)
ea_physdmg_absorb       -- Physics DMG absorption (DMG_CRUSH)
ea_fakedmg_absorb       -- UNUSED (DMG_PHYSGUN), this attribute still works and functions
ea_blastdmg_absorb      -- Blast Explosion DMG absorption (DMG_BLAST)
ea_krotchydmg_absorb    -- Krotchy DMG absorption (DMG_BUCKSHOT), parallel to Blast DMG
ea_blast_immune         -- Blast from Explosion immunity, boltons won't fall off from the NPC
ea_tased                -- Whether the NPC is currently tased
ea_autokill             -- NPC will disappear if it's too far from the Player (1920 Hammer units)
ea_gibs                 -- Only exists on ragdolls
 1  = Full body/Lower body/Lower body with legs
 3  = Single Head/Upper body with head (and arms)
 4  = Single Arm/Single Leg/Upper body (with arms)


Embedded Attribute Example


st_EmbeddedAttrTutorial
{
    Group Neutral
    Patterns
    {
        pt_default
        {
            actions
            {
                SetAttr "covering 0"
                IfAttr "ea_lean == 1 SetAttr covering 1"

                SetAttr "ea_consciousness 120"
                SetAttr "ea_health 100"

                IfAttr "target.ea_status == sCORPSE Pattern pt_eeek"

                IfAttr "ea_armed != WPN_NONE Pattern pt_gungun"
                IfAttr "ea_hostage == 1 Pattern pt_victim"

                IfAttr "ea_NumEnemy > 0 Pattern pt_seek"
                IfAttr "ea_NumFear > 0 Pattern pt_fear"
                IfAttr "ea_NumVisibleEnemy > 0 Pattern pt_destroy"
                IfAttr "ea_NumVisibleFear > 0 Pattern pt_hide"

                // Note: ea_ammo is broken
                IfAttr "ea_ammo == 0 Pattern pt_reload"

                IfAttr "ea_Faction == Faction:Player Pattern pt_player"
                IfAttr "ea_Manner == Manner:Police Pattern pt_police"

                IfAttr "Object:target == Object:Player AND ea_ActiveWeapon < 6 Pattern pt_meleeOnly"

                IfAttr "Object:target == Object:Player AND target.ea_games == 1 Pattern pt_yuck"

                SetAttr "ea_takeable 0"

                IfAttr "ea_name == String:pizza_vendor State st_vendor"

                SetAttr "ea_crit_disabled 1"
                SetAttr "ea_no_gibs 1"

                SetAttr "ea_dmg_absorb 50"
                SetAttr "ea_flamedmg_absorb 50"
                SetAttr "ea_clubdmg_absorb 50"
                SetAttr "ea_physdmg_absorb 50"
                SetAttr "ea_fakedmg_absorb 50"
                SetAttr "ea_blastdmg_absorb 50"
                SetAttr "ea_krotchydmg_absorb 50"

                SetAttr "ea_blast_immune 1"

                CheckAttr "ea_tased RemoveAttr ea_tased"

                SetAttr "ea_autokill 1"
            }
        }
    }
}