Official Forge Feedback Thread

This probably has been mentioned before but I’m mentioning it for my own sake.

I just tried forge for the first time in Halo Infinite (on xbox) and I am finding the control scheme a little irritating to use.

There should be a separate control scheme section for forge in the game menu so I can change the layout to something more comfortable, as far as I know there currently isn’t one. In my head pressing ‘A’ should ascend like jumping and then ‘B’ for descending like crouching, currently its the other way around which is what is irritating for me. There exists a control layout change option hidden in the forge menu but none of them are my desired layout.

It probably sounds like a small issue but if I can’t be comfortable to use a control scheme to forge with then I just wont forge at all, which would in general go along the same side of the coin if it was a control scheme to play with in matchmaking.

1 Like

I’d like for 343 to remove equipment restrictions for players riding in vehicles, Imagine doing a race or parkour track and you’re riding on a mongoose and as you’re falling off the map you grapple to a ledge and save yourself and the driver/vehicle. Or imagine some unique and funny modes like a two teams with razorbacks that have to climb and traverse a map with players in the back helping lift the vehicle. Even repulsor could make for some unique gameplay moments. I know it’s something minor but it could gie rise to some amazing modes and make some awesome moments for sure. I hope I’m posting this in the right thread!

1 Like

We need a better selection of words to choose from for string. We don’t even have the names locations to use. I can’t properly tell people how to play without the proper words. Would be even better if we had the freedom to write any word.

1 Like

DECAL SUGGESTIONS

  • More letters. We currently have up until about the letter H, and the letters stop from thefe. It would be cool to go all the eay until Z.
  • Add the previous UNSC insignias in as decals too (1-3/Reach Era and the H4/5 era) so we can create timeline specific maps. The current decal is there, sure — but I’d love to be able to use the previous two.
  • Maybe add decals/logos for other in-universe organizations? Like Misriah armory or one for the Unified Earth Government?

STRUCTURES/BUILDINGS

  • Readd the preset structures from the previous Halo games (Reach, 4 and 2A) coupled with the extensive tools we already have? Like “Bunker Round” of “Tower 2-story”, just to allow some fully customizable maps. Especially for those who aren’t too skilled at Infinite’s extensive forge, having the oreset structures exist alongside the extensive tools already in the game allow for new players and those trying to learn to easily understand the new ropes and get to used to things before jumping into bigger forge projects?
  • We are in desperate need of a wider variety texture and detail pallet. Covenant and Banished are still missing pallet options. As it stands, we’re pretty limited in what textures we can use and combine. More Forerunner textures would be nice as well (Maybe tnrow in some H4/5 inspired textures for good measure?)

PROPS/ASSORTED

  • The Forerunner building pallet could use some new pieces as well. Especially for those who aren’t really skilled at building, it goves them more tools to work with to further hone and expand the craft.
  • Green Screens need to make a return. Especially for machinima making.
  • More toys. The stuffed animal props from Halo 5 for example sre missing and those were fun to mess around with.
  • Placeable water would be really nice to have, especially considering the lack of any real water based maps

CANVASES

  • Allow us to change the skybox itself? Halo rings that aren’t just limited fo the desert maps?
  • Beach based water maps similar to Awash from Halo 2: Anniversary or Tidal from Halo 5: Guardians.
  • Snowy. Nuff’ said.
1 Like

Hey, I just started scripting today and I figured I would air all my options.
for background, I am in college for programming.

  1. Debugging is the worst. I should be able to click the error message in the log and be taken to the source of the error. also, some kind of breakpoint/step-through would be nice.

  2. advanced variables are bad, but they could be great. all it needs is suggestions and autocomplete when you’re filling out a set command to guarantee you spelling it right. Perhaps don’t even let me type, have a drop-down menu with all local variables and any global variables. The number of times I’ve had to restart my whole project is because I misspelled a variable somewhere and I can’t figure out where or how is too many already, and I’ve been doing this for less than 12 hours.

  3. I want a text-based editor and a VS Code extension.

  4. I want to be able to save my maps/scripts offline while I edit them.

  5. more documentation. come on guys, you work for Microsoft. Microsoft has some of the best documentation in the biz, it doesn’t take much to have a website with a full, searchable list of nodes and what Exactly they do. also include examples. I spent a long time trying to figure out how to display text to the user, before giving up.

  6. add the following strings ‘A’, ‘B’, ‘C’, ‘D’, ‘E’, ‘F’, ‘G’, ‘activate’, and ‘trigger’. Preferably just let me input raw text, but I get how that might open you up to legal trouble when people be stupid.

  7. big ask, but let me use strings and an AI-generated Cortana voice to send audio clips to players.

  8. let me rebind my controls. everyone plays differently, and you will never be able to add enough presets to satisfy everyone.

  9. comments. Let me put my code in a box and attach the text that I input.

