Creating A GPellet mechanism

From Valve Developer Community
Jump to: navigation, search

The raTTail Gravity-Pellet (or GPellet for short) is a custom test element designed by KatzRool using the Portal 2 Authoring tools. It (The Dropper) drops a ball of energy that glows, hums, explodes on contact with any surface, destroys physics objects and activates the GPellet Receiver.

Downloads

To get the necessary files for the GPellet, download this zip file (Dropbox Link) and follow the readme.txt inside the *.zip to install.

Creation:

These are the steps to creating a GPellet mechanism with a Dropper and Receiver. Modify the instances as required.

Dropper

  • Outputs are in the format My output named\Target entities named\Via this input\With a parameter override of\After a delay in seconds of\Fire once only?
  • Placement
  1. Create a room with 32 Unit thick walls.
  2. Use the Clipping tool to cut a 128*128 hole in the CEILING. This has to have a Portalable surface below it.
  3. Create a func_instance with the entity tool and place it in the centre of the hole from the top view. Set the Fix Up Name value to (droppernamehere), I'll be using gdropper_01 for this tutorial. Then, set the VMF Filename value to instances/gameplay/gpellet_dropper_normal.vmf. Adjust the instance so that the brush is flush with the ceiling.
  • Logic
  1. If you want to have the dropper start enabled, create a logic_auto with this output: OnMapSpawn\gdropper_01\instance:logic_enable;Trigger\<none>\0\No
  2. If however you wish for the dropper to be toggleable then do the following: Create a toggleable trigger (I'll be using a prop_floor_button for this). The button will have the outputs: OnPressed\gdropper_01\instance:logic_enable;Trigger\<none>\0\No and OnUnPressed\gdropper_01\instance:logic_off;Trigger\<none>\0\No.
  3. To PERMANENTLY disable the dropper, with no re-enabling (use this when the receiver has been activated) create an output on any entity: (output)\gdropper_01\instance:logic_disable;Trigger\<none\0\No.
  4. To use the dropper you need to use a prop_button entity or anything that has a second output exactly one second after the first output. If you use a prop_button, always set the Delay before reset value to 1. Create two outputs from the prop_button: OnPressed\gdropper_01\instance:logic_dropper_open;Trigger\<none>0\No and OnButtonReset\gdropper_01\instance:logic_dropper_close;Trigger\<none>\0\No.
  • Now test the dropper!

Receiver

  • Outputs are in the same format as in the previous item's tutorial.
  • Placement
  1. You should already have a room and/or complex from the previous item's tutorial.
  2. Use the Clipping tool to cut a 128*128 hole in the surface that you want the receiver to be.
  3. Create a func_instance with the entity tool and place it in the centre of the hole from the top view. Set the Fix Up Name value to (receivernamehere), I'll be using greceiver_01 for this tutorial. Then, set the VMF Filename value to instances/gameplay/gpellet_recieve.vmf. (Note that the spelling mistake of receive is the actual name of the instance.) Adjust the instance so that the brush is flush with the surface.
  • Logic: (This part is much more simple than the dropper.)
  1. Create a logic_relay with the name receive_logic_out_01.
  2. Create an output from the func_instance: instance:receive_logic;OnTrigger\receive_logic_out_01;Trigger\<none>\0\No
  3. Create an output from receive_logic_out_01: OnTrigger\gdropper_01\instance:logic_disable;Trigger\<none>\0\No (This permanently disables the dropper).
  4. Now create your desired outputs from receive_logic_out_01 and happy mapping!
  • Thanks, and have fun!