GameSalad Tips Competition Winners!

ArmellineArmelline Member, PRO Posts: 5,341
edited May 2017 in Working with GS (Mac)

The competition has come to an end, and prizes must now be given out! There were some fantastic tips posted, and even after more than 8 years of using GameSalad, I still got to learn something new!

A huge thanks to everyone who took part and contributed their fantastic tips to the community!

It wasn’t easy narrowing the list down to 6 winners (I miscounted the games!), so I awarded a prize to a tip that taught me something new and picked 4 others out of a hat. There were some amazing tips in the thread that everyone should know, so it's well worth reading the original thread if you didn't already!

I’ll ask the winners to PM me with their first, second and third choice games (I'll contact the winners if all their choices are already taken). A reminder, the prizes are Steam keys to:

  • Grim Fandango Remastered claimed!
  • Worms Clan Wars claimed!
  • Borderlands: The Pre-Sequel
  • 80 Days 2 claimed!
  • Her Story claimed!

Thanks again to @JSproject for donating two of the games!

With no further ado, here are our five winners!

1st Place:

@Icebox said:

Esc key works as the back button on android devices. So if you want to use the back button on android to pause your game, you can say “when key ‘esc’ is pressed / pause game”

I couldn’t put this anywhere but first as this is something I genuinely did not know and learnt from this thread. So thanks @Icebox!

2nd Place:

@tatiang said:

Don't unlock actors in a scene unless you have a good reason for doing so. Unlocking an actor creates an "instance" that can have different rules (and even attribute values) than the original "prototype" actor. While sometimes useful, if unintentional this can make troubleshooting rules tricky because actors that appear the same can have unique rules.

Also worth noting is that every time you unlock an actor on a scene, that actor is stored in the scene’s XML file. A prototype just references the actor’s stored information, but an unlocked actor copies that information. So if you place 100 prototypes on a scene, it will take up the space of the 1 prototype. If you place 100 unlocked actors on the scene, it will take up the space of 100 copies of the prototype. So unlocking actors not only complicates working with your game, it also slows down working with the project file and makes the file size of your game bigger and loading times longer!

Another great tip relating to unlocking actors came from @pHghost. Although it doesn’t win him a prize, it’s still well worth including here!

@pHghost said:

I would add to this that you can vastly expand the flexibility and functionality of your actors through self.attributes
This way, you can have only one enemy actor, with all the necessary rules, with references to self.attributes as needed. You do NOT need to unlock an instance of an actor to change its self.attributes! So you can easily change the power, animation, etc. of each instance without breaking stuff by unlocking it. And you will only need to edit one master actor to update behaviours of the whole group!

I was really glad to see this coming in at 2nd place, though! Anyone who knows me knows I’m obsessed with not unnecessarily unlocking actors! It’s the cause of so many problems!

3rd Place:

@fmakawa said:

With tables, make sure you add as many rows or columns as you will ever need. Especially important for saved level data. If not, you data will be rewritten when you make updated tables and you will lose your progress.

This is a horrendous bug/lack of feature that’s been in GameSalad for years and will likely never get fixed, so this is a really important tip! If you forget to do this, you can also add new tables to your game, so all is not lost! Don’t go overboard in the rows and columns you add, though - tables are pre-loaded by GameSalad and really big tables can slow down you game. So don’t go adding 10,000 extra rows and columns if you won’t likely ever need them!

4th Place:

@Toque said:

Often I made actors in a scene but I didn't want them visible so I changed them to alpha 0. But looking for them was difficult during editing because they were well invisible. So now I leave the alpha to 1 but the first rule in them is alpha 0. So you can't see them during game play but during editing they show up...

@Two.E touched on this idea too, but @Toque’s extra advice makes his tip a worthy winner too. Hiding actors can be super helpful, but it can be a nightmare to find them again while working on your scene! On a similar note, it’s worth keeping in mind that if your actor will never display text and will never been seen in the game, instead of changing its alpha to 0, change its “Graphics>Visible” attribute to OFF. This is more efficient, but it does also turn off the displaying of any text!

5th Place:

@AlchimiaStudios said:

You can use the max function to compare many different numbers, not just 2 numbers like it shows by default. So not just max(x,y) but max(a,b,c,x,y,z). Same with the min function.
Very useful for many things, such as a aggro system for an RPG, comparing enemy distances, comparing high scores, or maybe a targeting system for an RPG, shooter, TD, etc.

A great tip that many people don’t realise!

6th Place:

@Hopscotch said:

When you spawn actors and need to pass a value to them, use the Rotate, X or Y attributes to send a value.

This one is insanely useful. I use this constantly, and I owe a big debt to whoever first suggested it on the forums! (If it wasn’t @Hopscotch!) I've used it literally dozens of times in the last week alone, so this tip definitely has mileage!

Honourable mentions:

There were many other great tips in the thread that weren't drawn out the hat, so I thought I'd repeat a few of them here. Should any of the above decline their prize, they’ll be offered to the following people in this order:

@ElemetApps said:

Every 5 minutes click that save button or after being successful with a difficult logic. Also duplicating your gamesalad file before opening a just updated gamesalad software is a great idea.

This one is so important I probably should have given it a prize! It’s so easy to forget to save regularly, and although GameSalad is pretty crash resistant these days, it does still crash - particularly when working in unlocked actors. I find the more productive I’m being and the more I’m getting done, the less likely I am to save - so it always hits me hard when the app crashes!

@gingagaming said:

Name every rule or group in your actor in relevance to its job so when making changes or bug fixing, you know what it does!

This is a habit everyone should get into! I don’t normally do this as I’m working as it breaks my flow, but the moment I have a feature functioning correctly I go back and label everything while it’s still fresh in my mind.

@Socks said:

(random(0,1)2-1)random(1,100) . . . will give you a random value between -100 and 100 except for zero.

This one is super duper handy when you need it. I’ve only put it so low as it’s going to be applicable to fewer people than the others. I’d encourage @Socks to make a thread breaking it down and explaining it to people!

If you didn’t win a prize, please don’t be discouraged! EVERY SINGLE tip submitted in the competition thread was brilliant, and if I had more prizes there would most definitely be more winners!


  • tatiangtatiang Member, Sous Chef, PRO, Senior Sous-Chef Posts: 11,949

    Thanks, @Armelline! This was a great idea. I wasn't aware of the max(a,b,c,x,y,z) ability so yes, I learned something new, too. :)

    New to GameSalad? (FAQs)   |   Tutorials   |   Templates   |   Greenleaf Games   |   Educator & Certified GameSalad User

  • JapsterJapster Member Posts: 672
    edited May 2017

    This was an AWESOME thread Armelline! - Learnt some great stuff too, guys... :smiley:

    If it helps others:-

    I've had GS appear to catastrophically crash when saving a few times recently - after the 1st time it wasn't funny. So, out of desperation (I'd force closed it after 10 minutes, the first time, resulting in a completely broken project), I resorted to clicking around the menu area, and off the app, etc, ALT-Commanding to other apps, etc. Not sure what I did, but doing this for the other 3 or so times it did it, the beach ball disappeared, replaced with a lovely active cursor. I was able to save my project, and more importantly, load it back up, every time.

    Kind of like the issue where scrolling through the actors list in GS hung it frequently, damn that beach ball! - I learned to click the edges, and OFF of the app, which brought it back every single time. Before that, the air was blue! - Oh yeah, the issue above is on different OS's, different Mac's, and plenty of HD space and memory....

    On a final note - I had my project REALLY screw up over the weekend, I'd saved a large image in Photoshop, and GS REALLY didn't like it - it happily brought it in without complaining or moaning about the resolution etc, but something - combination of bit data, etc, caused it to REALLY screw up, and display garbage when I ran my project (then bork the project - unsalvagable... Argh!!). So I TinyPNG'd it. ...worked an absolute treat! - Prior to that, every single time I added the original (same res) PNG, it screwed my project up beyond (easy) repair... (Yeah I know, on the previewer, the transparencies can sometimes look weird, and some people don't think it makes a difference to project size, but on ALL of the devices I tested (iOS and Droid) it looks perfect.... :)

  • HopscotchHopscotch Member, PRO Posts: 2,782

    @Armelline, this was awesome!

    A great collection of tips were made public this way and I especially enjoyed the community involvement.

  • Braydon_SFXBraydon_SFX Member, Sous Chef, Bowlboy Sidekick Posts: 9,273

    Congrats to all the winners!

  • IceboxIcebox Member Posts: 1,485

    Thanks for the competition and the generous gifts , it was an awesome thread :)

  • gingagaminggingagaming FREELANCE GS DEV Member Posts: 1,685

    Well done to all winners and more importantly, the stick the thread got so we all can learn a tip or two! Thanks for your time in organising this @Armelline

  • fmakawafmakawa Member Posts: 565

    The tip thread was an awesome idea! I need to get down to that passing a value tip. I didn't quite get it and it wasn't the only one were I learnt something new. brilliant!!!

  • SocksSocks London, UK.Member Posts: 12,822

    @Hopscotch said:
    @Armelline, this was awesome!

    A great collection of tips were made public this way and I especially enjoyed the community involvement.

    Yep, there should be one of these every week !

  • AlchimiaStudiosAlchimiaStudios Member Posts: 1,069

    Yeah turned out great, so many awesome tips.

    Follow us: Twitter - Website

  • johnnymagnejohnnymagne NorwayMember Posts: 112

    Congratulations to all the winners - still a lot to learn in Gamesalad!

  • ElemetAppsElemetApps Member, PRO Posts: 55

    Thank you for the Honourable mention @Armelline. I really appreciate it!

  • ArmellineArmelline Member, PRO Posts: 5,341

    All prizes have now been given out. Congrats to the winners, and thanks again to everyone who took part!

  • ValanValan Member, BASIC Posts: 410

    Congrats on the tip winners.
    Great idea Armelline.

  • Orionis ArtsOrionis Arts Member, PRO Posts: 20
    edited September 2017

    Can someone please explain #6 to us? This seems really useful but at the same time I feel like I am just missing something. Is there maybe an example? What do you mean by "send a value"? EDIT: Ah! nm! ... I looked at the original submission at and it is explained further! Excellent tip!

  • Two.ETwo.E Member Posts: 599

    Just another thing that I had no Idea about until today.

    • You can revert the properties of an actor back to the prototype.

    I know you can do the logic but so often when I have been placing a grid or a lot of actors that are the same, I sometimes change the size by mistake when positioning. Which means when I change the prototype, that one actor is not going to change.

    Only today did I know, I could open that actor up, select it's size attributes and click the little "Revert to Prototype" button.

    Such a handy little feature that I can not believe I didn't not know about.


  • tatiangtatiang Member, Sous Chef, PRO, Senior Sous-Chef Posts: 11,949

    @Two.E I also use this some times to fix placement of actors in multiple scenes. So for example, if I've dropped an actor into 3 scenes at self.Position.X=200 and I need the actor to be at x=275, I'll change it in the prototype actor and then open each instance on each scene and revert to prototype. That can be done with any attribute, not just position.

    New to GameSalad? (FAQs)   |   Tutorials   |   Templates   |   Greenleaf Games   |   Educator & Certified GameSalad User

  • HymloeHymloe Member Posts: 1,653

    Great stuff. Some nice nuggets in there! :)

  • ArmellineArmelline Member, PRO Posts: 5,341

    Here's a handy little one that probably slipped past a lot of people. Ever notice how when you open the Expression Editor, it's seemingly pretty random if it will let you close it with the ENTER key? Very annoying and seemingly inconsistent. It's pretty simple, though - hit the UP arrow key, which will move your cursor to the start of the expression. You can then hit ENTER to close the Expression Editor, committing the changes.

  • paulpraveen23paulpraveen23 Member Posts: 1

    it was an awesome thread

  • ArmellineArmelline Member, PRO Posts: 5,341

    I'm proud of how much spam this thread has attracted.

  • bob loblawbob loblaw Member, PRO Posts: 793

    yep.seems to be a magnet.

Sign In or Register to comment.