Skip to Main Content
Construct 3 suggestions 21H2 - ARCHIVED

This suggestions platform is now closed and will be shut down on March 1st 2024.

Please ensure any content you care about is backed up before that date.

Feature requests are now handled on GitHub here: https://github.com/Scirra/Construct-feature-requests

Status In development
Categories Editor
Created by Scoremonger
Created on Oct 12, 2021
Merged idea

This idea has been merged into another idea. To comment or vote on this idea, please visit C321H2-I-26 Prefabs in the editor.

Add concept of default values per family/object, instance overrides, and reverting Merged

Most major game engines like Unreal, Game Maker Studio 2, Unity, and Godot support default variable values for each object type, and have the concept of overriding and reverting values on an instance level (screenshots of the variable override UI for those engines are attached.) This makes it possible to quickly and safely experiment with object settings while iterating, and to easily identify when an instance is using non-default settings.

At the moment, Construct requires users to select every object instance in a scene they want to share the same values, taking pains to remember which instances are overridden and which aren't. This must be repeated for every layout that uses a given object. There is also no way to tell at a glance which variables in an instance are overridden. It's a clunky, error-prone workflow that can easily result in instance settings being unwittingly overwritten and stray objects with overridden settings that aren't easy to notice. Instance-level variable management in Construct takes significantly more effort than in other engines, especially in more complex projects with more object types and variables.

Construct would ideally use a more standard, friendlier workflow for managing instance-level variable settings (a couple mockup C3 screenshots are attached.) For example:

- Family variables and behavior settings serve as the defaults for object types within that family.
- Object type-level variables and behavior settings serve as the defaults for instances placed across all layouts.
- Object types have a user interface element on each family-inherited variable that shows whether it has been overridden, and which allows the user to revert any values that were overridden.
- Instances have a user interface element on each variable that shows whether it has been overridden, and which allows the user to revert any overridden values.

Making such an improvement admittedly isn't a flashy new selling point for the engine because it's already a standard feature in most engines, but it's a standard feature for good reason. A streamlined workflow and user-friendly UI will make it easier for users to create more ambitious products with less frustration.

  • +4