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.

Behaviour to limit masks

Currently, it is impossible to apply a mask to only one object, you need to use separate layers for each mask you wish to apply if the objects can overlap. This makes it impossible, for example, to have a game with many characters who might have some kind of powerup masked on them if they can get close enough to each other. As in that case, the masks would overlap. Having a separate layer for each character would be extremely unintuitive workaround, and you cannot create them at runtime.

I'd suggest a simple behaviour. You would attach it to both the mask and the object. The behaviour would have one boolean and one variable. The boolean would be ticked for the mask. The variable would hold any value, and the mask with the behaviour would only affect the object with the same value.

I don't know if there are technical limitations making this somehow impossible, but functionally I feel like the lack of this feature is a big flaw.

  • Arsi Liimatainen
  • Mar 19 2021
  • No status
  • Attach files
  • Guest commented
    26 Mar 08:42am

    Nice idea. I use masks a lot for making scrollable lists and hidden stuff.
    Maybe make a plugin called Mask, and we can set the masked/unmasked area.
    (currently, I have to set them manually in the sprite editor, which sometimes needs trial and error to reflect right in the editor)

    Then add a behavior called Maskable to any object you want to be affected by the mask. The behavior allows us to set how the object reacts to the mask. Or make a mask affect a whole layer by using "Add target layer" action.
    This way, we can configure the mask dynamically and exclude any object.

    This relation is similar to the Shadow light plugin + Shadow caster behavior.

  • +4