New Portal Entities

New Entities from Portal of Praevus

Here is a list of entities that are either new in Portal of Praevus, or sporting some new keys. I've gone through it removing entities whose `new keys' I know actually work in original H2, and have spliced in info from the comments that Terata made.

All of the ones that I think might be useful for ordinary map-makers now link to proper entries on the Eye of Horus (and they're in the main entity-list as well. I've got a specific list of the remaining ones here. The hcode comments about the others can be looked up in the alphabetical index of PoP entities. (These pages aren't on the zipped version of the Eye; you can download them separately and stick them in a subdirectory `portal').

Spawnflags are unpacked; 'x' means that a that flag is sometimes set, `0. that it never is. Also the values of thingtype, style, soundtype and skin are listed.

Parenthesized keys are sometimes absent from the entity, unparenthesized ones aren't (although they might still be optional; this is based just on what actually occurs in the maps, not wht the code permits). If an entity is followed by `:brush' it owns brushes, if it is followed by `:point' it doesn't (I've omitted the model field for the brush-owning entities, but not the origin field for the points).

If you use QuArK as your map-editor, you can use these entities in maps by inserting a similar entity from original H2, and manually editing the fields. I don't know how this would work with other editors. I'm not planning to do a proper entity list for current QuArK, because my efforts in that direction are going towards QuArK 5, but I am going to produce a minimalistic one for Quark4 to do the spawnflags.


NATE_9000:point  NEW ENTITY 
  angle
  origin

sez Terata:
  Neutered Anal Test Entity.  This is a small pink glowing sheep, designed
  to tell whoever hits him how much damage he's taken.  We used this to
  find out how much damage various weapons do in the real world, so we
  could do some balancing.  He'll tell per hit, and add up a total if he's
  hit within five seconds of the last one.

  Example of one of the item changes:  Two original Force Cubes, if left
  to wail on Nate for the full 45 seconds, would do around 8 damage per
  shot, for a total of 125 damage.  The new ones hit for 3-5 per attack,
  and totalled around 1500.  Yeah, they're quite a bit more effective now.
-----



air_bubbles:point  NEW ENTITY
  cnt
  origin
  targetname
  wait

buddha_trigger_endgame:point  NEW ENTITY //activates end-screen when triggered
  origin
  targetname

camera_remote:point
  origin
  targetname
  (health)  NEW KEY
  (netname)  NEW KEY 
  (target)
  (wait)  NEW KEY  // not really new

func_door:brush
  (abslight)
  (angle)
  (close_target)  NEW KEY //activates is target whem door starts to close
                          //  doesn't work if door has wait = -1.
                          //  also works for rotating doors, but not
                          //    secret ones.
  (dmg)
  (flags)
  (health)
  (level)  NEW KEY  // dunno what it does yet.
  (lip)
  (message)
  (no_puzzle_msg)
  (puzzle_piece_1)
  (soundtype) 1 2 5 6 7 8 9
  (spawnflags) x 0 x x x x x 0 
  (speed)
  (strength)  NEW KEY // this key is irrelevant now (in PP, presumably,
    it doesn't appear in the original maps.)
  (target)
  (targetname)
  (wait)

func_door_rotating:brush
  flags
  origin
  (abslight)
  (dmg)
  (soundtype) 0 1 2 3 4 5 6 7
  (spawnflags) x x x 0 0 x x x 
  (speed)
  (strength)  NEW KEY // this key is irrelevant now (in PP, presumably,
    it doesn't appear in the original maps.)
  (target)
  (close_target)  NEW KEY //activates is target whem door starts to close
                          //  doesn't work if door has wait = -1.
                          //  also works for ordinary doors, but not
                          //    secret ones.
  (targetname)
  (thingtype) 1
  (wait)

func_monsterspawn_spot:point  // it was there all along, but with
  aflag                       // an example to look at I managed to use it!
  cnt
  origin
  spawnername
  spawnflags 0 x 0 0 0 0 0 0 

func_monsterspawn_spot_mp:point  NEW ENTITY
  aflag
  angle
  dflags
  origin
  spawnername 
  spawnflags 0 x 0 0 0 x x 0 

func_monsterspawner:point
  origin
  spawnflags
  targetname
  (angle)
  (cnt)
  (spawnername)  NEW KEY //  // not really new, but use now known

