This technique uses only 3 timers and the 1 weapon spawn - and have a respawn time of whatever value you want. To accomplish this, simply follow these four steps: Timer: On Once: Broadcast Channel 0, Timer/User Data 10 Timer: On: Power Channel 0, Broadcast Channel 1, Timer/User Data x (substitute x for whatever weapon repawn time you want in seconds) Timer: Off Once: Power Channel 1, Broadcast Channel 1, Timer/User Data 1 Your weapon of choice: Spawn Time Never, Place at Start True, Max Count 16, Spawn Channel 1, Can Despawn False And that's it! So what's happening here? The first Timer On Once is just to kick off our other timer once the game has actually started, allowing 10 seconds for the Deploying countdown. The Timer On is our looping timer that's turning on channel 1 every time you want your weapon to spawn The Timer Off Once is turning our spawning channel back off again a second after it's been turned on - it's basically acting as a reset for our looping timer. The weapon we want to spawn has spawn time set to never, so that it is only spawned in by the scripting, it's set to place at start true (not false) because we do want it to spawn in at the beginning of the game - ignoring our spawning channel at the beginning; it's Max Count is at 16 so that whenever our respawn time expires, another one will spawn in regardless of whether a player is already holding one equipped; and then finally we setup its Spawn Channel to 1, and have its Can Despawn set to false (not true) because we don't want to force-despawn the weapon when we turn the channel back off again a second later. Note: Left like this, the weapon will only respawn if the previous one has been picked up (this won't affect the timers, it just means it will skip-over that spawn because the weapon hasn't moved). Personally I would say that this is a good thing, but if you really really want the next one to spawn in, regardless of whether the previous one was picked up (and thus stacking them on top of each other!), then you just need to Drop Spawn the weapon, so that the next one has space to spawn in even if the previous one is still sitting there. That covers the basics of creating static spawning weapons with scripting. There is some further clarification later in the thread that covers: How to make timers longer than 100 seconds How to make weapons spawn at different times (ex: OS-60 seconds, Sniper-90 seconds, Camo-120 seconds) credit @buddhacrane Here's a video walkthrough of the process: This thread originally featured a more complicated technique for creating static spawning weapons that was discovered by a different person shortly after TMCC was released. To read through it, click on the spoiler tab below. original post: Spoiler EDIT: Actually realized I made things more complicated than necessary, so I'm going to add the simpler way up here. As long as you don't need any 30 second spawns (such as a 2:30 sniper) then this system will work for every weapon on your map. 1: you still need to place a weapon on the map for each time it can spawn. So a 3 minute rocket would need to be placed 5 times, or 6 if its at start. So basically the best way to do it is to place 15 timers (or 30 if you want a 30 minute gametype) of the On Once variety. Set the first timer to spawn at start, its Broadcast Channel to 1, and its time to 60. Duplicate it and set the new timers Spawn channel to 1, Broadcast Channel to 2, spawn at start false, and Can Despawn to TRUE. Now duplicate this timer so that you have 15 (or 30) total timers, each time setting the broadcast channel and spawn channel one higher. This will create a timer chain that will go off every minute. Now when you do your weapon placements you need to simply set the weapons spawn channel to the minute on which it spawns. For example a three minute rocket would have 5 placements (a sixth if you want it to spawn at start, which you should know how to do). The first one would be set to channel 3, second set to 6, then 9, then 12, then 15. This would make it spawn at 12:10, 9:10, 6:10, 3:10, and 0:10. If you want a 30 second timer you can simply substitute the system above for 30 second timers instead of 60 second ones. This would require 30 timers for a 15 minute game and 60 timers for 30 minute games, which there is just enough to do. Or you can simply make another string of timers that spawn based on those 1 minute timers that are 30 seconds long. EASIER METHOD ABOVE! Thanks to OAK for figuring out how to place weapons in H2A on a static timer. Read below for his article: So for those that don't know, drop spawning weapons no longer creates a static timer like in previous games. So I spent the better part of yesterday coming up with a system in forge that allows for weapons to have static timers. I'll start with saying that the timers are not 100% accurate throughout the game. The first few will spawn at exactly x:10 and then a few will spawn at x:09, and then eventually x:08. However these times themselves are 100% consistent. So if for example the fourth snipe spawns in at x:09 on the map, the fourth snipe will ALWAYS spawn at x:09. Now im sure with some tweaking that the system could become completely accurate throughout the game, but I wanted to release the method of accomplishing this so that people could start making maps with static timers. Something else to note is that this won't work in most cases on gametypes more than 15 minutes long. So CTF/Bomb overtime would need to be a reset with first cap/plant wins. I'm going to go through spawning a powerup that isn't there at start on the map every minute and then explain a three minute sniper quickly after. Part One: Weapon Placement and settings The first thing you need to do is place the camo on the map. Set it to spawn never and set it to not spawn at start. Now go into its SCRIPTING tab and set its spawn channel to 0 and set the "Can Despawn" setting to TRUE. This will allow for the scripting objects we will add next to actually spawn the object. Now since this is a 1 minute powerup and games are 15 minutes long the powerup will spawn a total of 15 times in the match. So you need to duplicate the powerup 14 times. Each time going into its scripting and changing the spawn channel to the next one up. So the last powerup should have a spawn channel of 14 in this example, since the first one is 0. That's it for placing the powerup now we have to place the scripting objects. Part Two: SCRIPTING, SCRIPTING, SCRIPTING! Scripting objects come in three different varieties, each with different functionality. What we are interested in right now is TIMERS. All a timer is is an invisible object that activates something else after so much time. The "broadcast channel" decides what it activates. Now you'll notice that when you go into timers that there are several different kind, the one we need is the "Timer: On Once". The entire system will work using these. Spawn one of them and go into its settings and the scripting tab. Set its broadcast channel to 0 and its timer to 60. After that step, the first powerup will spawn 60 seconds into the map but the rest do not. So let's set that up now. Duplicate the timer you just setup and go into its settings and Advanced tab. Set place at start to false and make sure its spawn time is never. Now go into the scripting tab and set its spawn channel to 0, "Can Despawn" to true and its broadcast channel to 1. If you were to save and test it now in a custom game, the first two powerup would spawn correctly at 14:10 and 13:10. From here you need to duplicate the timer we just made (the one that can be despawned) and change the spawn channel and broadcast channel by 1 each time. So the last one should have a spawn channel of 13 and a broadcast channel of 14. After this the powerup will spawn at X:10 for the entirety of the match. Now you may have noticed that the powerup is completely consistent at its X:10 time even though I said that they eventually became later as time went on. This is actually because anything that will spawn 100 seconds or sooner will always be accurate to the time. Its when you get into longer spawn timers that it gets inaccurate. So lets setup a sniper that spawns every three minutes. Part Three: It Gets Complicated So now we want a sniper that spawns at start, every three minutes, for a 15 minute long game. Should be simple, I just have to copy the system for the powerup and all should be good right? Nope, timers can only go up to 100 seconds, not long enough for our 3 minute spawn time. So what do we do? Simple: TIMERCEPTION! First off place a sniper that is set to never respawn and is place at start. This is the first sniper of the game. Alright spawning at start is done, now for the three minute spawn. Duplicate the sniper and change it to not spawn at start and then go to scripting tab. Set its spawn channel to 15 (0-14 are being used by the powerup remember!) and set "Can Despawn" to TRUE. Now duplicate this 5 times (15 minute game divided by 3 minute timer equals 5 spawns) each time setting the spawn channel to one higher, so the last one should have a spawn channel of 19. Now this is where it gets complicated. In order to do three minute timers we need each spawn of the sniper to have three timers. One timer that spawns the second timer which spawns the sniper and the next timer for the next sniper spawn. So basically spawn a "Timer On Once" and go to its scripting. Set its broadcast channel to 63 and its timer to 89 (the timers wont add up to 180, this makes them more consistent overall) now duplicate this timer. Set the new one to not spawn at start and then go into its scripting. Set "Can Despawn" to TRUE and set its spawn channel to 15 and its broadcast channel to 62 and its timer to 20. Duplicate this timer settings the spawn channel 1 higher and the broadcast channel 1 lower each time. Now you will want to experiment with the time on each of these timers you are making to get more consistency, but a good starting point is to make every other timer 89 seconds instead of 90. But like I said, experiment with it. Now we need another set of On Once timers. Spawn the first one and set it to not spawn at start. Go to scripting and set its spawn channel to 63 and "Can Despawn" to TRUE, broadcast channel to 15 and its timer to 90. Duplicate it and set its spawn channel one lower and its broadcast channel to 1 higher each time until you have enough for each spawn of snipe. Do not change the time from 90. Now assuming that you followed directions and that I didn't forget to put something in here, all should work in a custom game. If not then make sure you followed the steps right and if you did let me know i must have missed something. Now if you don't want an explanation of the system feel free to not read the rest. Part Four: The Explanation So the 100 second or less timer is pretty straightforward. Basically every x seconds (60 in our case) the timer spawns a powerup and another timer. Then that timer does the same and the chain continues. Like I said, pretty straightforward. The 101 seconds or higher timers are much more complicated. Basically what happens is that the first timer is set to something (90/89 in our case) which spawns another time which does the rest of the spawn time of the weapon (90 in our case, making a 180 timer total) and then spawns the weapon and another timer. This timer is the first timer for the second weapon, and will spawn the second timer after time has passed and that timer will spawn the weapon and another time and the chain will continue. Somewhere along the line these timers will get to be a second or two late, which is why some of the timers are set to be a second shorter. More experimentation can probably find a way to create perfectly accurate timers for the entirety of the game, but for now this system works incredibly well. Now hopefully I put everything need in here, but just in case I didn't I have created a version of Lockout with a camo in green tunnel on 1 minute, sniper on 2 minutes, and sword on 3 minutes. All static timers. It is available on my file share. As far as I know there is no way to get the map other than in game, so my gamertag is Honey Bauer.
Is it me, or did putting a repeating weapon spawn, get much more complicated in this version of forge?
This spawn guide is great, but it could be simplified and cleaned up a bit. Following the guide word for word doesn't net the exact results it's advertising, but fortunately it doesn't take much tweaking to get right. The big part the guide left out was the weapons have to be "Place at Start: False", "Respawn Time: Never" and "Can Despawn: True". Another caveat, don't pick up any of these weapons as a player model in forge! Doing so causes a hard despawn of the object and you'll have to spawn new copies and code them all over again. My tip, work out the channels and corresponding time for the items to spawn in an Excel sheet. Cheers!
Why not just have the rockets set to respawn at 180 seconds? Isn't that the same as a 3 minute timer? Or is that not "static" because it depends on when it is picked up? Also, what if you set the rockets to spawn every 3 minutes and no one picks them up after the first 3 minutes? Won't there be 2 sets of rockets now?
That wouldn't work. It'd be a dynamic timer, and it's respawn time would be influenced by when it was picked up or despawned. Not even the old fashioned MLG trick of drop spawning works for static timers. In this method, if no one picks up the Rockets come the next spawn timer, a second one will still spawn. In fact, if no one ever picks up rockets, it'll keep spawning every three minutes. That's the beauty of this method, nothing will alter the time in which the weapon or powerup spawns. It's perfectly consistent.
Just used this guide to setup a static spawning weapon and powerup on my map, without having looked at scripting at all previously. Worked perfectly!
So, I just happened to take a look at this out of curiosity. As a puzzle map maker, static weapons aren't exactly something I'm generally concerned with; but I decided to check this out anyway. So this technique is a tad over-complicated for what you're trying to achieve here. You can achieve the same result using only 3 timers and the 1 weapon spawn - and have a respawn time of whatever value you want. This would help save your map's object count limit. So how do you do this? Well, you just create the following: Timer: On Once: Broadcast Channel 0, Timer/User Data 10 Timer: On: Power Channel 0, Broadcast Channel 1, Timer/User Data x (substitute x for whatever weapon repawn time you want in seconds) Timer: Off Once: Power Channel 1, Broadcast Channel 1, Timer/User Data 1 Your weapon of choice: Spawn Time Never, Place at Start True, Max Count 16, Spawn Channel 1, Can Despawn False And that's it! So what's happening here? The first Timer On Once is just to kick off our other timer once the game has actually started, allowing 10 seconds for the Deploying countdown. The Timer On is our looping timer that's turning on channel 1 every time you want your weapon to spawn The Timer Off Once is turning our spawning channel back off again a second after it's been turned on - it's basically acting as a reset for our looping timer. The weapon we want to spawn has spawn time set to never, so that it is only spawned in by the scripting, it's set to place at start true (not false) because we do want it to spawn in at the beginning of the game - ignoring our spawning channel at the beginning; it's Max Count is at 16 so that whenever our respawn time expires, another one will spawn in regardless of whether a player is already holding one equipped; and then finally we setup its Spawn Channel to 1, and have its Can Despawn set to false (not true) because we don't want to force-despawn the weapon when we turn the channel back off again a second later. Note: Left like this, the weapon will only respawn if the previous one has been picked up (this won't affect the timers, it just means it will skip-over that spawn because the weapon hasn't moved). Personally I would say that this is a good thing, but if you really really want the next one to spawn in, regardless of whether the previous one was picked up (and thus stacking them on top of each other!), then you just need to Drop Spawn the weapon, so that the next one has space to spawn in even if the previous one is still sitting there. Hope that makes life simpler for you crazy 'Core' map makers. *Wanders off back to his Puzzle Maps*
It should indeed. I assume if you wanted 2 weapons on different timers, you'd raise all the numbers below by 1 for the second weapon? Timer: On Once: Broadcast Channel 0 Timer: On: Power Channel 0, Broadcast Channel 1 Timer: Off Once: Power Channel 1, Broadcast Channel 1, Timer/User Data 1
this would be fine.... if it didn't despawn the weapon right out of your hand, thats why we're useing multiple timers instead of using a few on a loop. i'll give this a try later but i did try something similar when testing weapon spawning myself and it reefused to spawn in the next weapon even after it being removed from the map.
Howdy. I can understand your scepticism, however... Weapons can't spawn out of your hand, so that won't be a problem. Plus, even if weapons could spawn out of your hand, I've specifically stated that you set the weapon's scripting "Can Despawn" property to "false"; what this means is that when you turn off the broadcast channel, the weapon will not try to despawn itself. The only way the weapon will despawn with this setup is if you drop the weapon and then leave it idle for long enough that the default idle despawn mechanic kicks in (which I believe uses some kind of voodoo magic(tm) to decide when to despawn the object). Also, if in your testing the next weapon didn't spawn in because you were holding one, it might have been that you didn't raise that weapon's max count property. I'm making an assumption here, but just thought I'd point it out, just in case. I did already test all of this a little while a go, before making my post. I don't like to post suggestions without first proving that they work . That's why I also added the note at the end, because it was something I noticed during testing. Please feel free to do your own testing though - there is always the possibility that I missed something, since as I've said I generally don't make Core maps. Hey Chuck. If you wanted more weapons on different timers, you would still have the same initial Timer: On Once set to Broadcast Channel 0, but then you would add the following two timers, per new weapon you wanted on a different respawn time: Timer On: Power Channel 0, Broadcast Channel n (Where n is the next unused Broadcast Channel available to you), Timer/User Data x (Where x is the new respawn time you want for that weapon) Timer Off Once: Power Channel n, Broadcast Channel n, Timer/User Data 1 (Same value of n as the other Timer) Your new weapon of choice: Spawn Time Never, Place at Start True, Max Count 16, Spawn Channel n (Same value of n as the Timers), Can Despawn False Repeat for different values of n and x, to have more respawn times of different values for different weapons. Obviously, if you just want to have more than one weapon which is on the same respawn time, then you don't need more timers, you just set that weapon's Spawn Channel to one of the channels you've already got working for that particular respawn time.
yea i thought you might of tested it before suggesting, i'll give it a test myself later after i've run to the store to grab a headset and hdmi - dvi-d cable. when i did the weapon spawn testing myself was before i decided to take a good look at how scripting worked. what i did slightly differently was set can-despawn to TRUE on the assumption that for the weapon to be able to be removed from the map would require that to be true otherwise you'd end up with empty weapons on the map. after messing around with scripting i now know that that settings for scripting paremeters and nothing to do with default spawning behaviour. CAs scripting video did mention that vehicles or items in general will be despawned even if controlled by a player but never mentioned anything about how can-despawn effects it. if it works your guide = new one and might make it into a video as well.
Yeah, it is true that vehicles will forcibly despawn (with explosions!) if their Can Despawn is set to True and then the Broadcast Channel is turned off - regardless of whether a player's controlling them or not; but weapons don't behave the same way. To be honest, I'm actually disappointed that weapons don't despawn out of your hand, because I had some great puzzle ideas using that as a concept - which is what I get for coming up with puzzle ideas before thoroughly testing the scripting mechanics.
Good stuff Just as a general tip: If you're ever scripting something with Timers, and you want to control the activating of those Timers, then I recommend you use their Power Channels, instead of their Spawn Channels, to control them. The reason for this is that there can be a slight delay before the Timer actually spawns into the map and activates; whereas the Power Channel is a lot more responsive. Normally this isn't an issue but if you're trying to create something really time-sensitive, such as static weapon spawns like this (where you want them spawning on-the-dot), then it's worth noting. Also, I don't know if it's relevant (I'm not sure what weapon respawn times you guys usually use), but of course a single Timer can only have a delay of 100 seconds. Do you want me to explain how you can chain Timers together, to give a delay more than 100 seconds? I know that weapon respawn times can normally go up to 180, so it might be useful? If you do want me to explain how, then just as a quick caveat, it'll only work if you want an extended delay that's an even number - if you wanted a delay beyond 100 that's an odd number, then it would require more Timers, and you would eventually end up getting a desync in the timings (after, say, 5 iterations) due to the complexity of the script; which I would argue isn't worth it for the sake of having an odd numbered respawn time. Would a description of how to do that be useful?
OK, I might be mistaken here, but.... Won't just setting the Max Count of the weapon to a larger number than the amount on the map cause the game to keep spawning them x seconds after the last one was picked up until it reaches that number? If so, that should achieve a very similar result. The spawn timer would be measured in seconds after the weapon was picked up, not seconds after the last one was dropped.