List of Portal 2 Instances
A main feature of Portal 2 is its use of instances. In short, instances (placed in Hammer with the func_instance entity) allow for the placement of VMFs inside other VMFs. They are similar to prefabs, but when the source file of an instance is modified the changes take effect in all maps containing them. For more information see Instance.
Below is a list of the instances provided with the Portal 2 Authoring Tools. They are categorized by the folder structure in which they are packaged and I've tried to make a short description for each one; any help is greatly appreciated.
Instances are stored in C:\Program Files\Steam\steamapps\common\portal 2\sdk_content\maps\instances\
.
Note: the terms "powerup" and "powerdown" refer to the activation and deactivation of the facility, respectively, as this is the terminology Valve uses in the animations.
Contents
- 1 Instances
- 1.1 animated_panels
- 1.2 bts
- 1.3 buttons
- 1.4 chamber_hallways
- 1.5 choreo
- 1.6 coop
- 1.7 destruction
- 1.8 door
- 1.9 elevator_scenes
- 1.10 gameplay
- 1.11 labs
- 1.12 lights
- 1.13 monitors
- 1.14 multiplayer
- 1.15 signs
- 1.16 test_chambers
- 1.17 transitions
- 1.18 tube_elevator
- 1.19 turbine_elevator
- 1.20 underground
- 1.21 p2editor
Instances
- global_ents.vmf
- Environment and campaign entities. Recommended in all maps. global_ents.vmf (Portal 2) contains a list of the HDR preset settings available in the instance.
- global_ents_generic.vmf
- Basic set of environment and singleplayer entities. Useful for test maps.
animated_panels
- 64x64_animated_wall_panel_x4panels.vmf
- A horizontal row of four panels that can be triggered to use powerup and powerdown animations.
- 64x64_wall_repair_x2panels.vmf
- A horizontal row of two panels that can be trigger to use powerup animations.
- 64x64_wall_repair_x8panels_bendy01.vmf
- Two columns of four panels that can be triggerd to use powerup animations. Slighty more "bendy" and organic as the name suggests.
- 64x64_wall_repair_x8panels_bendy02.vmf
- Same as above only using a slightly different animation.
- 128x128_ceiling_panel_fall_01.vmf
- A dirty ceiling panel below a clean ceiling panel; the dirty one hinges and falls, replaced by the clean one. Does not use models but instead a func_physbox and func_door.
- 128x128_ceiling_panel_fall_02.vmf
- Same as above but without the clean ceiling panel replacing the dirty one. Dirty panel hinges and falls.
- 128x128_ramp_90degree_01c.vmf
- A 2x2 square of panels that can move back and forth from vertical to horizontal to form a ramp from a wall.
- 128x128_wall_panel_fall_01.vmf
- Identical to 128x128_ceiling_panel_fall_01.vmf but vertical for a wall.
- 128x128_wall_panel_rotate_01.vmf
- A wall panel that moves slightly forward and rotates.
- 128x128_wall_panel_rotate_01.vmf
- Same as above only rotates in the opposite direction.
- 128x128_wall_replace_01.vmf
- A 2x2 square of vertical panels that can open into and close back into the wall of a chamber to allow a "peek" effect. Seen when Wheatly pops his head in to a chamber.
- 128x192_ramp_90degree_02b_reversible_02.vmf
- A large section/ramp that can be rotated into and out of a wall.
bts
- bts_pipes_01_256.vmf
- bts_pipes_01_512.vmf
- bts_pipes_01_corner_128.vmf
- bts_pipes_01b_256.vmf
- bts_pipes_01b_corner_128.vmf
- bts_pipes_01c_256.vmf
- Various pipe structures for use in destroyed-themed maps
- bts_truss_01_032x512.vmf
- A prop_static set to models/props_bts/truss_512_cheap.mdl
- bts_wall_module.vmf
- A piece of testchamber wall with lights for use in Wheatley-themed test chambers
buttons
- floor_button_black_intact.vmf
- A prop_floor_button on a clean black button base.
- floor_button_base_intact_black.vmf
- floor_button_base_intact_white.vmf
- Clean button bases with black or white panels.
- floor_button_base_destroyed_black.vmf
- floor_button_base_destroyed_white.vmf
- Ruined button bases with black or white panels.

