How to Make Static Weapon Timers in H2A
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
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)
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.
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?
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.
Author - buddhacrane
Source - https://www.forgehub.com/threads/how-to-make-static-weapon-timers-in-h2a.147983/