Posts by punchbird

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!


    That's actually pretty incredible. I am going to purposefully create some issues, and see if it can solve them!!! :D

    Can you add an option that exports the events as pseudo code that we can use to feed-in to ChatGPT ? This might help (me) with troubleshooting ,


    I am wondering, how you go about this? I would love to have assistance troubleshooting ometimes.

    For example, say you copied the events from CTF2.5, and pasted them as text. What do you ask ChatGPT? Does it know what CTF2.5 is?

    Hey thanks for this reply. Are there any plans to have it work on other runtimes?

    I had the same problem and was all set to write some madness array based save file monstrosity. I had even planned it all out in Excel. It was going to suck, big time.

    Then I discovered "Save Frame position" and "load frame/application position". If you are using mostly stock objects and extensions this will work great. All I had to do is run a quick routine on load to place my backdrops again .

    Saved me COUNTLESS HOURS, but also may not work for some, probably many, projects. You might consider using it in conjuction with an array or something though. Like use an array to track all your non-clickteam objects, values, and settings. Maybe you can cut your workload down a bunch.

    I really wish Clickteam had a universal "save state" action though!

    Hey thank you for the reply

    So, I should be fine I think, since I don't use any third party extensions. I will have to do some testing with the loading of a files from a previous version, though..

    Assuming no third party extensions or anything, is there anything you know of that it won't cover?



    I was hoping for clarification on a feature I have been using. I had planned on making a save-game system using an array in my project. It would be rather fairly straightforward but also quite time consuming!

    Then I discovered "save frame position" and "load frame position" (also "load application position). I had not considered this before since I just thought it saved objects positions on the screen and nothing else. I was mistaken though and it seems to work quite well for basically zero effort - it seems to load everything but backdrops, but since it's tile based game I just run the tile placement function on load and everything seems to be fine and exactly as I left it! I had some questions though:

    1 - What is the difference between "load application position" and "load frame position"?

    2 - loading a previous savestate file after making edits to the project gives an error message about the file being for a previous version of the application. I understand why, but will this break people's save games if I update the game, for instance? is there a way to silence the error?

    3 - What data/objects does "save frame position" encompass when it saves the state to a file? I can't find much info online except that it doesn't cover third party extensions (which is fine, my project basically only uses default extensions except string parser)

    So far it seems to be working perfectly, but I don't want to miss some super important gotcha down the road



    In my project I am often needing to process values in an array (mostly for generating procedural maps). Often that is based on the values of the surrounding tiles.

    So I came up with a little search function that can search in a square around the current position in the array for a specific value and count them up. It excludes the middle value (origin of the search) so the max "hits" you can get is 8

    Take for example a 0-based array filled with all 1s:


    Given a range of 1, if I check at 1,1, I will get 8 "hits"

    But on an Edge (1,0), I will get 5 "hits" and on a corner (0,0), only 3.

    It works well enough, except if Y=0 then it always adds one. So 0,0 or 2,0 (corners) get a count of 4, and 1,0 (edge) gets a count of 6

    Can anyone see, based on my picture, what I might be doing wrong here? Or maybe there is a better way to do this you have :D Thank you in advance

    Please login to see this attachment.

    How about using a sub app? Pause the current scene completely and have a sub app with the options in it. You can pass global variables back and forth between a sub app and parent app. That is what I use in my project

    Hey so I have struggled with low res sprites as well. I have noticed Fusion is not quite the best when it comes to low res pixel games and you have to do some work to make things better.

    One thing you can do, is make your images larger to begin with. 32x32 is 4x 16x16 so you could just make them 32x32 to begin with.

    What resolution is your frame/application running at? You could also decrease the resolution of the application so it will scale up.

    Scaling, though, is an issue, because low res pixel art will not look good when scaled by non-integer values (for example, scaled 1.5x or 2.5x rather than 2x or 3x etc), and Fusion has no built in integer scaling.

    You can use the Ultimate Fullscreen extension to achieve this, it is Windows only though IIRC.
    I have a solution in this example here (among other things), but it requires use of a sub app. It works well, however, and should be platform agnostic.
    Please login to see this link.

    My project runs at 640x320 resolution, which scales nicely to 720p, 1080p. I use the exact system in my example above (until Clickteam implements proper integer scaling, that is. I did ask the question and was informed it's not on the list of coming features but may be added in the future). Non 16:9 aspect ratios get letterboxed which is necessary if you want to keep the integrity of your pixel art. so for instance, if you run it on a 16:10 screen, say 1920x1200, the app will scale to 1920x1080 and you will have horizontal letterboxing.

    I hope that helps! I really wrestled with scaling until I came up with the sub-app system in my example


    Yes, the new build should be in My Downloads after checking out, as "PocketBase_Ext_002.7z"

    There is also "PocketBase_Server_001.7z" that contains a wrapper program to run PocketBase, along with the PocketBase server binary and migrations for the example GameSessions collection used in the mfa.

    Incredible, thanks so much for this, I plan to dig into it this weekend!


    I am deeply grateful for your bug report as not everyone reports issues like this and it is very, very helpful when people do report them.

    Let me know if you need anything else, I'd be happy to discuss specifics of how to use the extension -- with anyone who is trying to use it!

    That's awesome. have you updated to this new version in the Clickstore?

    Oh wow, the example provided is indeed very powerful, perfect even. It's a lot to unpack, looks intimidating, but I'll give it a good read.

    Is it possible to insert this widget into existing applications? Or is it very dependent on those global values?

    Hey yes you can!

    So there 1 global value in use for blitting there, and only because the options menu allows for adjusting the speed of the text. Other than that it is self contained and should work simply by copying all the objects!

    textspeed = This is for the "Text Speed" setting in the options menu. So the user can choose the speed of the text, and it is reflected in the blitting engine. Even if you don't use subapps, it would be a decent idea to have a global variable for this (if you want the user to be able to adjust text speed) so it remains consistent between frames. Otherwise, just set the Text Blitter Object's Blit Speed and LoopDelay values to whatever suits your tastes. This example has 3 speeds, and the value of textspeed alters the Text Blitter object's Blit Speed and LoopDelay variables which combine to control the speed of the text appearing on screen. Referenced on lines 83, 84, 85 of the Text Blitter object's behaviour.

    IIRC the 2 variables on the Text Blitter object for speed perform the following functions:

    blit speed = the # of characters blitted at once

    loopdelay = the delay between blitting however many characters you specify in "blit speed".

    PLaying with these values can get you some interesting results. For example blit speed of 10 will blit 10 characters at a time. 150 will blit 150 simultaneously! Good if you just want your whole paragraph displayed right away. Blit Speed of 1 and Loop delay of 40 will slowly place 1 character at a time. Blit speed of 5 and loop delay of 40 will slowly place 5 characters at a time. IIRC 40 is VERY slow, you usually want to stick below 10, even 10 is painful if I remember :D

    Similarly for the input blitter object, there is 1 global value and 2 global strings in use. :

    inputlength - set to control the # of characters the user is allowed to input, to pass to the input window sub app. Referenced in line 25 Input Blitter object behaviour

    inputFrameText - used to pass some pre-determined text from the game frame to the input sub app frame, ie, "What is your name?" etc. Set in frame (do a search all for this to see how I used it in the example)

    InputFrameOutput - used to pass whatever the user entered in the input sub app frame, back to the game frame! Set by taking w/e the user inputted (search for this as well to see how I used it in the example)

    Obviously the method of engaging and passing the input around could be done however you want, the example just shows one way to utilize it!

    I hope that makes sense. Mostly the global variables are there for passing info/settings of the blitting engine between sub apps and/or different frames, as needed by other parts of the example which use subapps to achieve the goals (namely the pause/settings/input menu). If you aren't using subapps, you could probably put those as variables on the Text Blitter / Input Blitter objects themselves, and make them global objects. Or modify the references in the code to point to new global variables!

    Tonight, I will add this explanation into the MFA because it seems I neglected to add an explanation of the text speeds! edit: NM - on second glance, I did explain these variables in there :D

    Hi! I've disliked the default String Object for a long time: you can't customise it much and you can't even disable antialiasing in most exporters. I've always avoided it when possible.

    For pixel style games, I've always gotten by with the Text Blitter extension. However, even that is quite limited (monospace and windows only.)

    I know there are examples where people make their own blitting objects but this seems very time consuming and resource-heavy, especially if you're making a game with a lot of dynamic text on-screen.

    Basically I just want to know what's the most popular method to use right now. Surely there has to be something better than the default String Object?


    You may find my blitting engine useful. It uses a handful of objects to provide a pretty flexible blitting system. It should be compatible across all platforms, but I haven't tested on mobile TBH. The MFA is pretty well documented throughout. It supports fixed width and variable width fonts with only minor changes (notes in the MFA show you exactly what to change).

    Please login to see this link.

    Yeah, you guys are right. Myself and about a million others have been dealing with this.
    You believe what you want. However, why don't you buy yourself a VERIZON SAMSUNG phone and Install one of your Android apps on it. Tell me if it functions like all other Android Devices and allows you access to internal files. I won't be waiting! XD
    There is a huge difference in Windows 10 versions. Some allow .exe and some do not! Mine did not at first! Now it does.
    I still have not figured out how to bypass Samsung Verizon phones blocks yet, though.

    As far as a conspiracy nut, Thanks. Funny thing is a conspiracy nut has no real proof. All I have to do is reset this laptop to factory and Walla. I can't install any .EXE files or else Windows Defender Deletes them. Same with many other users of Windows 10 and 11.
    Please login to see this link.

    I can't speak for Volnaiskra outside of his posts here (but they always seem to be thoughtful and technically sound), and I'm not going to give you my resume and credentials (suffice it say I have a great deal of knowledge in this subject by nature of my employment over the last decade and a half), but your condescending and aggressive attitude is uncalled for. I understand you may feel attacked after being corrected not once but twice, by two different users no less, but chalk it up to a learning experience. I am purposely avoiding dismantling your posts here piece by piece to avoid any further argument, but rest assured the fruit is hanging so low the worms can taste it. Side note, you may want to actually read some of the results in your Google search there, it's hardly the "gotcha" you intended

    At any rate, as a test, I just downloaded an EXE I made in Klik and Play back in the 90's, and another made in TGF from maybe '99 to 2000, on to my Windows 11 work laptop. Aside from an admin prompt to install, it ran perfectly (I wish 10 year old me chose better fonts, though, X) ).

    You could use some education on these subjects, but by all means believe what you will, it's not my place to convince you otherwise

    ... and FTR, Microsoft's antitrust lawsuit had nothing to do with certificates: Please login to see this link.

    Not to be that guy here, but everything you wrote here is completely out to lunch, apologies
    First of all the thread is 2 years old and about McAfee, not Windows Defender.

    There is no "specific code" in Windows Defender that just says all EXE are viruses. There is no agenda against EXE file format. Certainly, however, many EXEs will be flagged if they meet certain requirements for suspicion. And typically all incoming files are scanned by Windows Defender or w/e antivirus you may use.

    EXE is often a restricted file type with many, if not all, consumer and enterprise cloud services, including Microsoft, and as you found out, Google and Facebook. It's a common vector for infection so it shouldn't be a surprise. However neither Windows defender, nor Microsoft, has anything to do with Google or Facebook messenger or anyone else not accepting your EXE file.

    Microsoft doesn't make anyone pay for a certificate to avoid AV detection any more than GoDaddy makes people buy an SSL certificate for their website: it's a best practice EVERY legitimate company, publisher, software developer, web site does (and should do!) to prove to the end user that A- they are trustworthy, and B - the file you are downloading is actually the genuine article. Of course nobody is forcing any software developer to buy these certificates, but similarly, you can go ahead and setup an e-commerce website that uses only HTTP, and let me know how THAT goes for you :) Speaking out against certification is certainly an interesting take XD

    In regards to McAfee, I have discovered over the years that all third party AV are just snake oil. Windows Defender (since the last 10 years or so anyways) works as well or better than any third party product, and causes fewer issues like the one the post is originally about here. Just don't waste your money folks.