Alright, so I'm trying to make a map with an elevator that is raised up and carries with it a vehicle. I've got the door to open, the elevator to come up successfully. However, while vehicle spawns correctly the first time, when it respawns its facing some weird angle - while technically in still in the right spot it doesn't quite look right. And anything round based causes the vehicle to spawn up in its final position (rather than on the elevator). Is there any way to fix this - IE: Make the vehicle spawn in the hole at the round start, then it gets carried up by the elevator, and from then on in that round it respawns up there? And then if its a round-based gametype it starts in the "resting/initial" stat again?
I'm not super experienced with Scripts but I'll take a look and see if I can help when I get home Might have to do something with scripts at Round Start? I believe that's a scripting option
In matches, I think we can only spawn or respawn objects at their original positions (the position when the map was saved in Forge). We can then offset the position with (OnSpawn) scripts if needed. ---------------------------------- IFFY STUFF --------------------------------------- (In Forge, object spawn locations sometimes change when something moves the object, but I don't think that would happen during matches? Wouldn't they be considered "Disturbed" if they're moved during a match and only respawn in the position last saved in Forge?) Question: If you save the map after the vehicle is moved to the top of the elevator, do you have to move it back to the bottom? If so, somebody around here knows which Conditions do trigger in matches, but don't trigger in Forge (like using an Object's Despawn:Timer=On property and then starting the movement in response to that Object's Despawn Condition). I'd use those to move objects whose spawn position might get changed during Forge editing. ----------------------------------------------------------------------------------- I think you can use a Power Channel State Action{SetPower:On} to track if the vehicle needs to move up (if has already spawned during this round). Use Condition(OnRoundStart) to turn the Channel back off at the start of each round. As long as the (OnRoundStart) Condition occurs before the vehicle's (OnSpawn) Condition each round and the vehicle has room to spawn at its original location (after the elevator moves up), I think this will work. I would try adding these scripts to the vehicle: Use Condition(OnRoundStart) > Action{SetPower:Off} to keep the vehicle from moving at round's start. Use Condition(OnSpawn) > Action{MessageSend:Alpha} to indicate vehicle respawn. Use MultiCondition:Minimum=2 (OnMessage:Alpha) (OnPower:Alpha:On) > Action{PositionOffset:X,Y,Z} to move the vehicle to the elevator up position only if Alpha's Power is already turned on. Use Condition(OnMessage:Alpha) > Action{SetPower:Alpha:On} to track that the vehicle has respawned. This won't do anything on subsequent spawns during each round. If this doesn't work (if it relocates even at the start of the round), then try broadcasting the vehicle (OnSpawn) Message on a 2nd Channel (Bravo) and listen for (OnMessage:Bravo) in the last script (that does {SetPower:Alpha:On}. Use the same round/spawning logic buddhacrane used (minus the object Despawn:Timer=On property) in this post: Halo 5 Scripting Infodump
So I tried what you said and it appears to be working. Hopefully nothing bugs out and goes weird in the future.