I’ve been a programmer for 14 years now, so I can’t help but feel like the scripting is incredibly limiting. So I’m going to give some of my thoughts.

First of all, it would be really nice to be able to make prefab nodes, lay out a node graph, specify inputs and outputs as well as variables, then you can use that node in your scripts. This would save a lot of effort for repetitive tasks.

We can’t control the timer on the interactive buttons. It would be nice to be able to remove the timer, or make it longer. Maybe even being able to change the UI would be nice (so it could either be the radial progress bar or a countdown).
It would also be convenient if you could make it so that buttons are only accessible while standing in front of the button. I wanted to create a door that opens automatically to walk in, but then I wanted to make it so when you are on the other side, you can turn around and lock the door. But the problem is that the switch is accessible from both sides. It would be nice if we could make it so that the switch is only accessible when you are looking at a specific spot, or direction.

There is currently no way to get input from players. Being able to check if a player is pressing a button or registering events for buttons would make it possible to do all kinds of things that currently aren’t possible.
On that note, it would also be nice to have custom cameras that we could use to create custom spectator modes. We’d be able to move them around using the input from the players, or have positions throughout the map that you could teleport the player camera to.

It is incredibly frustrating that we can’t change the scaling of dynamic objects. There are certain door sizes that I would like that just aren’t possible. It seems like an arbitrary limitation, and it seems weird that it was a design decision. I can understand if it’s some weird limitation of the engine, but I it’s annoying all the same.

Now I want to talk about the interface and controls.
It’s really frustrating wanting to place an object in a specific place, but having the object spawn in front of you, but very far away from where you’re trying to place it. It would be really nice to be able to lock an object’s position relative to the camera so that you can move objects around by moving the camera (kinda like how we moved objects in Halo 3). It’s annoying trying to mess around with the gizmo all the time. I like the gizmo, but I want to have alternative move modes. Halo 3 movement and Halo: Reach movement are the two movements types that Forge is lacking. Speaking of movement and gizmos, the gizmos are whack. When you are selecting an axis to move, that axis should be highlighted in some way that is more noticeable so that you can ensure that you aren’t selecting more than one axis. Additionally, it can be frustrating having the arrows pointing away from the camera, which means that you need to reposition the camera to the other side of the object. It would be nice if there were a mode that made it so the arrows are always pointing towards you so they are easier to grab.
I like being able to press F to focus on an object, what would make it even nicer is if when you hold F down, that locks you onto the object, and rotating the camera rotates the camera around the object rather than rotating it around its origin.
When you have snapping set for movement, it gets really annoying having objects spawn at positions that aren’t in alignment with the snap. If the move mode is World, then it would be nice if the object is positioned along the snap grid. If the move mode is Object and an object is already selected, then I think that the spawned object should spawn on the snap grid of the selected object. So if your snap was 2, and the object was at (0, 1.5, 0), the new object that you spawn would aligned with the selected object’s “snap grid”, which perhaps could also include that object’s rotation (but preferably that would be optional, preferably all of this behavior can be controlled in a menu).
When an object has a size that is not in alignment with the snap, I find that it can’t decide how to snap to the grid. So if you line it up perfectly then move it over and then move it back, you’ll find that you’re now in a different position and you have to go into the menu to line it up perfectly again. I don’t see any reason why this should be happening, I don’t see any reason why anyone would want that. The way I see it, when you are in Object move mode, the snap grid should be relative to the objects position so when you start moving, the object snaps relative to the starting position, then when you stop moving the object’s snap position is set to the new origin.
Back in Halo: Reach, we could grab a forge object from any position on the object and drag it around. It would be really nice to be able to do the same thing in Infinite. It would also be nice to be able to change where the gizmo is drawn so that you aren’t forced to look at the center of a large object while moving it. Being able to position the gizmo by clicking somewhere on the object (while making it reversible) would be nice.
There’s probably more that can be said here.

