Scriptable starting/respawn points

as i am working in halo 5 forge pc environment i made a scenario map that i’d like to as objectives are completed and global values for a round are met then a certain set of spawn points will become active, while other spawn points then deactivate. like as the players teams progress through the waypoints that lead them through the map, they should respawn at spawn points which are user placed as relevant to the current area in the map designated as the current objective

i noticed that starting points AND respawn points do not have a scripting section under object properties in halo 5 forge pc

also i think that in halo infinite forge there should be an easier subset of scripting that makes it easier to define global objectives(alpha,bravo,charlie…) and a subset of round-based ovjectives(alpha,bravo,charlie…) so that like instead of having to set global contanta to 1 and zero, its like more readable.

idk its just pure logic is harder to implement (for me because its like reading legal documents) in slipspace engine when i would just like guys to spawn in one area, set waypoints and make objects move smoothly around like

like i wish there were more clearly spelled out variables and script brains specifically for waypoints, objective area/ volumes, beginning of round control, score control like so they can be more easily visually differentiated and more clearly organized when trying to reactivate and deactivate certain spawn points when forging objectives and scenario based maps.

from cam

edit typos

instead of having to change global constants as forced dirty raw numbers when certain objectives are met and spawns change, there should be like a “global:score_control” script brain, and like a “round:score_control” script brain

maybe call them “global:score_value” script brain

and “round:score_value” script brain

and like a lot of the options under script brains in halo 5 forge, pull all of their functions out of just one script brain object and make individual named script brain objects for each function, with the capability of working with other script brains that have are named for different functions.

like you could organize in the forge item placement menu as
extras>scripting>scriptbrains>global>[all of the brains that modify global values etc. here]
extras>scripting>scriptbrains>round>[all of the brains that modify round properties here]

like plz make scripting a little bit more modular and clearly defined objects with clearly readable things that they do/values they modify

I haven’t tinkered with spawn points in Halo 5 but there isn’t a lot you can do with them. I think that’s why a lot of games had you spawn into rooms with teleporters that could then send you to different areas depending on the round / phase of the game.

Scripting in H5 was a lot of fun… but hopefully they step it up in Infinite.

And obviously we can’t talk about any of the leaks here.

I am desperately hoping that the script brains can have larger scripts - and that we can attach brains to game-types and not just maps. We need to be able to look up the killer with each death. And we desperately need the ability to change a player’s team and/or weapon.

I’ve already been tinkering with possible scripts. I’ve got the framework logic for;

  • Juggernaut (assuming we act on picking up and killing with a certain weapon).

  • Headhunters (keeping track of each player’s killing streak).

  • A scoring handicap system where you score the K/D (x10) of the player you kill.

  • A version of Tag’n’Bag. This was amazing for the limitations of H5 - but I’m hoping we have the coding options we need so that mere mortals like me can have a go.

  • A team levelling system for customs with uneven numbers (eg. 4 v 3) so that the extra player is rotated off the bench with each kill.

And so many more…

oh and ESPECIALLY a “round:objective_volume” script brain, and maybe even some extras>scripting>round>waypoint script brains
and have these all have editable properties like change the color of the waypoint script brain, change which team it belongs to , modify the objective_volume visibility ingame and change whether it appears or disappears when objective alpha is completed and thus objective bravo recieves the start signal

I think they just need the ability to better name the variables.

In Halo 5 you could only label them (alpha to zulu).

If we could name them along side their scope (global, player, team, or object) then scripts would be so much more readable; eg. global_count, local_temp, player_kills, team_value, etc.

another thing we need in infinite forge is modular strongholds capture points. the kind where you can, in a single map, easily drop a stronghold post at objective alpha. the two teams spawn and battle over capturing alpha. when the attackers finally secure the stronghold, it becomes attackers permanent new respawn location for the duration of the round. it can easily be able to switch sides for a new round. when the attackers unlock their new respawn points, a new objective (maybe oddball to keep away the flash drive scenario) becomes objective bravo. then if the defenders sucessfully defend one objective, be it the stronghold, or objective bravo, charlie, ctf or sportsball all in one round, the round ends and switch sides

i propose a new variable scope called “objectives” such that for the game there is global score, for each round there are round scores and in each round, as players complete objectives there is an easy way to give them points for capturing new strongholds, destroying power cells that the defenders have to defend and and and

Would you need an objective scope for this?

Just need more versatile scripting. Particularly the ability to manipulate spawns.

The only spanner in the works would be if spawning requires any pre-game set up. That would mean never being able to change then dynamically.

343 probably is looking for some of the best c++ programmers to make halo infinite scripting crystal clear for us

it would be very helpful if there were some official documentation that is released alongside halo infinite forge which clearly explains what all the scripting parameters mean. it would also be helpful if there were pictures of in-game screenshots with highlights for changing each variable. people learning could see the results reflected in the slipspace environment while reading about how to properly utilize the scripting feature.

This was the biggest stumbling block with scripting in Halo 5.

It had so much potential - but simple things were overly complicated - and it was a huge barrier. There were no guides or tutes - you had to rely on people posting on forums (ForgeHub was a good start).

But people also seemed protective of their scripts and not overly willing to share. But this could also have been the time and effort it took to explain things.

For example. If you wanted to cycle through the players you had to assign everyone a label, build a list of players with that label, pick one from that list at random, do what you wanted with that player (eg check their scores and apply a new trait), and then take their label away. You then rebuild the list with that label and repeat until the list is empty.

Then give everyone the label and start again.


And you had to be very careful about creating script brains in order because deleting one could change the whole order of script execution!

You only had to look to games like Tag’n’Bag to see what could be done;

I would be so excited if we could;

  1. Have a simple way of looping through players / objects.
  2. Act on the killer / assistants (H5 only told you who died).
  3. Be able to assign weapons (and equipment) to players.
  4. Change teams.
  5. Assign labels in the pre-game lobby (to be read by the script).
  6. Access to damage stats (per kill and overall).
  7. Allow spawn point manipulation.

This would increase our options dramatically. We could finally make our own versions of Juggernaut or Infection (which H5 couldn’t do).

My first script is already planned.

  1. On death event you get a reference to the killer and the victim.

  2. Take the killer reference and look up the player scoped variable counting kills. Add one and save. Do the same with the victim reference and the variable for counting deaths.

  3. Look up the victim’s kill count, multiply it by 10, and then divide it by the deaths to give you ten times the K/D. Round it off and then add it to the killer’s score.

Hey presto… you have a simple handicapped game where you score according to your victim’s K/D. If they have a K/D of 2.5 you get 25 points. A K/D of 0.3 and you get 3 points.

I would also expand it so that on Spawn it uses your player scope to again work out your K/D and then apply some bonuses.

eg. if your K/D is less than 1 then apply an OS for 1-(K/D) * 60 seconds. If your K/D is 0.9 you get it for 6 seconds. 0.5 = 30 seconds. 0.1 = 55 seconds.

You could also have K/D thresholds for different spawn weapons.

thanks for sharing darwi. i sense a bit of deja vu between your ideas and matchmaking games last week

1 Like