question for the devs: what clipboard format does Fusion use?

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.
  • This is a question that I presume only the programmers of Fusion can answer - though of course if anyone else knows, please pipe in.

    What clipboard format does Fusion use when you copy/paste an action or a condition (note: I'm not talking about the new feature that converts an entire event into text form when you hit ctrl-C on an entire event)?

    I've recently started using a clipboard manager program called Ditto which remembers multiple snippets that you've copied and pasted and lets you re-copy/paste them at will. You can pin frequently-pasted items to the top of the list, you can give certain snippets their own hotkeys, and other very useful stuff like that (how I wish I had discovered this 10 years ago!).

    It supports multiple clipboard formats, such as images for example. It would be super useful to be able to store Fusion actions or conditions too (eg. imagine being able to add only once when event loops or for each object ("group.Enemies") with a single hotkey or two mouse clicks). Below is a list of all the clipboard types that it comes with. I've tried installing all of these, but Ditto still doesn't recognise Fusion actions/conditions when I copy them. There's also a "CustomClipboard Type" option, where you can enter something in a text field, but I'm not sure what format it expects. It also allows you to enter Please login to see this link.that is to be run every time you copy/paste something.

    I know this is probably a long shot, but is there any way to get Ditto to understand the clipboard format Fusion uses for actions/conditions?

    Any help is appreciated. Thanks.

    Please login to see this picture.

    Please login to see this link.
    My Fusion Tools: Please login to see this link. | Please login to see this link. | Please login to see this link.

  • Quote

    There's also a "CustomClipboard Type" option, where you can enter something in a text field, but I'm not sure what format it expects.

    Try the following custom types:

    CF_CNCV25_EVENTS (for events)
    CF_CNCV25_CONDITIONS (for conditions)
    CF_CNCV25_ACTIONS (for actions)

  • Fantastic! It works! Ditto only records generic names for the actions and conditions, so the snippets all look the same on the Ditto clipboard, but that doesn't really matter as you can easily rename them.

    Please login to see this link.
    My Fusion Tools: Please login to see this link. | Please login to see this link. | Please login to see this link.

  • This is awesome. My preferred way of working in Fusion has always been to grab object icons from the event list editor and drag them onto new actions/conditions (or copy/paste duplicates of existing actions/conditions) and make new events that way, rather than having to start every event from scratch, locating each object one by one in the popup dialog. But of course the objects you want to use aren't always nearby, and Fusion won't let you drag them onto the Event List Editor from the Workspace toolbar. But now, thanks to Ditto and the 'secret codes' from Yves above, I can create this event anywhere I like with a hotkey, and all my most frequently-used objects are there ready to be dragged:

    Please login to see this picture.


    Also, I've always wished that I was more organised with color-coding comments, to minimise the time I spend each day getting lost in my 6000+ events. But changing comment colors has always been too time-consuming for me to do it with any kind of consistency and discipline. But now I can have a readymade bank of differently styled comments ready to paste whenever I want. Thanks [MENTION=5114]Yves[/MENTION], you've made my day :)


    Please login to see this picture.

    Please login to see this link.
    My Fusion Tools: Please login to see this link. | Please login to see this link. | Please login to see this link.

  • No, I don't think you can modify events. You can modify their descriptions though to make them easy to search for within Ditto

    Please login to see this link.
    My Fusion Tools: Please login to see this link. | Please login to see this link. | Please login to see this link.

  • Oh, that's not a real event. That's just a 'fake' event that contains all my most-used objects. So I can just paste that fake event whenever, and quickly 'grab' objects from it by dragging them from it.

    If you want to see a really obnoxious event, this one is my particular favourite. I probably couldn't tell you exactly what it does even if my life depended on it :o:

    Please login to see this picture.

    Please login to see this link.
    My Fusion Tools: Please login to see this link. | Please login to see this link. | Please login to see this link.

  • By the way, I now use Ditto in conjunction with a Stream Deck, which is a (physical) configurable macro button device. It's amazing. I now can insert all sorts of conditions/actions/events/text snippets just by pressing a button:

    Please login to see this picture.

    Some of the buttons (eg. "Str$()") just type a piece of text. But others (eg. "For each loop") are mapped to a hotkey that pastes a Fusion event from Ditto's saved clipboard. Stream decks aren't cheap, but this is one of the best productivity improvements I've ever made.

    Please login to see this link.
    My Fusion Tools: Please login to see this link. | Please login to see this link. | Please login to see this link.

  • My mind is truly blown!

    Great idea using the streamdeck btw. I just picked up an XL and this is such a great use case, I'll have to set it up!

    oh, awesome! Do yourself a big favour and get the Please login to see this link. plugins for the Streamdeck. They're more powerful and dependable than some of the default functions. In particular, get SuperMacro, which gives you much more control over macros, and doesn't insert unnecessary pauses between keypresses like the default functions sometimes do.

    Please login to see this link.
    My Fusion Tools: Please login to see this link. | Please login to see this link. | Please login to see this link.

  • Sorry to bump this out of the grave but is there a clipboard code for an empty child event?

    Please login to see this link.
    Please login to see this link.|Please login to see this link.|Please login to see this link.

  • Sorry to bump this out of the grave but is there a clipboard code for an empty child event?


    You can use an auto-hotkey script that will right-click and navigate to the menus using arrow keys to select the child event or use mouse position and click. The script is fairly easy to understand and chatGPT can make it for you.
    If you look into Vonaiskra photo of his stream deck he does have child event button but must right-click first. Perhaps a combination of right click using Bar Raider and then launching the shortcut for child event?

    Ok I was searching the post about Stream Deck so I'm going to bring this post back from the dead to ask Volnaiskra: Has anything changed in your workflow since then? I'm thinking of using Stream Deck with Fusion pairing with auto-hotkey and not sure if I'll find Ditto that much useful. Sure I can paste "always" "loop" and "group" stuff but Fusion already can insert events with a hotkey and I'd have to search for the object I need in any case. From your photo of stream deck it looks like most of the stuff you use Ditto for can be made using BarRaider plugin with StreamDeck without Ditto's aid. Any update is appreciated. I'm using your Productiva skin for years. The colors is really easy on my eyes :)

  • You can use an auto-hotkey script that will right-click and navigate to the menus using arrow keys to select the child event or use mouse position and click. The script is fairly easy to understand and chatGPT can make it for you.
    If you look into Vonaiskra photo of his stream deck he does have child event button but must right-click first. Perhaps a combination of right click using Bar Raider and then launching the shortcut for child event?

    Requiring the right-click is by design, as a precaution. My macro creates a dummy 'always' child event, then immediately deletes it, so that I can start making the child event I actually want. Therefore, the macro contains a delete keypress. So if I don't put the mouse cursor in the right place, or it slips as I press the StreamDeck button, the macro could accidentally delete who-knows-what. Requiring a right-click helps ensure that the macro will be activated in the correct spot. I don't find it very inconvenient to have to right-click - the real inconvenience is having to move the mouse cursor to the correct spot in the first place, but this is unavoidable in any case. Since I have to move the mouse cursor already, right-clicking is not really any more work.

    Quote

    Volnaiskra: Has anything changed in your workflow since then? I'm thinking of using Stream Deck with Fusion pairing with auto-hotkey and not sure if I'll find Ditto that much useful. Sure I can paste "always" "loop" and "group" stuff but Fusion already can insert events with a hotkey and I'd have to search for the object I need in any case. From your photo of stream deck it looks like most of the stuff you use Ditto for can be made using BarRaider plugin with StreamDeck without Ditto's aid. Any update is appreciated.

    I use AHK a lot too (in case you haven't seen it, I posted some useful AHK snippets Please login to see this link.). But I definitely use Ditto extensively with the StreamDeck, whenever a macro requires the use of a specific object/event rather than a generic one.

    For example, my input system has an altVal called modifiersPressed that keeps track of whether alt/shift/ctrl are pressed (if ctrl is pressed it's 1, if shift is pressed it's 10, if both shift & ctrl are pressed it's 11, etc.) I use this quite a lot, and with StreamDeck+Ditto I can paste the condition with a button press, instead of having to find the object then find the altVal each time. This is specific to me, but I'm sure you also have particular altVals in specific objects that you use a lot.


    Please login to see this picture.




    I also use it to paste various 'dummy' actions that I've saved in Ditto. The action refers to a dummy object, but it only takes half a second to replace it with the object I actually want (which is usually nearby and ready to be dragged). For example, to add translucency to an object, I'd normally have to create a new action, search for the correct object, navigate to "Effect", then navigate to "Set alpha coefficient". Or I can just do this:


    Please login to see this picture.


    The above would be tricky and probably quite unreliable to achieve with StreamDeck alone. I have similar StreamDeck buttons for rgb, bring to front, and reappear (in both Active Object & String Object variants):


    Please login to see this picture.




    I've always found setting up For Each loops quite tedious. So I also have a button that pastes the following event, which contains a readymade forEach action and condition. Then I can just drag the action and condition to where I want, and replace their icons with the appropriate objects:


    Please login to see this picture.




    I also use StreamDeck+Ditto for all of my comments. I find that using different colors and sizes of comments makes my code better organised and more readable. For example, the picture on the left gives a clearer sense of hierarchy:


    Please login to see this picture.


    But changing the color and/or size of every comment I make would be horribly tedious. So I just have a bunch of StreamDeck buttons that paste preset comments I've stored in Ditto. If I press a button while holding CTRL, it will produce a larger comment (eg. the Orange button produces the hotkey alt-shift-7; in Ditto is stored a small orange comment linked to alt-shift-7 and a large orange comment linked to ctrl-alt-shift-7):


    Please login to see this picture.


    This includes comments that go within conditions and actions (using the Advanced Comment Object), which I can use for dividers, explanatory notes, headings, and so on:


    Please login to see this picture.




    I find that one of the quickest techniques when debugging is to play sounds. If I add the following action to an event...


    Please login to see this picture.


    ...I'll be able to hear if the event triggers or not, and whether it triggers once or multiple times. I don't have to worry about keeping my eyes glued to a counter, or that it will turn to 1 for one frame but then return to 0 before I've had time to notice it. And if I use sufficiently different sounds like beep, ding, bang, frog, I can easily keep track of 4 different things, while my eyes are free to observe whatever else they need to. This is a super quick and easy tool for debugging code, but only because I can create the actions instantly with button presses thanks to StreamDeck+Ditto:


    Please login to see this picture.


    Quote

    I'm using your Productiva skin for years. The colors is really easy on my eyes :)

    Reading this puts a smile on my face :)

    Please login to see this link.
    My Fusion Tools: Please login to see this link. | Please login to see this link. | Please login to see this link.

    Edited once, last by Volnaiskra (May 8, 2023 at 4:27 AM).

  • haha the dummy object is a nice touch. I assume you have it on all frames but even if you don't it will appear with that tiny arrow in the lower left corner that indicate the object isn't in the frame but you could drag anyways. Well thought.
    I've definitely missed the auto hotkey thread. Will be very useful!

    Great in depth explanation, thanks a lot. I'm already having some ideas to adapt to my workflow. The sound debugging is very interesting. Never thought about that. I usually send a message to debugger .window (which can certainly be pasted with Ditto+Stream deck).

    You mentioned you use F14 key in the auto hotkey thread. Just out of curiosity which keyboard do you use? Mine goes to F12 only.

  • haha the dummy object is a nice touch. I assume you have it on all frames but even if you don't it will appear with that tiny arrow in the lower left corner that indicate the object isn't in the frame but you could drag anyways. Well thought.

    Yes, that's right. It just appears with an arrow. Even if I paste it into a new MFA.

    Quote

    You mentioned you use F14 key in the auto hotkey thread. Just out of curiosity which keyboard do you use? Mine goes to F12 only.

    My keyboard is Please login to see this link.. But the crux is actually not how many keys it has, but the fact that it supports QMK, which is a type of firmware that lets you remap any of the keys however you like. So I have a few special keys on it that I've mapped to things like F14, F18, F23, mainly because most programs don't use them and therefore won't reserve or interfere with them.

    One of the best things I've done with my keyboard is move the F1-F10 to the numpad, and in their place put keys like "$()./*. When you think about it, the standard keyboard layout is absolutely terrible for programming. Why are the operators - + / * spread out all over the keyboard? And why do you need to press shift for some and not others? Why does frequently-used "+" require shift while rarely-used "=" doesn't? Why is the decimal point so far away from the numbers? And what use is having a numpad if you keep having to move your hands 20cm to reach the frequently-used brackets keys?

    So I've rearranged it like this, which makes working in the expression editor much more pleasant. All 4 operators are next to each other. The decimal point is right next to the 0. No shift is necessary for ( ) " or $.


    Please login to see this picture.

    Please login to see this link.
    My Fusion Tools: Please login to see this link. | Please login to see this link. | Please login to see this link.

    Edited 11 times, last by Volnaiskra (May 8, 2023 at 3:27 PM).

  • ahha I was expecting something fancy but that is Fancy with capital F. XD
    Your looks like XDA or DSA cap profile. I replaced my OEM with Cherry profile, but it's a boring classic white on black With a few lemon green keys hehehe. Awesome setup both hardware and software. Thanks for sharing!

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!