Dumb questions from noobs like me

If the game is called “Theocracy”, how many biblical references should there be, if any at all? When you write the choices and indent, does the *choice have to be indented at any point, or is it optional? And can you reuse the same amount of spaces for the choices and effects in the same scene? Can you prevent the player from using a certain name? I understand that you can check certain values and variables to change outcomes, but is it possible with an input command? Is there even a point to coding a game if there’s no possible way for you to publish it, or even run it?

There is a wonderful thing called artistic expression. You can work with whatever you want to work with.
At a personal preference, each chapter would begin with a central quote and end with an opposing one.

The formatting is conditional. If you are following from a *quick_choice, then you indent twice (one for the *quick_choice’s text, one for the *choice’s) and so on.

Yes. If you want to navigate between these choices, use *label.

Yes. After the *input_text, test the variable against names you do not want your player to use.

*label NameSelect
*input_text Name
*if (Name = "blah")
	The name "blah" is only for the most majestic of people. Use another name.
	*goto NameSelect

See Publishing your game | ChoiceScript Wiki | Fandom

Inside your Scene folder, there is an html file titled “randomtest.” If your project’s folder is titled “mygame” this html file will help you test your game.

Afterwards, inside your game’s folder is an html file titled “index.” Run this with firefox and you can playtest your game.


As many or as few as you want.

It depends where the *choice is in the code. Indents matter, but if you just start small and experiment with a simple choice tree, you can quickly learn where to place the indents.

Yes, you can. It just depends how you want to do it. Like, let’s say you didn’t want the player to use the name Cthulu, right? So if you had something like…

*if playername = "Cthulu"
 This name is not allowed, please try again!
 *goto yourname

It’s just a rough sketch, but hopefully this gives you an idea.

When you use the input command, whatever the player inputs is going to be stored in a variable. So then it’s just a matter of checking that particular variable for whatever.

It’s good to practice, and you may just end up getting it published. You won’t know until you try! :slight_smile:


Thanks for the advice! I guess I should change some stuff around now.

Can you place the stat chart code anywhere, or is it in a specific place?

Here is a beginners guide that should help you get started. It’s not finished, but it walks you through the absolute basics.


Oh. Thanks. I should probably take a look at that.

Would anybody notice if I made all the stat changes multiples of five? I’m mostly using fairmath, so I’m pretty sure the player wouldn’t notice unless they tried the game multiple times. When you put a choice within a choice, you give all the possible outcomes the same amount of indentations based upon their placement under the first question, right? And how many people would kill me if I named a minor villain “Grand Warden Nazareth”?

If it’s fairmath, using multiples of five is both usual practice and hard to notice, as %+10 will produce a different-sized increase in the stat depending on the score at the time you increase it (and odds are it won’t be a multiple of five).

Have a look at some scenes of published games to get a sense of how people use code and indentation. Here’s one example:


None, but some people will find it hard to get Hair of the Dog out of their heads.


Is there an easy way to code a card draw while still taking the respective card out of the deck?

Please elaborate? :confused:

Is it possible to make a card game with standard cards in choicescript and get the card out of the deck so that the next time you draw, the card isn’t there anymore? I’m sorry if it’s still kind of confusing.

Possible, yes. Easy, no. How many cards would you need to draw from the deck?

You would need to draw five cards. There’s only 52 cards.

Are you making a card game?
Sounds like a hard project. :grimacing:
I agree with @Scribblesome… possible, but not easy.

Yeah. I’m starting to regret my life decisions.

If it’s only five, you might be able to do an *if check?

So its

*create thiscard 0
*create card1 0
*create card2... (so on) -
*label game
*rand thiscard 1 52
*if (card1 = thiscard) or (card2 = thiscard) or ...
    *goto game
   *if (card1 == 0)
        *set card1 thiscard
   *elif (card2 == 0)
         *set card2 thiscard

And so on. It’d force the game to loop until it found a card not included in the previous cards.
You could probably clean it up a bit but that’s the best I can come up with. Statistics are a pain.

(If you do something like this and want it to repeat, make sure that between rounds all the cards are set to 0)

1 Like

Holy fucking shit thank you so much I can finally stop suffering


Can you put *if and *else commands on a *fake_choice command?

*else doesn’t work with choices, fake or otherwise. It won’t crash your code, but any #option you try to start with *elseif or *else will just never display.

*elseif and *else are used for things like displaying text or changing stats, not in structuring your choices but in what comes between choices. See the example here.

You can use *if on a *fake_choice command. Indent when you do it; if you do it inline, it’ll often cause problems. So do it like this

  *if bird
  *if salmon
  #Just get out of here!

and not like this

  *if (bird) #Fly!
  *if (salmon) #Swim!
  #Just get out of here!

The bottom way can work for a *choice, but not a *fake_choice.