Construct 3 suggestions & ideas

Suggest and vote on ideas for Construct 3! Please note this is only one aspect of planning. We do not guarantee any features here will be implemented, even if they are top-voted ideas. The aim is just to collect feedback. Remember to search for existing submissions before adding an idea, describe your ideas as comprehensively as possible, and vote for plausible ideas that are well thought out. Please see our full guidelines on suggesting features.


Add concept of default behavior and variable settings per-family and per-object type

Allow resetting instance variables to default (as defined in parent), and preserve overridden variables if parent changes.

Some engines support the concept of default properties for parent objects and overrides for instances. So for example, if the user defines an object variable "health" on the parent/template object, and then overrides that variable on an instance, they also have the option to revert the child's health value to that of the parent. Instances that have not overridden the health value will be automatically updated to use a new default value when the parent's health setting changes. Overridden instances will maintain their overrides even when the parent's health setting changes. The user may manually force the parent's value to all instances, including overridden ones, either through a context menu or by manually selecting all instances and resetting the health to default.

On the user side, this should include something to indicate which variables' values have been overridden from the default. This is usually done through text color or an icon. For example, Unreal Engine 4 uses a small yellow arrow next to such variables - the user can click the icon to reset the variable to the default. Unity doesn't inform the user which values are overridden, but does allow the user to revert values to whatever is defined in the prefab by right clicking the variable and using a context menu. A proprietary engine I once used changed the text color of all overridden variables blue, and they could also be reset through a context menu.

Construct already allows all variables of instances in a scene to be overridden by selecting the family or parent object and making the change there, but this is really just a shortcut way of selecting all the matching objects in the scene - there seems to be no real "default" values like in Unity and Unreal, or at least these aren't clearly distinguished. I'd love to see explicit family-level defaults as well as object type-level defaults in Construct. So, any object types that override their family's default would have the overridden values highlighted (and locked for safe keeping), and any placed instances that override the parent object's values would have the same.

Mainly I want this so I won't inadvertently nuke the settings of different object types within a family when I make a change to the settings at the family level. This sort of feature is also useful when you have special-case instances with variable or behavior setting overrides and you realize you need to make a change that should affect all the other instances only, or you realize your special case settings are lousy and want to revert them, but you aren't immediately sure what the defaults were. It is also useful to see at a glance which object instances have had their base settings overridden - I've run into a number of head-scratcher bugs that were due to an instance with wonky settings that I'd either forgotten about or never meant to change in the first place.

  • Chris Crawford
  • Mar 5 2018
  • No status
  • Attach files
  • Chad Joseph Nuñez commented
    26 May 20:40

    This feature would be very useful! With this, advanced features would be easier to implement.
    I have encountered situations that would have made events cleaner and manageable with this feature.
    I recommend something like:
    +Reset Instance Variables
    +Download Instance Variables
    +Load Instance Variables