A few weeks ago I made a thread about static weapons and how there are many problems when trying to implement this spawning system into Halo 5. You can check that out here. I'm not going to type that all up again, so this doesn't seem like a 40 minute stealth advertisement that leads no where.. I will re-explain drop spawning however, since that is what this method I came up with is based on. Halo 5 "delayed drop-spawning" method (CE-like weapon timer) in detail: In Halo 5, objects placed in forge reset their origin if they naturally move (due to gravity for example) from where you placed them to where they end up at an equilibrium. This means you can't implement drop spawning in the traditional way where you fix the weapon mid air, then without touching or selecting the actual weapon, you either delete the object below it or you change the objects physical properties to normal from fixed. The way it is done in H5G is by placing a block (of any kind, preferably small and visible) that is levitated above the apparent set spawn location of your the weapon and is set to not be included in any gamemode (under "game mode labels"). Once you set up your invisible block, place the weapon with normal physics on the block. Make sure you remove any script on the weapon, then set it to start its respawn timer "on disturbance," your respawn time can be set to anything you want. I recommend setting the despawn time equal to the respawn time, which you could do in the form of a script, however I'm not sure if that messes with the system, so just use the regular despawn setting. Now you have your static drop spawn weapon, but it doesn't match the game/match timer because the match timer doesn't start until after the cinematic, which is about 13 seconds long... To fix this, you want to delay the initial disturbance of the weapon by ~13 seconds somehow. For this, think about how drop spawning works. You know the spawn timer starts when the weapon is disturbed, and the weapon is disturbed when the weapon falls, which is the instant the map loads up. To correct the weapon spawn timer so it is in synchronization with the match timer, you simply have to delay fall. To do this, duplicate the block you currently have, and make sure you set the new block to where it APPEARS in ALL game modes, by removing all game mode labels. Now vertically align the height so that its z-value is equal to that of the original block (this must be perfect, so use magnets or coordinates). The two blocks don't need to be aligned on the horizontal plane however, so I recommend turning on object movement (RT + Down on D-pad), and offsetting the new block in the x or y direction making it easier to grab each one. Make sure that the weapon is still balanced on the new block without the support of the old one and vise versa. Also since you don't ever see either of these blocks in game, you can distinguish them with two different colors for example: pink and blue or green and red, etc. Now for the new block, you want to add two scripts. Attach one of the scripts to a switch through channel Alpha for example. Set it to where the new object "resets position/rotation" on "message received." Now place your switch out side of the map (to where it can only be accessed in forge), and create a script that causes the switch to "Send Signal" when activated (I forget the in-game terms or labels). Now the new object will reset to its origin when the external switch is toggled. The purpose of this is to make forging this object much easier, when playing around with the movement scripting of this object or block. This will make more sense later. Add another script to the new block, this one is actually important to delaying the drop spawn. Set the script to run on a "Timer" with an initial delay of ~13.00 and a repeat timer of 0.00 (this is so the object performs the action only once at about the same time the match timer starts). Then set the action to "Move Position" where the "Time" will be set to 0.10 (which is the smallest possible amount), the change in X will be left at 0.00, the change in Y will also stay 0.00, the Z (vertical) must be set to a variable of a negative value that depends on how high the system is above ground. Assuming that your sniper isn't 30 meters up in the air set the Z (vertical) value to < [-20.00]. If the system is above multiple levels on the map you may have to set that value much lower (the whole point is that the "new block" moves out of the map in the direction of gravity as fast as possible, which is why you set the movement time to 0.10). Now you should understand that this method is basically a drop spawn system that is delayed until the match or game timer starts. You also probably figured that the 1st script is to make it easier to mess around with the movement script without having to constantly re-align the block with the old one. The variables here are things such as how high the weapon is being dropped from, the exact duration of the intro cinematic, etc. This leads to having to play around with values such as your weapon respawn time (might need to be changed between 2 to -2 seconds), the initial delay (what I said to be around ~13.00) might need to be adjusted by no more than plus/minus 2 seconds, and depending on the distance between the system and the base of the map, you may also need to change the Z (verticle) movement. Since the forge timer is not delayed by the time of the cinematic and that you can only test this in custom games, you will need to constantly switch between custom game and forge mode to find your exact values, which involve you waiting through a couple of spawn cycles to find a good consistency (just simple trial and error, science, etc.). You might have wondered why you don't just set the new block to despawn at the match start (and set the switch to make it respawn when toggled). This doesn't work because if a structural object is removed (despawned) from the map for a certain amount of time (which can vary), it will be permanently deleted (you will also notice your object budget go back up). I also recommend not setting the object to move too low (as to where it ends up under the canvas or the immovable terrain) because that might result in the object also permanently being removed from the map. I know this sounds more complicated than the idea of this system actually is, so ask questions. I'm not sure if drop spawning has been done this way in H5G, since not many people are interested in static spawning, but I thought I'd post it anyways to follow up on my old post. You can also check out how I did it on my Downrush remake in my fileshare. GT: "whats a CEsar"
Steps for making a Static Weapon "Delayed Drop-Spawn" Timer (CE-like timer): 1. Spawn a block, (In this case I chose a 1x2x4 invisible block). Then place it above where you want your weapon to be. 2. Go to "object properties" then "game mode labels" 3. Set all four labels to exclude each game mode like below... 4. Spawn in a switch, and place it out of the maps boundaries, so it can only be accessed in forge mode. 5. Add a script: Condition = On interaction Action = Message: Send Channel = Alpha (or any you haven't used) 6. Spawn in a second block or duplicate the first one (for which you will have to remove all game labels). 7. Add two scripts. 8. First script: Condition = On Message: Received Channel = Alpha (or same as in step 5) Action = Position/Rotation: Reset Time = 0.10 9. Second script: Condition = On Timer Initial Delay** = ~13.00 (+/- 2) Repeat Timer = 0.00 Action = Move: Offset X / Forward = 0.00 Y / Horizontal = 0.00 Z / Vertical** = -x.xx This is distance between the base of the map and the base of the weapon (In my case the base of the map and the sniper are ~8.50 units apart, so I set the vertical offset to -10.00) Time = 0.10 10. Spawn your T3 Weapon (In my case I have a sniper) 11. Change the Object properties to: Physics = Normal Respawn Enabled = On Condition = On Disturbance Timer** = Can how ever frequent you want (In my case I have it at 59 so it adds up with the ~1 second fall time to be a minute) varies by less than a few seconds. Despawn Nothing specific, but it should equal the Respawn time (Try using a timer script to force despawn it right before the next one spawns). Spare Ammo = (choice) 12. Balance the weapon on the two objects. 13. Save the map, then test and correct the values of variability (**) until the spawn timer is in sync. with the game timer.
Yep, after 2 hours of testing, I finally perfected it to the second on every minute, for Downrush. Message me on xbox if you need help.
Well I have it working. Only thing is that it won't despawn so if nobody picks it up then it just stacks. I don't really think it's an issue though because I only have the one power weapon on both of the maps so it should get picked up.
That's the thing I was having trouble with. Since halo 3 (I think), the despawn system has been pretty complex where there are different factors that play into despawn time. For example in Reach, the despawn time was 45 seconds after a weapon was interrupted, but if someone was near it or looking at it, the despawn would be delayed. So if you were running to a weapon it didn't despawn right when you got to it. I think in halo 5, the weapon won't despawn if you are looking at it. That's why you might want to try and see if using scripting force despawns it.
Here's my main problem. In my map called "Ector", I have rockets spawning bottom mid as the main power weapon. I can use this method to get it to spawn right. But I want my intro can to pass by the rockets but it looks dumb to have random rockets floating in thin air. So I spawned a dummy rocket & tried to script it to despawn & script the original rockets not to spawn until 11 sec in. Both show up in the screen in the intro. The dummy rockets despawn as they should but respawn at the same time as the original rockets even though respawn is off on the dummy rockets. So for some reason even when scripted you can't delay a weapons initial spawn & apparently you can't keep a weapon from respawning on its own. All of this would be nothing if they just added the ability to change the ammo count on weapon pads, how the hell was that not thought of during the making of this game I'll never understand. How did they think a 12 shot sniper or 6 shot rockets would work for all game types & player counts? Makes me sick.
Wow, I need to test the respawning for weapons when you have Respawn turned off. Sounds like a bug if they come back. I think the Respawn: On Disturbed setting really messes up groups & makes it so that you can have copies of objects respawn for your group even when you've erased the group & then your map is hosed. For the dummy Rockets, I would definitely set Respawn to On Deletion and then change other settings and see if it will go away. Having copies of objects appear while in Forge seems to hose some things. It'd be fantastic if they had an Initial Spawn Time property that could also be set to Off or -1. As a cheap fix for the dummy rockets, try turning all Despawn & Respawn settings off, set physics to Phased, and then move it below the floor with a script after the camera intro is done. Not sure if you need an extra reset script added for when you save in Forge or if it will always restart in the proper spot. Did you see the no weapons trick tutorial? They despawned the weapons right out of players' hands! lol. So I guess forcing them to despawn & then respawn per your timers should work. Your assessment of how objects don't like to despawn when players are near or looking at them describes the stuff I've seen. I think objects don't like to respawn if something is in their spawning space, so watch out for spawn drops that can get blocked up. I haven't thought of any other way to do this. Using Respawn On Disturbed seems like the only way to spawn copies of objects. Using the {Spawn} action doesn't seem to work if one object is on the map. Using {Despawn} could remove a weapon that someone's using and hose them (although that could be considered funny gameplay that people have to keep track of). I think any scripts would work on all copies at once, so there's likely no way to script something for only one copy. Maybe if the previous copy hasn't moved, you could let it drop off the map or into a kill ball or something. That could keep a pile up from forming, I guess. Just can't think of a way to not have it spawn extra weapons if the last one hasn't been picked up before the next respawn time. Nice tutorial with details and thought, Something!
That's not a bad idea. I can just script the dummy rockets to move under the map & set the drop spawn rockets high up enough that they will be out of view of the intro clip. Since its drop spawned it will fall into place. This won't work in all situations but it will in this one. Thanks. Edit: tested & tried. It works! I got the drop spawn rockets respawning on the dot at 12:00, 10:00, 8:00, 6:00, 4:00, & 2:00 with one spare clip. I scripted the dummy rockets to move under the map when the camera goes off & at first it kept respawning after 2 min in its original location just like before. I don't know what caused that but I just deleted both rockets & set up 2 new ones & it worked. The only difference was I used a script brain to send the message for the dummy rockets to move instead of just scripting them to move on their own & it works perfect now. The usable rockets are about 30 units higher than the ground when they drop spawn but the land &!stay in place. This won't be a likely solution on all maps but it worked here.
Nice. I'm now very wary of leaving objects with the "On Disturbance" type of setting for Respawns & Despawns. Copies of objects (from Respawn: On Disturbed) seem like a danger that can ruin your map if they won't go away. Especially inside groups.
I didn't have trouble with that, I just deleted the original then switched to Spartan mode & grabbed the copies laying around & shot all of them. Then when I saved every thing was fine.
Lmao, I completely agree. Just give weapon pads more options, give weapons a "max count" option, or add spawn settings to scripting... This is another problem I thought of, but didn't think to mention it, because I use weapon pads for rockets only and this method for snipers, and I don't really include snipers in intros.. Personally it wouldn't look too bad in my opinion to see floating weapons, would look kind of cool. But for people who don't like it, I have a little solution. Place the camera how you like it on your map and add your camera animation/movement. Watch it a couple of times (remember the whole scene), then copy ALL the blocks in that camera scene (including the camera itself), create an object out of that, and place that copy outside of the map. Then, delete the delayed drop spawn system and simply replace that as a regular weapon (Will look like a magic trick). If duplicating a good section of your map puts a strain on your object counter or lightmap budget, try turning off the light bake on those parts or maybe set them to despawn after 20 seconds. But yeah, all that for one simple missing feature of forge.
Haha I never would have thought of that, lol. That could work fine as long as I had the items in budget.