Respawning Items

From Valve Developer Community
Jump to navigation Jump to search
English (en)Español (es)Translate (Translate)

This is a tutorial for creating respawning items that can be either placed at a position, or dropped from the sky.

Step by step

First, create your room however you want it, or open up an existing map.

Entities

The following entities will be used:

Item templates

Now, place into the level the item you want to spawn (e.g., item_healthkit) and name it spawned1.

Place near a point_template, name it template1 and set the Template 1 property to spawned1.

Repeat this process for every other item you want to be able to spawn, remembering to use different names (e.g., spawned1 becomes spawned2 and template1 becomes template2).

Add your entity makers

Place around your map a number of env_entity_maker entities. The first one should be named spawner1 and each should be named in a consecutive manner (i.e., spawner1, spawner2, spawner3 and so forth).

Each of these should have their Point_template To Spawn property set to the template you want to spawn (e.g., template1).

Add your logic_case

The logic_case entity will contain a list of all the env_entity_maker entities, and will be used to make the entities spawn.

Begin by naming your logic_case logic_spawner and giving a value to each Case xx property. You can simply put a number in each, counting upwards. Only put as many values in as you have env_entity_maker entities though.

On the Output tab, add an output for each env_entity_maker you have. Set each to a different OnCaseXX output, and put the name of the env_entity_maker you want to spawn in the target field (e.g., spawner1) and set the input to be ForceSpawn.

Add your timer

The logic_timer will be used to make each item spawn. It works by using the PickRandomShuffle input of the logic_case.

Add your logic_timer and set Start Disabled to No. Under Refire Interval set the delay (in seconds) of how often you would like your items to spawn. For testing purposes, I used a value of 2.

Add the following output to your logic_timer:

My output named: OnTimer
Target entities named: logic_spawner
Via this input: PickRandomShuffle

Creating props that only respawn after they have been destroyed (only works in Half-Life 2: Deathmatch)

To create a prop which will respawn once it has been destroyed, simply follow these quick and easy steps. Please note that in this example we will be using the explosive oildrum prop as it's the simplest prop to destroy. Note that this tutorial is written for the newest of hammer users and may seem a little drawn out. In an effort to expedite the completion of this tutorial for users more experience with hammer I have made the numbers of the most key steps bold.

1) Select the Entity tool

2) In the box on the right side of your screen, that has the words "to world" and "to entity" above it you will see some text describing the current type of entity selected. In that box type: prop_physics_respawnable.

3) Select what the prop will look like by opening it's properties (select it and press Alt+ Enter), then clicking on world model and then clicking on browse.

4) In the bottom of the new window that opens up, there is box labeled "filter" type in oildrum. Select the oildrum001_explosive prop. Then click on "apply"

5) If you have closed the prop's property window, reopen it by pressing Alt+ Enter. In this window you will see a column on the left. Scroll to the bottom, where you will see "respawn time". Click on that and on the right side of the window you will see a value of 60. Set it to whatever time period you desire or leave it as is. Once again, click "apply".

6) You're done. That's it. Easy right?

Creating weapons that only respawn after they have been picked up/used (only tested in Garry's Mod)

1) Create the weapon that you want to use. Place it where you want it to be placed in the level. Give it the name "spawnedgun"

2) Create an env_entity_maker and put it in the same place as your gun. Give it the name "spawngun"

3) Create a point_template near your other entities and give it the name "tempgun". Go back to your env_entity_maker and put "tempgun" under "Point_template To Spawn"

4) Go to your point_template and under Template 1 put "spawnedgun"

5) Go to your gun and set an output to "OnPlayerPickup" with the Target Entity to "spawngun" and the input of "ForceSpawn". You might want to add a delay.

Test your map

Compile and test your map.