Quick answer: Reload the project after adding new members to a family — behaviors on the family propagate at load time. Remove any duplicate behaviors at the member level. Reference Family.Behavior.Property in events, not Member.Behavior.Property, to target the family-scoped instance.

Here is how to fix Construct 3 family behavior not applying to all members. You create a family called Enemies, add a Solid behavior to it, drop three enemy object types in as members. The Solid behavior works on the first two enemies but not the third. Or you add a new sprite to the family after setup and its events fire but the behavior never runs. Construct 3 families are powerful but have a few edge cases around when behavior inheritance is resolved.

The Symptom

A behavior (Solid, Platform, Bullet, Physics) added to a Family in the Family editor does not produce expected results on all members. One or more members act as though they have no behavior. Events checking Family.Behavior.Property return default values for those members.

Variant: the behavior works in preview but fails in an exported build. Or it works on existing members but not on instances created at runtime via System > Create object.

What Causes This

Member added after behavior, without reload. Construct 3 resolves family behavior inheritance at project load. Adding a member to a family that already has behaviors requires a save + reload cycle for all members to properly inherit.

Duplicate behavior on member and family. Adding Solid to both the Enemies family and the Enemy_Goblin member produces two separate behavior instances on the same object. Events that reference the family behavior see one; member-scoped events see the other. Depending on which you check, you may see inconsistent state.

Member is a Tiled Background or TileMap. Some object types (Tiled Background, TileMap, Sprite) can join families, but not every behavior is compatible with every object type. Adding Platform to a family containing a Tiled Background fails silently on that member.

Behavior disabled per-instance. Behaviors have an Activate/Deactivate action. If an event disables Solid on a specific instance, that one instance no longer contributes to the behavior, even though the family still has it.

Event sheet includes wrong scope. An event using “On created” for the member object type, not the family, initializes member-scope properties only. Family behavior defaults stay at their initial values.

The Fix

Step 1: Centralize behaviors on the family, not the member. Pick a level and stick to it. Delete any behavior on a member that is also on its family:

  1. Open the family editor (double-click the family in the project pane)
  2. Confirm the behavior is listed under Behaviors
  3. Open each member object type and check the Behaviors pane
  4. If the same behavior appears on both, delete it from the member

Behaviors always cascade family -> member. A member never needs to duplicate what its family already provides.

Step 2: Reload the project after family edits. Construct 3 refreshes inheritance at load. After adding new members or new family behaviors:

  1. Save the project (Ctrl+S)
  2. Close the project
  3. Reopen it

This is especially important for imported projects. Add-new-member events fire inheritance automatically on save + reload.

Step 3: Reference family scope in events. When writing events that should affect all members, pick the family from the object picker, not a specific member. The event sheet resolves at edit time:

Family-scoped events automatically apply to every member of the family. Use them liberally for shared behavior.

Step 4: Use family variables for shared state. Add instance variables to the family (not the member) for properties all members share:

Family variables are the clean way to share data. Per-member variables with the same name do not bridge the gap — they are separate values.

Creating Family Instances at Runtime

System > Create object targets a specific object type (member), not a family, because you must know what to spawn. But once created, the instance automatically inherits family behaviors. If a spawned instance does not inherit:

Compatibility Checks

Not all behaviors work on all object types. Construct 3 will still let you add them in the editor but they silently do nothing. Common mismatches:

If a family contains a mix of Sprite and TileMap members, split into two families — one per object type — so behaviors apply cleanly.

Debug with the Debugger

Run the project in debug mode (F12 while previewing). Inspect an instance. Its Behaviors list shows what is actually active. If a member shows an empty Behaviors list when its family has behaviors, inheritance did not happen — reload the project or re-save after editing.

“Behaviors on the family, not the member. Reload after changes. Family-scoped events for shared logic.”

Related Issues

For other Construct 3 patterns, see the Construct documentation on Families. For related 2D engine gotchas, GameMaker Draw GUI Text Blurry on High DPI covers a similar rendering-order issue in another 2D engine.

Family owns the behavior. Member inherits. Save and reload if inheritance looks broken.