chamber_hallways
- entry_hallway_tall_dirty_nocaps_bustfloor.vmf
- A static hallway with a bulging floor. Random stuff (cubes, turrets, etc.) can be seen below causing the bulge.
choreo
- glados_gen_actor.vmf
- A nodraw box containing the generic_actor set to GLaDOS. Presumably for use with in-game scenes, lines, etc.
coop
- bot_disassembler_blue.vmf
- The disassembly machine for Atlas.
- bot_disassembler_orange.vmf
- The disassembly machine for P-Body.
- coop_endlevel_room.vmf
- Disassembler/exit room, clean theme.
- coop_endlevel_room_paint.vmf
- Disassembler/exit room, underground theme.
- coop_flipglass_door.vmf
- The 4-panel airlock doorway.
- coop_lighting_ents.vmf
- Like global_ents.vmf but for co-op.
- coop_spawn_room.vmf
- Co-op entrance room, clean theme.
- coop_spawn_room_bridge.vmf
- Co-op entrance room, destroyed theme.
- coop_spawn_room_paint.vmf
- Co-op entrance room, underground theme.
- coop_team_double_exit_door.vmf
- A testchamber door specialized for co-op.
- coop_team_double_exit_door_paint.vmf
- Same as above, underground theme.
- coop_underground_spawn_block.vmf
- A detailed co-op entrance room, underground theme.
destruction
- dest_floor_02a_128x256.vmf
- A prop instance for use with destroyed-themed test chambers.
- destruction_ambience.vmf
- Several entities including an ambient_generic, env_shake, a logic_timer, and the other logic entites that make them work. All entities are parented to a func_tracktrain that moves around a very large square, which is used to give the impression that distant explosions are coming from different directions. For use with Wheatley-themed test chambers.
door
To be added soon.
elevator_scenes
- active_03.vmf
- A "junk stacked in elevator" scene. Used in sp_a2_column_blocker.
gameplay
To be added soon.
labs
To be added soon.
lights
Cool in filename means cool light (more blue), warm means warm light (more red) and neutral means white light (like sunlight).
off/low/med/high gives the intensity of light.
- bts_lightarray_warm_01_cheap.vmf
- bts_light_fluorescent _01_128a.vmf
- bts_light_fluorescent _01_128a_nolight.vmf
- bts_light_fluorescent _01_128a_off.vmf
- bts_light_fluorescent _01_128b.vmf
- bts_light_fluorescent _01_128b_background.vmf
- bts_light_fluorescent _01_128b_warm.vmf
- bts_light_fluorescent _01_128c.vmf
- light_panel_128_back.vmf
- light_panel_128_backstage_med.vmf
- light_panel_128_cool_high.vmf
- light_panel_128_cool_med.vmf
- light_panel_128_neutral_high.vmf
- light_panel_128_neutral_med.vmf
- light_panel_128_warm_high.vmf
- light_panel_128_warm_med.vmf
- light_panel_32x128_cool_med.vmf
- light_panel_32x128_cool_med_detail.vmf
- light_panel_32x128_neutral_med.vmf
- light_panel_32x128_neutral_med_damaged.vmf
- light_panel_32x128_neutral_med_detail.vmf
- light_panel_32x128_neutral_out.vmf
- light_panel_32x128_warm_med.vmf
- light_panel_32x256_cool_med.vmf
- light_panel_32x256_cool_med_detail.vmf
- light_panel_32x256_neutral_med.vmf
- light_panel_32x256_warm_med.vmf
- light_panel_32x512_cool_med.vmf
- light_panel_32x512_warm_med.vmf
- light_panel_64_back.vmf
- light_panel_64_backstage_med.vmf
- light_panel_64_cool_high.vmf
- light_panel_64_cool_low.vmf
- light_panel_64_cool_med.vmf
- light_panel_64_neutral_high.vmf
- light_panel_64_neutral_low.vmf
- light_panel_64_neutral_med.vmf
- light_panel_64_warm_high.vmf
- light_panel_64_warm_low.vmf
- light_panel_64_warm_med.vmf
- swinging_ceiling_light.vmf
- swinging_ceiling_light_off.vmf
- underground_fluorescent_1_cool.vmf
- underground_fluorescent_1_warm.vmf
- underground_hanging_light_1.vmf
- underground_hanging_light_2.vmf
- underground_lightarray_broken_01.vmf
- underground_lightarray_broken_02.vmf
- underground_lightarray_broken_03.vmf
- underground_lightarray_broken_04.vmf
- underground_lightarray_warm_01.vmf
- underground_lightarray_warm_01_cheap.vmf
- underground_lightarray_warm_02.vmf
- underground_lightarray_warm_02_cheap.vmf
- underground_lightarray_warm_03_cheap.vmf
- underground_light_panel_32x256_cool.vmf
- underground_light_panel_32x256_warm.vmf
- underground_light_wall01_cool.vmf
- underground_light_wall01_warm.vmf
- underground_light_wall01_warm_nobeam.vmf
- underground_smallspot_1_cool.vmf
- underground_smallspot_1_warm.vmf
- underground_spot_warm_01.vmf
monitors
- wheatley_bigscreen.vmf
- A wheatley monitor. Position flush into the wall, then trigger inputs to extend it. The instance contains logic to break the screen when cubes or players impact at high speeds,
- wheatley_studio.vmf
- A room containing a Wheatley actor and camera to display on monitors. Place one in every map, and send inputs to cause him to enter/leave the view or change the zoom. Wheatley will automatically perform animations in sync with any A4 choreo_scenes.
multiplayer
To be added soon.
signs
- info_sign_sp_clean.vmf
- The test chamber sign, clean theme.
- info_sign_sp_dirty.vmf
- The test chamber sign, destroyed/reconstructing themes.
test_chambers
- bday_antechamber.vmf
- The 'surprise' room from the game.
- sp_a3_speed_ramp_column.vmf
- An underground light-pylon.
- sp_a4_laser_cat_box_1_wall.vmf
- A wall in the Wheatly style, with a monster box and ledge-forimg panels.
- sp_trust_fling_1.vmf
- A large piece of func_detail, in the destroyed style.
transitions
- arrival_departure_transition_ents.vmf
- Contains entities for spawning in or transitioning between levels. Recommended for test chamber maps. To do: Page describing Portal 2 transition entities.
- transition_entry.vmf
- Nested in arrival_departure_transition_ents.vmf. Entities for transitioning into a test chamber. Contains info_player_start.
- transition_exit.vmf
- Nested in arrival_departure_transition_ents.vmf. Entities for transitioning from a test chamber.
tube_elevator
To be added soon.
turbine_elevator
there are two type of instance the departure and the arrival
- _base.vmf
- the XX_base.vmf is the structure of tube elevator, there are some different skin of the room (destroyed,clean,...) with 42 vgui_movie_display entities
- _logic.vmf
- the XX_logic.vmf is the motion of tube elevator, there are two version (come from up or down) contains some trigger to activate elevator sound or open first door of the map. there is a logic_script to call the video script for the vgui_movie_display in the XX_base.vmf
all this instance (logic and base) can be stick with the long block behind the structure of elevator
underground
- fadetodeath_goo.vmf
- Simple player_loadsaved instance, used to load the last saved game when falling into the goo.
- test_chamber_door.vmf
- Underground test chamber door.
- test_dome_interior_01.vmf
- 4096x4096 underground testing dome with surrounding sealing.
- test_dome_entrance_lift_01.vmf
- Underground entrance lift.
- test_dome_exit_lift_01.vmf
- Underground exit lift.
- trapdoor_cube_dropper.vmf
- Underground cube dropper.
p2editor
Instances used for the Puzzlemaker. These instances are quite complex and are not recommended for use outside of the Puzzlemaker's generated maps.
- arrival_departure_transition_ents.vmf
- Room containing the level start and exit triggers, for Portal 2's level start/stop system.
- barrier_hazard_base.vmf
- AND logic to control fizzler enabling/disabling. The fizzler/laserfield brushes themselves are generated by the PeTI.
- barrier_hazard_model.vmf
- An instanced version of the fizzler model, controled by the base instance.
- bot_disassembler_blue.vmf
- bot_disassembler_orange.vmf
- Modified versions of the Coop disassemblers used inside the coop_exit instance.
- bridge.vmf
- Instanced version of Hard Light Bridges.
- coop_dropper.vmf
- Player respawn dropper, with instance vsriables to set the team. Used inside the door_entrance_coop_1 instance.
- coop_exit.vmf
- Cooperative disassembly room, including worldportals to connect to the main level.
- cube_companion.vmf
- cube_monster.vmf
- cube_reflection.vmf
- cube_sphere.vmf
- cube_standard.vmf
- Instances to spawn the various dropperless cubes. Point_templates are used to allow the cubes to spawn in late, when the @relay_spawn_3 relay is triggered. This allows angled panels and light bridges to initialise without affecting the cubes.
- door_coop_exit_door.vmf
- A exit door with camera, and associated logic to lock it until both players are standing in front of it. Used by the door_exit_coop_*.vmf instances.
- door_entrance_1.vmf - door_entrance_7.vmf
- Various entry corridors randomly chosen for singleplayer maps. Use worldportals to connect to the elevator.
- door_entrance_coop_1.vmf
- The entry spawn room for coop maps. There is no worldportal in this instance, unlike the other entry/exit rooms.
- door_exit_1.vmf - door_exit_4.vmf
- Various exit corridors randomly chosen for singleplayer maps. Use worldportals to connect to the elevator. If $no_player_start is set to 0, the map will restart after reaching the corridor.
- door_exit_coop_1.vmf - door_exit_coop_4.vmf
- Various exit corridors randomly chosen for coop maps. Use worldportals to connect to the disassembler. If $no_player_start is set to 0, the map will restart after reaching the corridor.
- door_frame_black.vmf
- door_frame_white.vmf
- Door cutouts used with the entry/exit corridors to allow them to match the main map.
- elevator_arrival_logic.vmf
- elevator_departure_logic.vmf
- Logic used in the singleplayer elevators.
- elevator_entrance.vmf
- Singleplayer mode entry elevator. It contains the global_ents and global_pti_ents instances, and uses worldportals to connect to the main map. If $no_player_start is set to 0, the player will be teleported to just behind the entry door.
- elevator_exit.vmf
- Singleplayer mode exit elevator. It contains the arrival_departure instances, and triggers the Workshop vote page when the player enters the elevator. It also uses worldportals to connect to the main map.
- faith_plate_floor.vmf
- Aerial Faith Plate instance. Trigger inputs to cause it to fire angled or straight up.
- faith_plate_target.vmf
- Instance containing the bullseye decal used at the end of catapult trajectories.
- floor_ball_button_black.vmf and floor_ball_button_white.vmf
- floor_button_black_intact.vmf and floor_button_white_intact.vmf
- floor_cube_button_white.vmf and floor_cube_button_black.vmf
- The various weighted buttons placed on white/black raised sections.
- glass_128x128.vmf
- Dispite the name, used for both glass and gratings. Contains player and physics clips for use with gratings.
- glass_frame_left_convex_corner.vmf
- glass_frame_left_corner.vmf
- glass_frame_left_short.vmf
- glass_frame_left_straight.vmf
- glass_frame_right_convex_corner.vmf
- glass_frame_right_corner.vmf
- glass_frame_right_short.vmf
- glass_frame_right_straight.vmf
- Frame instances used to create the borders. These use the '
props_ingame/window_frame_system*
' models. Two instances are used per edge.
- global_ents.vmf
- Modified version of the normal global_ents instance, containing various global entities like fog and lighting controllers. The music ambient_generic is located here.
- global_pti_ents.vmf
- Instance used to control Workshop support. Required for all uploaded maps. It plays the random Cave quote at map spawn, and is used to trigger the vote screen at the end of levels. Set $disable_pti_audio to 1 to prevent the Cave line from playing, and trigger the @relay_pti_level_end to display the vote screen. The @relay_play_pti_audio relay can be enabled and triggered to play the audio at a later time if needed.
- goo_top.vmf
- Unused instance containing triggers to hurt players and destroy physics objects.
- indicator_panel.vmf
- Instance version of prop_indicator_panels. The entity is placed to appear 0.1 units above the mounted surface.
- indicator_toggle.vmf
- Instance version of env_texturetoggles. The $indicator_name variable must use a @targetname to work correctly.
- info_sign_sp_clean.vmf
- Duplicate of signs/info_sign_sp_clean
- item_dropper_monster.vmf
- Unused cubedropper instance that spawns Frankenturrets.
- item_dropper.vmf
- Cubedropper instance customised for PeTI. If $disable_autodrop is set to 0, it will dispense a cube when the @relay_spawn_on_entrance relay is triggered. The $indicator_lights variable is unused by the PeTI, but will function if given an @targetname value. $Cube_type values:
- 0: Standard
- 1: Companion
- 2: Reflection
- 3: Sphere
- 4: Antique (Not recommended)
- 6: FrankenTurret
- laser_catcher_center.vmf and laser_catcher_offset.vmf
- laser_emitter_center.vmf and laser_emitter_offset.vmf
- laser_relay_center.vmf and laser_relay_offset.vmf
- Versions of the Thermal Discouragement Beam devices. The offset versions are positioned inside the instance to appear on the side of the 128x128 block.
- lift_platform.vmf and lift_platform_oscillate.vmf
- Track platform instances. Set $travel_direction and $travel_speed to define the distance moved.
- lift_standalone.vmf
- Instance used for piston platforms. Very complex. Set $top_level and $bottom_level to between 0-5 to define the distance it moves in increments of 128 units.
- lift_track_bottom.vmf
- lift_track_bottom_grate.vmf
- lift_track_middle.vmf
- lift_track_top.vmf
- lift_track_single.vmf
- Instances used to create the track platform track. The grate instance is used when the platform has the bottom section fully enclosed.
- light_strip.vmf
- Version of the light strips for PeTI maps. The model is positioned to appear 0.1 units above the surface, allowing it to be placed without wall cutouts.
- observation_room_128x128_1.vmf
- observation_room_256x128_1.vmf
- The small and large observation rooms. When the @relay_lights_on relay is triggered these will light up. The large room contains an env_projectedtexture.
- paint_dropper_bomb.vmf
- paint_dropper.vmf
- Gel Dispensers. The PeTI creates a trigger_catapult in front of the paint bomb variant to target it onto the endpoint.
- paint_splat.vmf
- Instance for pre-placed gel. The info_paint_sprayer is named @pre_paint_sprayer, and is activated for 1 second during map start. In coop, this is activated by a trigger hidden inside ATLAS's player spawner.
- panel_black*.vmf and panel_white*.vmf
- Unused angled panel instances, likely originating before the angled surface was implemented as a PeTI-generated brush.
- panel_clear.vmf
- panel_nobrush.vmf
- Instances for regular and glass-covered angled panels. The $animation variable should be set to one of the 'ramp_##_deg_open' animations, where ## = 30,45,60 or 90 degrees. The regular panel's brush is generated by the PeTI in addition to a logic_auto to set the parent attachment.
- panel_flip.vmf
- Logic to control flip panels. The func_door_rotating is generated by the PeTI.
- panel_piston.vmf
- Unused instance, appearing as a panel extended outward on a piston.
- pedestal_button.vmf
- Instanced version of prop_buttons. The small platform the button is placed on is generated by the PeTI. If set to infinite time the $timer_delay variable will be set to '99999999999'.
- placement_helper.vmf
- An info_placement_helper, which is used for Gel Droppers. This is not connected propertly to the dropper inputs, so much of the logic is unnecessary.
- point_light.vmf
- Ambient lighting instance placed randomly throughout the map.
- stairs.vmf
- The instance used for stair panels.
- tbeam_frame_black.vmf and tbeam_frame_white.vmf
- Used to allow the Excursion funnel to match the wall surface.
- tbeam.vmf
- The instance for Excursion Funnels.
- transition_entry.vmf
- transition_exit.vmf
- Instances used for the arrival/departure transition instance.
- turret.vmf
- Instance for Turrets. Similar to cubes, Point_templates are used to allow the turret to spawn in late, when the @relay_spawn_3 relay is triggered. This allows angled panels and light bridges to initialise without knocking the turret over.