# Best practice -- \*choice vs \*fake\_choice

**URL:** <https://forum.choiceofgames.com/t/best-practice-choice-vs-fake-choice/78244>\
**Category:** ChoiceScript Help\
**Created:** [May 1, 2020, 6:19am UTC](https://forum.choiceofgames.com/t/best-practice-choice-vs-fake-choice/78244 "2020-05-01T06:19:54Z")\
**Posts on this page:** 9\
**Page:** 2

<div class="post-metadata">

**Author:** ![cup\_half\_empty](https://sea3.discourse-cdn.com/choiceofgames/user_avatar/forum.choiceofgames.com/cup_half_empty/32/273983_2.png) [@cup\_half\_empty](https://forum.choiceofgames.com/u/cup_half_empty)\
**Post date:** [May 1, 2020, 8:19pm UTC](https://forum.choiceofgames.com/t/best-practice-choice-vs-fake-choice/78244/21 "2020-05-01T20:19:26Z")

</div>

> [@GoldenSilver](#):
>
> arrays

You mean **“arrays”** , right? 😉😂

---

<div class="post-metadata">

**Author:** ![CJW](https://sea3.discourse-cdn.com/choiceofgames/user_avatar/forum.choiceofgames.com/cjw/32/111787_2.png) [@CJW](https://forum.choiceofgames.com/u/CJW)\
**Post date:** [May 1, 2020, 9:19pm UTC](https://forum.choiceofgames.com/t/best-practice-choice-vs-fake-choice/78244/22 "2020-05-01T21:19:46Z")

</div>

> [@Szaal](#):
>
> However, this one is a pretty finicky case where even Dan isn’t unsure if ICF is bug free and whether to have it on by default on that cost.

Just to clarify: That’s a comment on whether ICF will _cause_ more bugs, due to the higher chance of user error. It’s not a comment on the “ICF” behaviour itself containing bugs. Though the argument stands.

---

<div class="post-metadata">

**Author:** ![MahatmaDagon](https://sea3.discourse-cdn.com/choiceofgames/user_avatar/forum.choiceofgames.com/mahatmadagon/32/18504_2.png) [@MahatmaDagon](https://forum.choiceofgames.com/u/MahatmaDagon)\
**Post date:** [May 1, 2020, 9:46pm UTC](https://forum.choiceofgames.com/t/best-practice-choice-vs-fake-choice/78244/23 "2020-05-01T21:46:19Z")

</div>

I’ve never used a \*choice before(and I’m three games in), but I don’t remember the last time I made a fake choice. I don’t know why I do that, though. I guess I just enjoy the irony of it.

---

<div class="post-metadata">

**Author:** ![rinari](https://sea3.discourse-cdn.com/choiceofgames/user_avatar/forum.choiceofgames.com/rinari/32/86277_2.png) [@rinari](https://forum.choiceofgames.com/u/rinari)\
**Post date:** [May 1, 2020, 10:01pm UTC](https://forum.choiceofgames.com/t/best-practice-choice-vs-fake-choice/78244/24 "2020-05-01T22:01:57Z")

</div>

> [@MahatmaDagon](#):
>
> I’ve never used a \*choice before(and I’m three games in), but I don’t remember the last time I made a fake choice.

Wait, am I reading this correctly, lol? Or is this a joke that flew over my head? 😅

---

<div class="post-metadata">

**Author:** ![MahatmaDagon](https://sea3.discourse-cdn.com/choiceofgames/user_avatar/forum.choiceofgames.com/mahatmadagon/32/18504_2.png) [@MahatmaDagon](https://forum.choiceofgames.com/u/MahatmaDagon)\
**Post date:** [May 1, 2020, 10:05pm UTC](https://forum.choiceofgames.com/t/best-practice-choice-vs-fake-choice/78244/25 "2020-05-01T22:05:41Z")

</div>

It’s true. I always write \*fake\_choice instead of \*choice, but I always end each individual choice with a \*goto.

---

<div class="post-metadata">

**Author:** ![rinari](https://sea3.discourse-cdn.com/choiceofgames/user_avatar/forum.choiceofgames.com/rinari/32/86277_2.png) [@rinari](https://forum.choiceofgames.com/u/rinari)\
**Post date:** [May 1, 2020, 10:08pm UTC](https://forum.choiceofgames.com/t/best-practice-choice-vs-fake-choice/78244/26 "2020-05-01T22:08:24Z")

</div>

Oh, I was being dumb–I thought you were saying you’ve never done a \*choice, but you also don’t remember the last time you did a \*fake\_choice (like the actual command), so I was like, “…but then how do you program your… choices?”

~~I’m an idiot, just ignore me~~

I’ve also been doing \*fake\_choice in place of where \*choice is traditionally used lately, and I have implicit control turned on (and it’s a lifesaver)! I don’t use \*goto unless it’s going to actual separate branches anymore, it’s been very nice in terms of saving time.

---

<div class="post-metadata">

**Author:** ![trevers17](https://sea3.discourse-cdn.com/choiceofgames/user_avatar/forum.choiceofgames.com/trevers17/32/127415_2.png) [@trevers17](https://forum.choiceofgames.com/u/trevers17)\
**Post date:** [May 2, 2020, 10:47pm UTC](https://forum.choiceofgames.com/t/best-practice-choice-vs-fake-choice/78244/27 "2020-05-02T22:47:55Z")

</div>

I predominantly use ICF and \*choice because my choices don’t tend to branch out far until the middle and the end. I can focus more on writing than trying to route code through labels, and it looks better than \*fake\_choice. I usually recommend the ICF-\*choice combo to those who consider themselves more of a writer than a coder. By no means am I talented coder, and the less I have to futz with code, the better!

---

<div class="post-metadata">

**Author:** ![HarrisPS](https://sea3.discourse-cdn.com/choiceofgames/user_avatar/forum.choiceofgames.com/harrisps/32/240120_2.png) [@HarrisPS](https://forum.choiceofgames.com/u/HarrisPS)\
**Post date:** [May 2, 2020, 11:28pm UTC](https://forum.choiceofgames.com/t/best-practice-choice-vs-fake-choice/78244/28 "2020-05-02T23:28:38Z")

</div>

I use implicit control flow because it massively neatens up my \*if / \*elseif / \*else stacks, which I like to use rather than a stack of \*ifs for more precise bug finding and typo avoidance. Because of using ICF, I tend to go for \*choice if I’m doing a lot of nesting or using \*goto to go somewhere wildly elsewhere in the file. But if it’s a set of options with stat changes and different text that then leads to the same place, I’d use \*fake\_choice.

---

<div class="post-metadata">

**Author:** ![Fawkes](https://sea3.discourse-cdn.com/choiceofgames/user_avatar/forum.choiceofgames.com/fawkes/32/66518_2.png) [@Fawkes](https://forum.choiceofgames.com/u/Fawkes)\
**Post date:** [May 3, 2020, 3:37pm UTC](https://forum.choiceofgames.com/t/best-practice-choice-vs-fake-choice/78244/29 "2020-05-03T15:37:16Z")

</div>

I also use ICF, as it makes CS behaves closer to what I expect, and it also keeps my scene files neater. I used to use `*fake_choice` as much as I could before ICF, but now that I can use `*choice` exclusively, it makes it marginally easier to write (and, imo, easier to reread your own code, since you don’t have all those `*goto` commands sending you on a wild goose chase).

Additionally, it makes it far easier to keep track of all the labels in a scene, as there are fewer you need to remember, which in turn makes it easier to navigate the scene. I think it just keeps things from getting too cluttered and helps me stay organized.

It’s an entirely personal preference.

[Previous page](https://forum.choiceofgames.com/t/best-practice-choice-vs-fake-choice/78244.md?page=1)
