Portal.fgd

From Valve Developer Community
Jump to navigation Jump to search

This is the Hammer FGD from Portal Portal. This FGD file can be located here: File...\common\Portal\bin\portal.fgd

FGD

This is a text file used internally by a Valve Software technology, such as GoldSrc GoldSrc, Source Source, and/or Source 2 Source 2 engine.
To save this to a file, copy the following text into a text editor such as Notepad++ Notepad++, and save it with "save as type" being "all files" and .FGD appended to the file name. Then open the file in the appropriate tool.
Tip.pngTip:Select the beginning of the line (usually the "//" comment) by clicking it, scroll down then hold Shift, and click at the end of the line to select all.


portal.fgd
Forge Game Data
///====== Copyright © 1996-2005, Valve Corporation, All rights reserved. ======= // // Purpose: Portal game definition file (.fgd) // ///============================================================================= @include "halflife2.fgd" ///============================================================================= // // Logical Entities // ///============================================================================= @PointClass base(CombineBallSpawners, Parentname, Targetname) = point_energy_ball_launcher : "Launches energy balls." [ BallLifetime(float) : "Ball Lifetime" : 12 : "The time in seconds the ball will live before self-destructing. A negative value will give infinite life." MinLifeAfterPortal(float) : "Min life after portal transition" : 6 : "When energy balls created by this launcher pass through a portal and their life is refreshed to be this number at minimum." // Inputs input LaunchBall(void) : "Launch a ball from the spawner." // Outputs output OnPostSpawnBall(void) : "Fired after the ball has spawned." ] @PointClass base(Parentname, Targetname, Angles) studio( "models/props_bts/rocket_sentry.mdl" ) = npc_rocket_turret: "Aims a rocket at a target." [ spawnflags(Flags) = [ 1: "Disabled" : 0 ] input Toggle(void) : "Toggles activity." input Enable(void) : "Enables activity." input Disable(void) : "Disables activity." input SetTarget(string) : "Sets the target for this turret to attack." input Destroy(void) : "Sets this turret to it's destroyed state." output OnFoundTarget(void) : "Fired when the rocket turret finds an unobstructed target." output OnLostTarget(void) : "Fired when turret's target is blocked." output OnDeath(void) : "Fired after this turret finishes it's destroy think and begins it's death think." ] @PointClass base(Targetname, Parentname, Angles) cylinder(255 255 255, targetname, target, radius, targetname, targetname, radius) color(255 192 0) size(16 16 16) = env_portal_path_track : "An entity used to build paths for other entities to follow. Each path_track is a node on the path, each holding the name of the next path_track in the path." [ spawnflags(Flags) = [ 1: "Disabled" : 0 2: "Fire once" : 0 4: "Branch Reverse" : 0 8: "Disable train" : 0 16: "Teleport to THIS path track" : 0 ] Track_beam_scale(float):"Scale Track FX": 0 :"The amount to scale the track FX size" End_point_scale(float) : "Scale Endpoint FX" : 0 : "The amount to scale the endpoint FX size." End_point_fadeout(float):"Fade Out Endpoint": 0 :"Amount of time to fade out the endpoint FX" End_point_fadein(float):"Fade In Endpoint": 0 :"Amount of time to fade in the endpoint FX" target(target_destination) : "Next Stop Target" :  : "The next path_track in the path." altpath(target_destination) : "Branch Path" : : "An alternative path_track to be the next node in the path. Useful for making branching paths. Use the ToggleAlternatePath / EnableAlternatePath inputs to make the alternative path active." speed(float) : "New Train Speed" : 0 : "When the train reaches this path_track, it will set its speed to this speed. "+ "This speed must be a positive value that is less than the train's max speed. A value of 0 will cause no change in the train's speed." radius(float) : "Path radius" : 0 : "Used by NPCs who follow track paths (attack chopper/gunship). This tells them the maximum distance they're allowed to be from the path at this node." orientationtype(choices) : "Orientation Type" : 1 : "The way that the path follower faces as it moves through this path track." = [ 0 : "No change" 1 : "Face direction of motion" 2 : "Face this path_track's angles" ] // Inputs input ToggleAlternatePath(void) : "Cause the track to toggle to/from its alternate path." input EnableAlternatePath(void) : "Enable the alternate path of the track." input DisableAlternatePath(void) : "Disable the alternate path of the track." input TogglePath(void) : "Cause the track to toggle on/off/" input EnablePath(void) : "Enable the track." input DisablePath(void) : "Disable the track." input ActivateTrackFX(void) : "Turn on the track's fx beam" input ActivateEndPointFX(void) : "Turn on the endpoint's fx" input DeactivateTrackFX(void) : "Turn off the track's fx beam" input DeactivateEndPointFX(void) : "Turn off the endpoint's fx" // Outputs output OnPass(void) : "Fired when any entity following this path passes this path_track node." ] ///============================================================================= // // Brush Entities // ///============================================================================= @SolidClass base(Trigger, Targetname) = trigger_portal_cleanser : "A trigger volume that disolves any entities that touch it and fizzles active portals when the player touches it." [ // Outputs output OnDissolve(void) : "Fired whenever an entity is dissolved." output OnFizzle(void) : "Fired whenever an portals are fizzled." output OnDissolveBox(void) : "This cleanser disolved an entity with targetname=Box." ] @SolidClass base(Targetname, Parentname, EnableDisable ) = func_portal_orientation : "Adjusts a portal's rotation to match a specified angle. The 'Bottom' of the portal points in the specified diretion." [ AnglesToFace(angle) : "Angles to face" : "0 0 0" : "The 'floor' of the portal pair linkage will be in this direction." MatchLinkedAngles(choices) : "Match linked angles." : 0 : "If set, portals placed in this volume will have their angles match their linked portals. This only works for floor or ceiling portals with a currently linked partner."= [ 0 : "False" 1 : "True" ] ] @SolidClass base(Targetname) = func_weight_button : "A button which activates after a specified amount of weight is applied" [ WeightToActivate(float) : "Amount of weight required before this button activates." //Outputs output OnPressed(void) : "Fired when the button is touching enough weight." output OnReleased(void) : "Fired when the button was pressed, but weight was removed." ] @SolidClass base(Targetname, Parentname) = func_noportal_volume : "A region in which no portal can be placed" [ //Inputs input Deactivate(void) : "Turn off blocking functionality" input Activate(void) : "Turn on blocking functionality" input Toggle(void) : "Toggle blocking functionality" spawnflags(Flags) = [ 1: "Start inactive" : 0 ] ] @SolidClass base(Targetname, Parentname) = func_portal_bumper : "A region that portals trace to fit outside of but can be place on" [ //Inputs input Deactivate(void) : "Turn off bumping functionality" input Activate(void) : "Turn on bumping functionality" input Toggle(void) : "Toggle bumping functionality" spawnflags(Flags) = [ 1: "Start inactive" : 0 ] ] @SolidClass base(Targetname, Parentname) = func_portal_detector : "A region that fires an output if a portal is placed in it" [ //Inputs input Disable(void) : "Turn off detecting functionality" input Enable(void) : "Turn on detecting functionality" input Toggle(void) : "Toggle detecting functionality" output OnStartTouchPortal1(void) : "Fired when portal 1 is placed intersecting the portal detector." output OnStartTouchPortal2(void) : "Fired when portal 2 is placed intersecting the portal detector." output OnStartTouchLinkedPortal(void) : "Fired when linked portal is placed intersecting the portal detector." output OnStartTouchBothLinkedPortals(void) : "Fired when both of a pair of portals is placed intersecting the portal detector." spawnflags(Flags) = [ 1: "Start inactive" : 0 ] LinkageGroupID(integer) : "Portal pair ID that it detects" : 0 ] @SolidClass base(Origin, Angles) = func_liquidportal : "A space that fills with portal liquid and teleports entities when done filling" [ InitialLinkedPortal(string) : "Linked liquid portal." FillTime(float) : "Fill Time (sec)" : 10 : "How long the volume takes to fill in seconds." //Inputs input SetLinkedLiquidPortal(string) : "The liquid portal this should link to. Will update linked portal to point back." input SetFillTime(float) : "How long the area takes to fill." input StartFilling(void) : "Start filling NOW. Entities teleport when finished." input AddActivatorToTeleportList(void) : "Add the activator entity to the list of entities to teleport when filling is finished." input RemoveActivatorFromTeleportList(void) : "Remove the activator entity from the list of entities to teleport when filling is finished." ] ///============================================================================= // // Model Entities // ///============================================================================= @PointClass base(Targetname, Angles) studio("models/portals/portal1.mdl") = prop_portal : "A portal" [ Activated(choices) : "Start Activated" : 1 : "An inactive portal will not be drawn and will not teleport entites" = [ 0 : "Inactive" 1 : "Active" ] PortalTwo(choices) : "Portal Number" : 0 : "A portal has to logically be either portal 1 or portal 2" = [ 0 : "Portal 1" 1 : "Portal 2" ] LinkageGroupID(integer) : "Portal pair ID that it belongs to" : 0 input SetName(string) : "Naming your portals is fun" input SetActivatedState(bool) : "An inactive portal will not be drawn and will not teleport entites" input Fizzle(void) : "Makes a cool visual fizzle and properly shuts down the portal" input NewLocation(string) : "Sets this portals location and angles. This expects 6 floats with space delimiters, the format is 'x y z pitch yaw roll'" output OnPlacedSuccessfully(void) : "When a portal is placed without failure, this output is fired." ] @PointClass base(Weapon,Targetname, Parentname) studio("models/weapons/w_portalgun.mdl") = weapon_portalgun : "Portalgun" [ CanFirePortal1(choices) : "Can Fire Portal 1" : 1 : "Can this portalgun create blue portals?" = [ 0 : "No" 1 : "Yes" ] CanFirePortal2(choices) : "Can Fire Portal 2" : 1 : "Can this portalgun create red portals?" = [ 0 : "No" 1 : "Yes" ] input ChargePortal1(void) : "Does charge up effect for mounted portalgun." input ChargePortal2(void) : "Does charge up effect for mounted portalgun." input FirePortal1(void) : "Projects portal 1 onto a wall in the facing direction of the gun." input FirePortal2(void) : "Projects portal 2 onto a wall in the facing direction of the gun." input FirePortalDirection1(vector) : "Fires portal 1 in the specified direction." input FirePortalDirection2(vector) : "Fires portal 1 in the specified direction." output OnFiredPortal1(void) : "Fires when the first (blue) portal is fired." output OnFiredPortal2(void) : "Fires when the second (red) portal is fired." ] @PointClass base(npc_turret_ground) studio( "models/combine_turrets/ground_turret.mdl" ) = npc_portal_turret_ground : "Combine (Portal) ground turret" [ ConeOfFire(float) : "Cone of Fire" : 60 : "Cone of fire in degrees." ] // Cores of GlaDOS computer. Resemble little eyeballs with handles. These play lines and look around when near the player. @PointClass base(BasePropPhysics) studioprop() studio( "models/props_bts/glados_ball_reference.mdl" ) = prop_glados_core : "Core of GlaDOS computer." [ CoreType(choices) : "Core Personality" : 1 : "Which personality VO set the core is set to." = [ 0 : "Curious" 1 : "Aggressive" 2 : "Crazy" 3 : "None" ] DelayBetweenLines(float) : "Pause (in secs) between VO Lines." : "0.4" : "When the core is talking, this is the number of seconds delay between it's spoken lines." input Panic(void) : "Core is near death, panic." input StartTalking(void) : "Start playing lines, play looking animations." output OnPlayerPickup(void) : "Player picked up core." ] @PointClass base(npc_turret_floor) studio( "models/props/turret_01.mdl" ) = npc_portal_turret_floor : "Combine (Portal) Floor Turret" [ DamageForce(choices) : "Damage pushes player" : 1 : "Being hit by this turret will push the player back." = [ 0 : "No" 1 : "Yes" ] input FireBullet(string) : "Causes the turret to instantly fire at the specified entity." ] @PointClass base(Targetname, Angles, Studiomodel) studio( "models/props/security_camera.mdl" ) = npc_security_camera : "Security Camera" [ spawnflags(Flags) = [ 32 : "Autostart" : 1 ] // Inputs input Enable(void) : "If closed, open." input Disable(void) : "If open, close." input Toggle(void) : "Toggle - If open, close. If closed, open." input Ragdoll(void) : "Disable and fall off the wall." // Outputs output OnDeploy(void) : "Camera is becoming active and dangerous." output OnRetire(void) : "Camera is becoming inactive and harmless." ] @PointClass base(Targetname, Angles, Studiomodel) studio( "models/props/telescopic_arm.mdl" ) = prop_telescopic_arm : "Telescopic Arm" [ input Enable(void) : "Enable Thumper" input Disable(void) : "Disable Thumper" input SetTarget(string) : "Set the entity to target." input TargetPlayer(void) : "Set the player as the entity to target." output OnFoundTarget(void)  : "Arm has direct LOS to target entity." output OnLostTarget(void)  : "Arm has lost direct LOS to target entity." ] @PointClass base(Targetname, Angles, Parentname, Global) studio( "models/props/Round_elevator_body.mdl" ) = prop_portal_stats_display : "Portal Stats Display" [ input Enable(void) : "Turn on and display the current stats" input Disable(void) : "Turn off stats display" input UpdateStats(void) : "Updates the stats to the player's current level stats" input ResetPlayerStats(void) : "Resets the curret level stats of the player" output OnMetPortalObjective(void)  : "Fired when enabled and player met the number of portal placements." output OnMetStepsObjective(void)  : "Fired when enabled and player met the number of foot steps." output OnMetSecondsObjective(void)  : "Fired when enabled and player met the number of seconds." output OnFailedAllObjectives(void)  : "Fired when enabled and player met no objectives." ] @PointClass base(Targetname, Angles, Parentname) studio("models/editor/axis_helper_thick.mdl") = vgui_neurotoxin_countdown : "Neurotoxin Countdown" [ width(integer) : "Panel width" : 256 : "Width of the panel in units." height(integer) : "Panel height" : 128 : "Height of the panel in units." input Enable(void) : "Make slideshow visible." input Disable(void) : "Make slideshow invisible." ] ///============================================================================= // // Special Effects // ///============================================================================= @PointClass base(Angles,Targetname,Parentname) = env_lightrail_endpoint : "Special effects for the endpoints of the lightrail." [ spawnflags(Flags) = [ 1 : "Start On (w/ Small FX)" : 0 //2 : "Start With Large FX" : 0 ] small_fx_scale(float) : "Scale Small FX" : 1 : "Scale of the small effect. 1 is the default size, 2 is twice that, etc." large_fx_scale(float) : "Scale Large FX" : 1 : "Scale of the large effect. 1 is the default size, 2 is twice that, etc." // Inputs input StartCharge(float) : "Start charging the endpoint from the small to large state over a specified amount of seconds." input StartSmallFX(void) : "Start discharging particles at the small effects state over specified number of seconds." input StartLargeFX(void) : "Start discharging particles at the large effects state over specified number of seconds." input Stop(float) : "Stops the effect at any point." ] ///============================================================================= // // Credits // ///============================================================================= @PointClass base(Targetname) size(-8 -8 -8, 8 8 8) = env_portal_credits : "An entity to control the rolling credits for portal." [ // Inputs input RollCredits(void) : "Start the intro credits rolling." input RollOutroCredits(void) : "Start the outro credits rolling." input ShowLogo(void) : "Show the HL2 logo." input RollPortalOutroCredits(void) : "Start the Portal greenscreen outro credits." // Outputs output OnCreditsDone(void)  : "Fired when the credits having finished rolling." ] ///============================================================================= // // Normally Obsolete.. // ///============================================================================= @PointClass base(Targetname, Parentname) iconsprite("editor/info_lighting.vmt") = info_lighting_relative [ LightingLandmark(target_destination) : "Lighting Landmark" :  : "Entity at which the reference origin is contained. " + " If empty, the info_lighting_relative's origin will" + " be used." ]