I am doing serious games and simulations and I sometimes have the need to represent actions to the user that they can only do once. Basically the user issues a command that only needs to be done once. This is something that does not really have a corresponding standard gui element. The problems are

  • Communicating to the users that once this action has been perform they will not be able to do it again (i.e. forward looking telling the user that this is a one-time thing)
  • Communicating after the fact that this has already happend (easiest done by deactivating the piece of gui)

I have tried various elements but none are really ideal so I am happy to hear about any input from this community. Have you had a similar problem, how did you solve it ?

The easy ones are using buttons or checkboxes that get deactivated after being used. These work but the fact that they only work once has to be communicated verbally.

Addition 2010-dec-12

I appreciate all the comments and this is helping a lot, thanks. I see some very game oriented solutions come up and while I personally would like to be able to do something like that and use lots of contextual icons. We can't do that due to cost and personnel. Our simulation/game interfaces are very text driven the pandemic response simulator is one example of that. In that project I used something similar to evalica's suggestion.

  • What's the affect of the decision? Can the user make the same decision later (and you up the cost of the decision) or is it really only able to be made at one point in time?
    – Tucker
    Dec 16, 2010 at 18:52
  • In this case it is a planning decision, it prepares resources for use later, while it can be made later it occurs in a different form and context. It is basically "setup" for the following simulation Dec 17, 2010 at 14:58

4 Answers 4


Let's compare this to an "Install" action:

  • I think the solution would be to have a button, let's called it "Install". Buttons always make users press them (depending on their style and affordance)
  • When the button is pressed you can have a dimming animation or none
  • Transform the button into a label specifying the result of the action, like "Installed"

alt text

These steps can be generalized for any action, by using buttons and labels to represent actions and statuses.

  • This is very applicable in our case, I like the wording change in addition to the checkmark Dec 17, 2010 at 13:09

I would opt for the simplest possible solution: just display the number "1", e.g.:

alt text

After a couple of times (helped perhaps by a hint in your app), users will get the idea quickly. A benefit of this approach is that you don't have to get too creative with icon designs -- simply use your existing icon set and add "1" where applicable.

BTW, Apple uses a similar approach in iTunes and iPhone/iPod touch:

alt text

In Apple's case, the meaning is different: when "1" is displayed, it means "repeat song" instead of "repeat library or playlist", but there is no reason why you can't use a similar approach to indicate "can do action only once".

Update: On further thought, the icon with the "1" in a circle can be confused with a notification badge, as is commonly used on the iPhone, Mac OS, and probably others. A better representation might look like this:

alt text

  • 1
    This would certainly work if there are other limited actions that can be repeated; for example, if some action or another can be repeated 10 times, the marker will become obvious when its number decreases to 9
    – Bobby Jack
    Dec 16, 2010 at 0:04
  • This sort of UI has been almost standardised in certain games (MMOs and RPGs) by Blizzard (see Starcraft and WoW games), so it's what I would have posted. It's probably a good idea to follow such conventions in serious games, as well.
    – Rahul
    Dec 16, 2010 at 8:18
  • You will also have to consider what you are going to do with the icon when the user has done the action. Are you going to disable (gray out) the icon? Will the notation of the "1" remain there on the deactivated icon? If it won't, how can you let the user know why it is deactivated? Will you also add an infinity-symbol to actions without a limitation of use to make everything consistent? Dec 16, 2010 at 10:32
  • I agree that something needs to be done when the one time action is used up, perhaps graying it out, hiding it, or displaying a "0"? It all depends on context and it's up to the application's designer. But I don't agree about using infinity symbol; it will add complexity (many users won't even know what it means), and I don't see a plain icon as being inconsistent with an icon that embeds a "1".
    – Hisham
    Dec 16, 2010 at 18:22

Since you are saying that your application looks more game-like, you can take a look at some social games, which are using a lot of one time actions. For example for the various tasks in the games (i.e.. build a farm), they display an icon that represents the task. Clicking on it pop ups what needs to be done for this task, and after completion it removes the icon. This way the user know the task has been done (the icon is gone), and can not be done again (cannot click on the icon). Note: you need to show the user that this task is gone, since that is one of your requirements. (in the game: you can see your newly build farm).

alt text

Another way is represent a list of tasks that needs to be done, and remove those tasks on completion. The same as described above, but perhaps this way of displaying it is more suitable for your application.

For example:

alt text

  • I have to admit I was not even considering removing the action from the screen, thanks Dec 17, 2010 at 13:13

Could you give examples?

I can think of a very few - e.g. semi-automated import of old data after an update.

However I find it hard to conceive that real one-time operatons have a good place in a general UI - i.e. button field or toolbars. But that might depend on the operation.

Nonetheless: one option could be putting these operations into a "List of pending tasks" (or "things to do"). This can be accessible through typical "notification list" cues, e.g. a (!) icon in the status area.

Using your example:

Placeholder - Many games use a placeholder and a final object (like an empty picture frame before, and a picture afterwards).

I would aso keep the button in place but change the reprsentaiton if the user wants to interact with or inspect the one-time-action-result.

Unlock UI - If the item unlocks certain functionality (like a calendar to schedule advertisements), make the unlock operation a popup when the user tries to access that UI, e.g.

 To schedule ads, first get something to show!
 [Get promotional material for $500]    [No thanks]

A simple change of representaiton would be an overlay, such as a plus before, and a checkmark after.


If the Operation doesn't affect a single aspect of the user interface, you can sue a queue of operations, that oculd be simple a segment of a toolbar dedicated to these operations, where options the user selected are removed, and actions that become available are added.

Skill Tree
If the one-time actions are interdependent, a skill tree is a common UI

  • For example in a simulation the user needs to order promotional material for later use, once it is done it is done, can't be undone, does not need to be done again. I realize my case is specific you are right, I have not seen this kind of element in normal business applications. The UIs in question use normal GUI controls but are usually skinned to look more gamelike Dec 16, 2010 at 16:39

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.