Posts by TheFieryPlumber

Welcome to our brand new Clickteam Community Hub! We hope you will enjoy using the new features, which we will be further expanding in the coming months.

A few features including Passport are unavailable initially whilst we monitor stability of the new platform, we hope to bring these online very soon. Small issues will crop up following the import from our old system, including some message formatting, translation accuracy and other things.

Thank you for your patience whilst we've worked on this and we look forward to more exciting community developments soon!

Clickteam.

    //UPDATE//

    So apparently, the spreading of values is not the issue. As it turns out, something is going on in the ForEach loop of Object_ID that’s delaying actions when it shouldn’t. Here’s where I’m going at:

    So Spawn_Object, after being created by Home_Object, does a series of events that makes said object classified as “Active”. Without the addition of the special Home_Object, Spawn_Object can activate itself using the ForEach ID loop just fine: three Spawn_Objects show up and no matter the condition of each one, they all do their activation just fine. However, they HAVE to be spawned at start in order for it to work properly besides a few exceptions that require a lot of workarounds and it’s heavily isolated.

    The Home_Object thing is meant for a special event that spawns Spawn_Object in random locations. From the very beginning, hints of this error started showing; and no matter how much I force a Spawn_Object to take an ID of the Home_Object it’s overlapping, it will always do this.

    HO1 spawns SO1 : SO1_On
    HO2 spawns SO2 : SO1_On SO2_Off
    HO3 spawns SO3 : SO1_On SO2_On SO3_Off
    HO4 spawns SO4 : SO1_On SO2_On SO3_Off SO4_Off
    HO5 spawns SO5 : SO1_On SO2_On SO3_On SO4_Off SO5_Off

    Then the pattern repeats when one activates in the queue after every two spawns. Different events happen when I tinker with the code, but these base rules remain constant no matter what. Why does it do that? I do not know, but forcing ID to Spawn_Objects does not help in the slightest.

    Solution: Ditch the Home_Object altogether and add 10 Spawn_Objects at the same time instead. These Spawn_Objects have to be given special instructions for this particular event; nevertheless, this might be more manageable in the end than forcing these objects to pop into existence when required. Hopefully, the ForEach loop will not do that nonsense this time!

    P.S: There must always be an object with the ID value of 0 for the ForEach loop to work. I learnt that the hard way.

    Wow, not answering that question deleted my initial response! How swell!

    I assumed not using an “off” switch so to speak, “If ID of X <> ID of Y” for example, will make the program attempt to perform that action indefinitely similar to how the *Always* condition does its thing; and applying the condition will make the program ignore the command when it deemed unnecessary thus saving performance. Well if that’s not the case, then that’s some news to me! I will still do it out of habit, but these actions aren’t often the ones that makes my performance dip on occasion. Nope, it’s often the necessary Always commands, that includes the “test ID” command that has to run a ForEach loop all the time.

    The middle line seems redundant to me.

    The middle line is meant for the game to never repeat the action once it’s done. The Spawn_Object will not take the ID of the Home_Object if they’re already equal.

    As for Fixed Value, it seems like a great idea and I would love to use it once I make a fresh game again; but not this time. Too many objects rely on the initial ID method that changing it would be a greater hassle than using the simpler solutions posters here are suggesting.

    I unfortunately, have to hold off programming until tomorrow, but I’ll get down and dirty with these suggestions once I finish my afternoon errands!

    What about fixed values?

    Considering how my mother and child objects relies on organized ID values, changing it to rely on fixed values instead is way too much to handle: it might even require a complete rewrite.

    As for the other solutions defisym and YesNoYes suggested, I might try it out tonight AFTER testing one method I thought up after I left programming for the day.

    There was this one method I was trying that tells it to do this (Note: This was after spreading the values of Home_Object):

    Spawn_Object is overlapping Home_Object
    ID of Spawn_Object <> ID of Home_Object
    Set ID of Spawn_Object to ID of Home_Object

    I thought something this simple would work: however, every time a new Spawn_Object is created, all other Spawn_Objects will take the ID of the Home_Object that recently created one of these. There is definitely a solution for this, but I would have to investigate my code to understand why my Mother and Child worked so well before and attempt to replicate it in this situation.

    I’m beating my head against the table here!

    I want a sequence where I want the same kind of objects to spawn in certain spots at random. Everytime the timer hits X, the object is created in the designated spot told by an RNG. The problem is, these objects use Spread Value to separate themselves from each other: ID values. However, a major drawback I’m realizing from “Spread Values” is that newer objects will always take the lowest number while older objects will have their IDs replaced with older ones. It’s normally fine if the objects are created upon start-up: however, once an object is created due to an event, the other objects go haywire because their relationship with one another has been compromised by the change in ID.

    I wonder if you can make the “Spread Values” work backwards: make the newest object take the latest ID number while the older ones keep theirs. Or at the very least, does someone have a way to circumvent this problem? It’s giving me a massive headache!

    I’m trying to get an object from Clickteam to take a variable from the index.html and use it for one of its values: strings to be more specific. But no matter what I do, the object doesn’t get the result from the called function.


    From Clickteam:

    At the Start of Frame
    - HTML Object: Call Function “GetString”
    - Object: Set Alterable String A to JSStrResult$(“HTML Object”)

    From JavaScript Index.html:

    const samplestring = ‘hypo’ ;

    function GetString(para_Meter) {para_Meter = samplestring;
    console.log(‘this string here is named’+para_Meter);}


    Judging from the web console, the function does work when the Clickteam App calls it: it says “this string here is named hypo”. Despite this, using some debugging methods, the object still doesn’t have the string.

    The object’s Alterable String should be “hypo” but it remains empty

    What exactly am I missing here? it seems like a simple set of instructions.

    So I did a multitude of testing and these are my results.
    I used Alterable Values from an object in the debugger to see the current volume levels of the four channels.

    • Checking the debugger, it shows that the volumes of all four channels remain the same: dispite it sounding like it’s jumping out and about.
    • As you said, NaitorStudios, the debugger also shows the sample playing on their requested channels: none of the samples are playing multiple times on different channels.
    • I went a little experimental and checked to see the ‘main volume’: it stays at 100 no matter the changes of the channels, and manipulating the main volume as well results in the volume levels being more finicky than leaving main volume alone. Changing it to 5 or below will simply mute the game completely.

    What I find most odd is while running the game in the Editor Runtime and as a stand-alone executable, it gives me this jumpy inconsistent volume: however, the HTML version I released uses similar code, but changes the volume EXACTLY how I want it. The HTML version never has its samples jump unpredictability. Just in case anyone asks, I’ve tested the same HTML build I published some time ago from the Editor Runtime and I still got the same problem.

    Maybe some instructions are treated differently by ports, but man, I really want to take whatever the HTML version is doing with the channel volumes and put it into my executables.

    All of my samples are played as (uninterruptible): they won’t overlap if they’re from the same channel. If by “logic” you mean my events, there are only two events that is meant for volume control and it only happens in the first frame.

    Always
    >Set Alterable Value (Playing Volume) from “Controller” object to X

    Timer is under .3 seconds
    >Set Volume to “Controller’s (Playing Volume)”

    The result of these two events do carry over to the rest of the frames as changing the value number also changes the volume’s lowest point; however, the samples just peak randomly without explanation. There’s even a melody playing that sporadically has some its notes in the middle be put on full blast and ends on the recommended volume.

    I now have a theory on why this happens, but I have to do some checking much later today before I can confirm it.

    I’m working on a few improvements from my game when I noticed something off. I want to adjust the game’s volume based on the recommendation of the player: just simple sound settings. However, whenever I try to set an action that sets the game’s or channel’s volume, it does lower it to the requested volume, but it frequently jumps to much higher levels than what it’s supposed to. The action is to have the Sound take the volume level from an Alterable Value from an object. That requested action is only executed once at the beginning and that execution carries over to the rest of the frames, albeit somewhat. I want the volume to stay to that level without it jumping and shocking any of my players.

    Has anyone faced a similar problem like this?

    RESOLVED: Sometimes even the most complicated problems only require the simplest solutions: it’s finding said solutions that can drive someone bonkers. For those of you who have Clickteam and later buys a few add-ons for the program, it’s paramount that you do this before installing said add-ons: Uninstall Clickteam

    What you have to do is uninstall Clickteam and reinstall it fresh without any updates. After that, install any of the add-ons into Clickteam, and then you update the program. Doing that made my HTML exporter work and some features that were strangely missing in the DLC finally showed up as well. I was thinking backwards when I installed Clickteam. I thought it had to be updated first before installing any new add-ons: big mistake on my part!

    Big thanks to Jeff of Clickteam Staff for bringing up the solution! I can finally make HTML games for once!

    All I want to do is to convert my game to a workable HTML format, but sadly, I believe it’s unacheivable without a page 1 rewrite and even that’s being optimistic!

    Upon the first few conversion attempts, Clickteam refuses to build the game and crashes for even trying. I pulled apart my game to just single frames to figure out the problem, yet the source of the problem is not always consistent. Apparently, one probable source is a long sound effect, but there are other long sound effects that do not crash the program but lowers and heightens its volume at random.

    If I was spared from having my program crash, (by reducing the game down to a single frame), I get to witness the beauty of having a build “run” but at the same time “not run”: only the sound is running, but everything else is locked even a frame with one animated object. You know what weird solution I found for that predicament?… Abandon Ship! If I move most of my frames from my app to a fresh new app sharing all the required settings to convert to html, all those frames run on that new app. As I was changing the settings on the new app to what was on my old app, it still works! It’s as if the thing running the html just hated how the old app’s icon looked and that’s it!

    So okay, just move all frames from the old app to the new app, right? Easier said than done! The build crash is still in effect. Could it be because the game has too much stuff? Probably, but it has crashed when there was only two frames present; that’s why, I assumed it was a sound effect that was causing the issue… but even that could be bunk because I once disabled the command to play the sound: that allowed it to build! So I re-enabled the command to play the sound… that also allowed it to build!! Why!?

    Hmm-mm! Sorry. I exuded a bit of optimism from all that confusion. Because even though I somehow managed to have the game build, even if I immigrated everything to a new application, I will still be left with a broken game. Frame rates aren’t treated the same for html files compared to .exe or .mfa files, objects randomly pop in and out, a lot of actions no longer work and the sound comes and goes like a makeshift doppler effect. Better off keeping the game in .exe format, huh?

    I feel ya, @warlords… Right now I’m trying to convert my game to an html format; however I’m coming across a surprising amount of snags!

    Just building the game to begin with is a hassle because the Clickteam program itself, more often than not, crashes in the middle of building. It doesn’t give a reason for why the game crashes: it just does, and Windows forces me to close it.

    After skimming down a lot of necessary frames, I managed to make an html ““build”” of the game: except, it’s unplayable! “Resize display to fill window size” doesn’t work, keyboard/controls don’t work and the game itself refuses to run other than its sounds and that’s it. It runs nothing like how it runs as an exe file or testing it through Clickteam’s Editor Runtime.

    Thanks so much for responding! While it is a bummer that I cannot access or manage the behavior order manually, knowing that I can swap the priorities between the three events leads to a great workaround! Also, my mistake! I got what I assumed was the default from an forum post here.

    The reason why I even asked is because there is ONE group of commands that must be last no matter what, and that’s anything that has to do with scrolling. Scrolling makes objects choppy if their movements are after the scrolling instructions and not before.

    But thanks again for the response! This helps a lot!

    Let me explain:

    Usually, Clickteam goes by certain rules when it comes to which conditions and events is activated before and after one another: usually by top to bottom, but sometimes immediate like when an object collides with something. There are three (I’ll call them “places”) that use the Event Editor: Global, Frames, and Objects. From what I gathered, which place is prioritized before the next is exactly how I listed formally. So we know that the events in the Object behaviors go after the events from Global and Frame so long as it isn’t triggered from an immediate condition.

    Now back to the question:
    If the application has multiple objects in the same frame with each having a behavior, which object behavior goes first? If Object A, B, and C all have Alterable Values that count up by 1 every frame, which one gets the first number and which one gets the last number before the cycle loops back? How do we make sure Object A will always be counted first and Object C will only be counted after A and B were counted? Is it Alphabetically? Is it based on which object was created first and if so: created first in Clickteam or created first during the application’s runtime?

    So this question may be older than I assume, but I really want to know if there are any changes after the tons and tons of updates this program had since it was a problem for some, years ago.