BeatsByZann's Forum Posts

  • No problem, good luck!

  • In that block you are picking all the children of cards who are also cards. If you are trying to move child text boxes you need to pick them as the type of children. You might also want to use the "move in front" rather than just setting all the children to the top of the layer. Its easy for other objects to get in between the z order.

  • Thanks XHXIAIEIN and dop2000, I'm saving both of your responses in my personal C3 cheatsheets. Really made a few things clear that I didn't get from the manual or sample projects.

  • For anyone finding this and having the same problem, see this github bug report: github.com/Scirra/Construct-bugs/issues/8576.

    I have applied the edits recommended by Scirra and was able to successfully open my project. If you don't know how to edit project JSON's from outside the app, post here and I'll walk you through it.

  • Ok, thanks both of you for responding, and thanks for submitting that bug report I see both your responses on Discord as well. It sounds like this is all connected, the prolonged saving and the file corruption. What's weird is the corruption of the saving seems to have been within a limited time period for me. The auto save and and the manual save at the time both got corrupted but the next day when dop2000 asked me to try opening a working version and saving then I was able to open the newly saved file. I just tried again and confirmed that I can save and re-open working files. Why would this only affect that period, at least a 20 min period, where it would corrupt both the auto save and the manual save? Very strange.

  • dop2000 any other suggestions?

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • By any chance, does this relate to multiplayer in any way? Lobbies?

  • Oh, well, that clears it up. I feel kinda silly now, I guess I was overthinking the question.

  • Oh, and the only add on in the project is Overboy's Dictionary Behavior, but I didn't update it recently, and it's not in use on any objects, it's just added as a project behavior.

  • dop2000 I tried your experiment and I was able to open an earlier version of the file in the latest beta, save it as a new file, close it and re-open it.

    I have already tried clearing all browsing/cache cookie data. And as another note, I do remember yesterday that Construct was being finicky when saving. I had both affected project files open and I had to click save several times on each project in order for the save icon to deselect and construct to allow me to close without giving me the "leave without saving changes alert".

    I appreciate the help. One of the affected files has virtually no changes from the previous version, but the other has 3 days worth of particularly tedious work that I'd really rather not lose.

  • To add a detail, I can still open earlier versions of my file from yesterday and before as well as any of the sample files. Its just the two project files that I saved today that are affected.

  • I just posted a similar bug with the exact same first two errors listed.

  • I'm now dying to know.

  • Hey everyone,

    I saved my project file in the latest beta release a couple hours ago and now the project file won't open and is reporting as an invalid project file. This has happened to me a few times now and usually I can figure it out by looking at the console errors and editing the extracted JSON but this time I can't make heads or tails of the errors. Any ideas?

  • Monday, March 3, 2025

    8:20 PM

    I've only been using Construct and developing for six months but I've come up with a few tricks to keep my own sanity that I haven't seen in this thread yet.

    1. Use "Lookup Variables" for strings that need to be passed as parameters in expressions/conditions.

    a. e.g. Prevents having to remember the tag string you used in a timer/timeline/flowchart somewhere else and from mistakes from typo's.

    2. Use families to create organized "variable groups" within objects you are using as global variable banks.

    a. You can reduce the number of global objects you use as global instance variable banks.

    b. Looks cleaner and more organized when looking at the instance variables in the Properties bar

    c. Keeps the global variable name space tidy. Just enter the family name of the subset of variables you want to enter into an expression and get a smaller autocomplete set.

    d. My examples below show me using this for a set of lookups (I think of these as the construct version of lookup tables) but you could use them for any set of variables in a global variables object.

    3. Make logging work for you and your visual style.

    a. The more complicated your project with logic broken out in more event sheets, the harder it is to debug.

    b. Create your own logging functions to give you information in the console that makes sense to you and helps you debug your particular logic structure

    Here is a vertical slice example of how I use "lookup variables" in family-organized "variable groups" to support my logging functions which give me visual clarity into what my application is actually doing.

    Set up multiple families for each group of variables on the same object:

    NOTE: Here I am using ForConstruct's "Globals" object plugin, but you could do the same with any sprite on a layout that you mark "Global"

    Now create FAMILY-LEVEL instance variables on your global object:

    Now your variables (in this case they are being used as global constants) are divided into easy to read groups (Construct 3's version of lookup tables in this case).

    NOTE: I am creating an underwater game, so I was actually able to find corresponding emojis to many of my enemy types. I use them in the console logging because I'm a nut.

    Now you can search the autocomplete namespace by using the family name when using in expressions:

    Now for my logging. My undersea enemies have complex movement that can't be replicated by a single movement behavior in Construct 3. In order to get the different movement patterns I want I have a hierarchy of actions named Phases, Modes, and Behaviors.

    • Phases call a specific Custom Action which starts a specific movement/animation combination. (e.g., signal you are about to move, move to location, pause for a duration)

    • Modes are combinations of one or more Phases

    ○ e.g. Mode "Pulse" = Signal Move, Glide to position, Pause

    ○ Mode "Drift" = Drift slowly to ocean floor.

    • Behaviors are combinations of or repetitions of Modes,

    ○ e.g. Behavior "Rise_And_Fall" = Set Mode "Pulse" repeated till you hit the surface, then switch to "Drift" until you reach the ocean floor, repeat.

    But I have this logic spread out among different event sheets, Phases and Modes in their own sheet and Behaviors in a master Enemy Logic sheet, plus another sheet for Advanced Signal Listeners (Thanks Overboy!) and triggers, which control the shifts between the different states

    . It can be tough tracking bugs across all this.In this console screen shot I use indents and icons to visually show the filtered behavior of a single enemy and I can see its entire behavior cycle across my various event sheets.:

    I can now see the enemies AI lifecyle in a visual manner that makes sense to me and allows me to easily spot when things are happening out of order or are missing. For instance:

    All game events call signals to logging functions so I know exactly what is happening, for instance when a player is struck by an enemy:

    The attack is resolved in its entirety before the system moves on to anything else.

    But when I hit an enemy with a projectile I see this:

    The game is allowing the enemy to call parts of its action AI before the attack is entirely resolved. Even though this isn't causing any bugs right now, I know this is asking for trouble. There are almost certainly going to be bugs where an attack results in an enemy death, but the proper animations don't fire because its calling the AI which is also messing with animations and variables. I now know I need to fix this to avoid problems in the future.

    Anyways, curious to see people's thoughts on the above. Has anybody been using families with global variables like this already? Does anybody else have console logs that look children's picture books? Am I just weird with this stuff?