func_monsterspawner_mp:point  NEW ENTITY
  angle
  cnt
  origin
  (dflags)
  (frags)
  (spawnername)
  (spawnflags) x x x 0 x x 0 0 
  (target)
  (targetname)
  (wait)

func_train:brush // this classname sames to
// have the same functionality as func_train_mp below, where the new
// keys are listed: to get this functionality you need to specify the
// spawnflags-value of the map's worldspawn entity as 1.

func_train_mp:brush  NEW ENTITY
 // several keys omitted below, see the proper page on the Eye.
  model
  target
  targetname
  (abslight)
  (angle)
  (dmg)
  (netname) // for aiming camera_remote
  (origin)
  (soundtype) 0 3
  (spawnflags) x x 0 0 0 x x x 
  (speed)
  (thingtype) 1
  (wait)
  (weaponmodel)

fx_friction_change:brush  NEW ENTITY  // when you touch brush, your friction
         // is multiplied by the friction-value; .25 good for ice.
  model  
  (friction)

info_null:point
  origin
  (spawnflags)  NEW KEY x 0 0 0 0 0 0 0 
  (targetname)

info_player_coop:point
  origin
  (angle)
  (map)  NEW KEY
  (playerclass)  NEW KEY
  (spawnflags) x 0 0 0 0 0 0 0 
  (target)  NEW KEY
  (targetname)

info_player_start2:point  NEW ENTITY
  origin
  targetname

light_burner:point  NEW ENTITY
  origin
  (abslight)
  (light)

light_candle:point  NEW ENTITY
  origin
  (angle)
  (dmg)
  (light)
  (spawnflags) x 0 0 0 0 0 0 0 
  (style) 35
  (targetname)

light_flame_large_yellow:point
  origin
  (dmg)  NEW KEY  // doesn't work in original H2
  (light)
  (spawnflags) x x 0 0 0 0 0 0 
  (style) 32 33 34 35
  (targetname)

light_flame_small_yellow:point
  origin
  (light)
  (spawnflags) x x 0 0 0 0 0 0 
  (style) 32 33 34 35 36 37 38 6
  (targetname)
  (thingtype)  NEW KEY 250

light_lantern:point  NEW ENTITY
  origin
  (angle)
  (light)

light_newfire:point  NEW ENTITY
  light
  origin

light_palace_torch:point  NEW ENTITY
  angle
  origin

monster_archer_ice: 152
  origin
  (angle) 131
  (health) 3        // specifying this works now
  (netname) 2       // for trigger_counter (not actually necessary,
                    //    I think)
  (spawnflags) 15
  (target) 20
  (targetname) 1

monster_buddha:point  NEW ENTITY // praevus himself
  angle
  netname
  origin
  target
  targetname

monster_eidolon_weakling:point  NEW ENTITY // doesn't do much
  angle      
  origin
  targetname

monster_pentacles:point  NEW ENTITY
  origin
  (angle)
  (skin) 0 = brown rocky (default); 1 = white snowy
  (spawnflags) x 0 x x 0 0 0 0 // these seem to be unimplemented
  (target)

monster_weresnowleopard:point  NEW ENTITY
  origin
  (angle)
  (target)
  (targetname)

monster_weretiger:point  NEW ENTITY
  angle
  origin
  (health)
  (target)
  (targetname)

monster_yakman:point  NEW ENTITY
  origin
  (angle)
  (health)
  (skin) 1 2
  (target)
  (targetname)

obj_book_o_the_dead:point  NEW ENTITY
  angles
  health
  origin
  scale

obj_catapult2:point
  angle
  origin
  spawnflags  NEW KEY

obj_chinese_kite_lamp:point  NEW ENTITY
  origin
  (abslight)
  (scale)

obj_chinese_sign:point  NEW ENTITY
  origin
  scale
  (abslight)
  (angle)

obj_demon_statue:point  NEW ENTITY
  angle
  origin
  (abslight)
  (scale)

obj_samurai:point  NEW ENTITY
  angle
  origin
  (abslight)
  (scale)
  (target)

obj_shiva:point  NEW ENTITY
  abslight
  angle
  origin
  scale
  targetname

obj_skeleton:point  NEW ENTITY
  origin
  (abslight)
  (angle)
  (scale)

