How to Make a Randomized, Animated Spinner

This guide will attempt to replicate a spinner in real life. It will include the slowdown and randomization. Let’s get into it!

Constructing the base

Make a spinner-like thing:


Next, make your arrows. Make sure that one is active on game start, and the rest are inactive on game start. I’m making mine out of text because it’s easier to rotate and add channels to, but you’re welcome to make them out of barriers. Just make sure they activate and deactivate on the right channels.


Now, let’s add the channels to the arrows. The channels will be in the format “SpinnerActivate[ARROW_NUMBER]”. You put in the arrow number for [ARROW_NUMBER]. You want the first arrow (the one active on game start) to be 0, the 2nd one to be 1, and so on. Here’s what it is for me:

Basically, you need to go in order. The direction doesn’t matter. Make all the arrows deactivate on “deactivateAllArrows”.

Randomizing The Spinner

So now, we are going to make a simplish randomizer. We’re going to use block segmentation to save memory with a later part of the guide. Get a trigger, and make it receive on “blockSegment”. Make a number property named “randomizerRunNum” with a default of 1. Make 2 more number properties: CurrentArrow and randomResultCountdown. Add these blocks to the trigger:

For [RESULT_NAME_HERE], add whatever name you want for the concatenation.

Making the Spinner’s Speed

We’ve done all the heavy work now! All we have to do is to make some triggers with delays, and it will work! I have 8 sections, so each row has 8 triggers. However, you need to have as 3x as many triggers as you have sections.


The first trigger should be triggered on “startSpinning”. All triggers should broadcast on “startRandomCalc”, activate on “activateSpinner”, and deactivate on “stopSpinner”. I recommend using the copy-paste function for this. For the delays, I used .1 for the top row, and then .2 for the rightmost 2 triggers on the 2nd row, and then each trigger increased by .05s.

All there is left to do is to start the spinner! You need one more trigger that receives on aa wire to start and broadcasts on “activateSpinner”. I used a button that broadcasts on “startRandomCalc” and triggers the trigger with a wire. Oh, and make sure that the

If you want to see the result, check out the showcase link in my bio. It may not seem random, but it really is random.


Nice guide! All we need to do is add some more paint and presto ! Wheel of fortune.

1 Like

*No gambling allowed on creative maps.

Good enough guide though.


Must… keep… spinning (also that is a crazzy set of blocks oh jeez and stuff and gneiss guide i will perchance use it in my game???)

1 Like

If this is gambling then loot crates should count as gambling and so should the lottery tickets in farmchain.


Gambling is by definition (not exactly) where you dispense money or currency in chances to gain even more
so as long as it’s free, or it’s not for money, it’s not exactly gambling. And you know how GKC is, there are copyrighted thumbnails left and right, not saying it’s right, but I don’t think they really care. Also, don’t they have a gambling machine in Farmchain?


What the heck kyro
(actually you may or may not be kyro)

@kyro ttc fan and CHUR BUM enjoyer
@Stealthknight look aboveeeeee

who’s kyro?
also @getrithekd I tested your spinner and it doesn’t really work that well because every single time it moves exactly 18 places, so you kinda know where it’s gonna be.

1 Like

Wait if you need to spend money to earn more farmchain would be gambling because you need to buy the seed, use water, energy and the seed to grow and time!

Yeah who is kyro?

Since there is so many triggers, and block code, with the setup that it has, can somebody see if the following are possible:(?)

  • Combing Triggers with similar behavior.
    “startRandomCalc,” “activateSpinner,” and “stopSpinner” have related actions, so can you use a single trigger with conditional logic?

  • Variable reuse.
    Instead of creating separate properties for “CurrentArrow” and “randomResultCountdown,” can you reuse a single variable for both purposes?

  • Delays
    For the animation time, can you use consistent delay values like 0.1?

If any of the above have already been put into place, sorry, I might’ve skimmed a little bit

That won’t make it mimic a spinner in real life though.

I’m going to have to test this later.

You probably could, but it would require me to not use block segmentation, so it would result in an overall memory increase.


Wait, I looked through all of it I did not see anything that says “Kyro”

Also I went onto the link and the spinner just landed on the same one every time…

Yeah I need to check it out…

See GIF below

Same response, maybe that’s just you. See GIF below

Somebody else post a GIF to verify, if it is different every time (1)

Well mine landed on the one that’s the half right top (two to the left of yours) so it must be random first time then it must be the same.

1 Like

I don’t know what the problem could be, as of now. Could you check over my code to see if you can find it? I’ll add the properties to the telemetry system in that map later.

1 Like

I will try but thats my worst type of thing I can do in blocks, ill try though :+1:

1 Like

Sorry yeah it will take me a minute to comprehend this, I have had some very complicated code but this is hard…

1 Like