The undo/redo system seems like it’s missing quite a lot of recording. There are some actions that you can’t undo/redo, which is quite annoying. It’s also annoying that you can’t undo/redo variable changes on objects (so if I changed an object position in the menu by typing in a number for the X, then I should be able to undo that by pressing Ctrl+Z.

Now I want to talk about scripting again.
I was unable to find a way to spawn object. It would be nice to be able to spawn objects (including prefabs) and modify their settings. Like, maybe I could spawn soccer balls and give them some velocity to shoot them at players or something like that.
Like I said before, there’s no way to check for player input. Having some nodes for doing that would be really nice. Since players can be using either a controller or KBM, it would make more sense for the input to be action based rather than button/key based. So here are some node ideas:
There needs to be a node that you give it a player, and an action (such as Crouch), and that node will output true when the button for Crouch is held down.
Ideally we would be able to select controls based on various control types (spartan, driving, monitor mode, spectator, etc).
For getting input related to movement (WASD or Joystick), we should have two options: a Vector2 that gives the Joystick position (and a representation of that position for WASD).
We should also have a node that gives you a boolean value for forward/backward/left/right. Ideally this node would have four output pins for each cardinal direction so that we don’t need to clutter the graph when we want to check more than one direction at the same time.
There is no functionality to get objects that the player is looking at. It would be nice to be able to get a list of all objects along a player’s look direction, and then iterating through this list would yield the closest object first and the furthest object last, and otherwise perhaps it could be possible to reverse the direction.
It would be nice to be able to tag objects and have nodes for adding/removing/checking tags.
It would be nice if we had a custom weapon type that doesn’t shoot anything and just raycasts the scene for objects, then we could have a node for receiving that raycast event. So every time you press the Fire button, the node for the raycast event would be triggered, and it would give you the player that triggered it as a reference as well as the list of objects captured by the raycast. Remember what I said about tagging? It would be nice to be able to filter this raycast with a list of tags. Not just “does this object have this tag?” but also “does this object not have this tag?” So we could create a filter where it requires one tag but excludes objects with another tag.

I’m pretty sure I already mentioned that we should have nodes for spawning objects and prefabs, but I also think we should have some nodes for deleting objects and prefabs.
Like I mentioned about object tags, it would be nice to have a node for enumerating objects by a tag filter. (maybe a tag filter can also be a variable type?)

It would be nice if we also had integer variables/nodes/values rather than all decimals. Then we could have bitwise operation nodes to manipulate bits (we could then have get_bit and set_bit nodes).
It would be really nice if we could actually use our own text to print to the screen. Ideally we would be able to print text with some sort of format. So maybe we could have the text “Player {name} at {position} is crouching: {crouching}” and then the text node would automatically create input pins for each of the identifiers within the curly braces, and it would automatically format the text with whatever object is passed to it.
It would also be nice to be able to change what interactive buttons say. So for example, I could make it say “Open Door” or “Lock Door”. Preferably we could change the text at runtime with some node in case we want the button to have multiple purposes.
Speaking of buttons, I didn’t find any way to disable or hide them via a script.
We also can’t move buttons with scripts, which can be annoying. I hope that we can one day make dynamic prefabs so we can make more complicated moving objects like elevators.
We don’t have nodes for creating GUIs that can be interacted with.
Having a way to present a GUI to a player would be very useful. Giving them buttons that can trigger events, combo boxes to choose settings, sliders, text boxes (maybe), integral input, boolean input, numeric input, vectors, player selectors, etc.

Now, here is the really really big one. I doubt you guys would ever implement this, but it would be a real game changer. It would be nice if we had an actual scripting language that we could use. I don’t think it matters how complex the scripting language is. I think people would be perfectly happy with something like Lua or something similar to Bash. Ideally we could design our own nodes with this scripting language. The scripting language would give a lot more control than the node graph, and it would also be less cluttered. I think the node graph is great for hammering out some basic logic, but we need something more capable. The limitations of the node graph are too numerous. The scripting language would make it really easy to make GUIs.

Anyway, those are just some of my thoughts. I’m certain I could think of more if given the chance.

I would really love the ability to change object colours via scripting to return from Halo 5.

A new Node that allows us to change the colour of the object(s) plugged into it would be amazing.
Maybe even out-do the Halo 5 version by giving us all of the material options in the node so we could change texture and grime based on events. It would be great to be able to make objects blink emissive for example.

Changing object colours was super useful in Halo 5, whether it was for aesthetic purposes, mini-game mechanics or communicating information to players.

Perhaps even a new colour/texture variable for storing and manipulating. Even being able to get the appearance information from a dynamic object if we wanted it.