obj_skeleton_throne:point  NEW ENTITY
  angle
  origin
  targetname

obj_snow_corner:point  NEW ENTITY
  origin
  (abslight)
  (angle)

obj_snow_pile:point  NEW ENTITY
  origin
  (abslight)
  (angle)

obj_snow_wall:point  NEW ENTITY
  angle
  origin
  (abslight)

obj_stalagmite1:point  NEW ENTITY
  abslight
  angles
  origin

obj_stalagmite2:point  NEW ENTITY
  abslight
  angles
  origin

obj_statue_dragon_lion:point  NEW ENTITY
  angle
  cnt_h_boost
  origin

obj_talking_door:point  NEW ENTITY
  angle
  origin
  targetname

plaque:brush
  message
  (spawnflags) x 0 x x 0 0 0 0 
  (targetname)
  (wait)  NEW KEY  // doesn't seem to do anything.

player_sheep:point // some new keys
  angle
  origin
  (health)  NEW KEY // doesn't do anything
  (message)  NEW KEY // alas poor Paramour!
  (scale)  

teleport_buddha:point  NEW ENTITY // praevus' teleport points
  cnt
  origin

trap_spikeshooter:point
  angle
  origin
  targetname
  (spawnflags)  NEW KEY x 0 0 0 0 0 0 0 // doesn't work, looks de-implemented


trigger_check:brush
  failtarget  NEW KEY  // this looks genuinely new!
  netname
  target
  targetname
  wait  NEW KEY

trigger_control:brush
  target
  (targetname)  NEW KEY  // not linked to anything (keep3), prolly goof

trigger_deactivate:brush
  target
  targetname
  (spawnflags) 0 0 x 0 0 0 0 0 
  (style)  NEW KEY 34  // used for controlling lights in tibet2.

trigger_deathtouch:brush  NEW ENTITY
  model
  spawnflags 0 x 0 x 0 0 0 0 
  (target)
  (targetname)

trigger_hub_intermission:point  NEW ENTITY // text etc. for enterint
                                           //  tibetan hub.
  map
  origin
  target
  targetname

trigger_hurt:brush  // PoP enhancements
  dmg
  (spawnflags)  NEW KEY x 0 0 0 0 0 0 0 
  (targetname)  NEW KEY

trigger_monsterjump:brush
  (angle)  NEW KEY
  (height)  NEW KEY
  (speed)  NEW KEY
  (target)  NEW KEY
  (targetname)  NEW KEY

trigger_objective:point  NEW ENTITY
  frags
  origin
  spawnflags x x 0 0 0 0 0 0 
  targetname
  (target)

trigger_once:brush  // don't think there's
                    // anything really new here.
  (angle)
  (delay)
  (fadespeed)
  (health)  NEW KEY    // occurs once, maybe error?
  (items)  NEW KEY     //     ditto
  (killtarget)
  (message)
  (no_puzzle_msg)
  (puzzle_piece_1)
  (spawnflags) x 0 0 x x 0 x x 
  (style) 32 33
  (target)
  (targetname)
  (wait)  NEW KEY     //     ditto


trigger_quake:point
  items  NEW KEY  // old key, but maybe works now?
  lifespan
  origin
  targetname
  (angle)  NEW KEY
  (wait)

trigger_setskill:brush  NEW ENTITY  // used for setting nightmare mode
  model
  noise

trigger_stop:point  NEW ENTITY
  origin
  target
  targetname
  (spawnflags) x 0 0 0 0 0 0 0 

weather_snow:brush  NEW ENTITY
  model
  (angles)
  (anglespeed)
  (counter)
  (movedir)
  (spawnflags) x x x x 0 x 0 0 
  (speed)
  (veer)

worldspawn:UNLOCATED
  spawnflags  NEW KEY
  wad
  (CD)
  (MIDI)
  (angle)  NEW KEY
  (message)
  (midi)  NEW KEY
  (netname) NEW KEY - name of map, don't need message no more!
    Thanks, Terata!

Sez Terata:
  No problem.  Don't ever give an angle to the worldspawn.  There's now a
  "missionpack" spawnflag for it, though, that needs to be set for a lot
  of the ent changes and bug fixes to work (Since we didn't want to break
  the original levels).
---


Back to the list.