# About "Mod" option on variables

Status
Not open for further replies.

#### DarlesLSF

##### Veteran
What is that function?

#### Andar

##### Veteran
It's short for "modulo", the fifth basic math operation after addition, substraction, multiplication and division.
It is rarely used in common life, but important to some computer mathematics, especially if you're limited to integer numbers like the default variables are.

#### Kes

##### Veteran
@DarlesLSF This is posted in RPGMaker 2000/2003, but the information under your avatar says that you use MV.
Could you please post and clarify which engine this query refers to.
Thanks.

#### Kuro DCupu

##### Trust me, I'm a veteran RMer
Only if you are familiar with math, you will see that modulo is very helpful.

Suppose you have a variable that always increased by one.
Code:
``0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, ...``
Now you put an operation of mod 4 at the final operation. The iteration will change to this :
Code:
``0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, ...``

This is useful for indexing in menu / option. You know when there are selectable choice where you navigate by pressing up and down for example. Imagine you have 4 selectable choice.
Code:
``````New Game (index = 0)
Continue (index = 1)
Gallery (index = 2)
Quit (index = 3)``````
What do you think happened when you keep pressing down after the Quit? Your cursor will loop back to New Game, thanks to the mod 4 operation. I'm ashamed that some people still use if (index == 4) then index = 0 as a solution for these.

Modulo operation can handle negative value, thus help set the cursor to Quit when you pressing up after the New Game. Unless in MV, you can't modulo a negative value... =_=

#### DarlesLSF

##### Veteran
@DarlesLSF This is posted in RPGMaker 2000/2003, but the information under your avatar says that you use MV.
Could you please post and clarify which engine this query refers to.
Thanks.
Sry man, im using 2003 right now, but at the first time i was using the MV. I will change that

Only if you are familiar with math, you will see that modulo is very helpful.

Suppose you have a variable that always increased by one.
Code:
``0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, ...``
Now you put an operation of mod 4 at the final operation. The iteration will change to this :
Code:
``0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, ...``

This is useful for indexing in menu / option. You know when there are selectable choice where you navigate by pressing up and down for example. Imagine you have 4 selectable choice.
Code:
``````New Game (index = 0)
Continue (index = 1)
Gallery (index = 2)
Quit (index = 3)``````
What do you think happened when you keep pressing down after the Quit? Your cursor will loop back to New Game, thanks to the mod 4 operation. I'm ashamed that some people still use if (index == 4) then index = 0 as a solution for these.
I still use that part, because i dont knew about that mod function haha
But how can i make an event for a menu like u said to go down and up in the menu?

#### Blair Pendragon

##### Veteran
Sorry for bringing this back up, but I couldnt find anything else related to my question. (There used to be guides, but I can no longer find them.)
I know using the variable mod, you could separate a variable by the "ones" "tens" "hundreds" "thousands" etc.
so for example, if you had 1,234 HP, you could take that, and using mod, give 4 different variables the value of each place.
\V[1],\V[2]\V[3]\V[4]
which in a text box, would end up showing 1,234. (Currently, i know how to make it show 1234, 234 34 4, but not 1,234)
(I know you can just set a variable to equate HP, but this was for more than just HP, and text, but for using images on screen.)

Does anyone here know how to use variable mod to do this?

#### TheoAllen

##### Self-proclaimed jack of all trades
(Currently, i know how to make it show 1234, 234 34 4, but not 1,234)
to get 1 from 1234, divide it by 1000
to get 2 from 234, divide it by 100
to get 3 from 32, divide it by 10

#### Blair Pendragon

##### Veteran
to get 1 from 1234, divide it by 1000
to get 2 from 234, divide it by 100
to get 3 from 32, divide it by 10

ok, i think i just needed the extra step of normal division.
so...
(V= variable)

V5=HP (1234)
V1=V5 (1234)
V2=V5 (1234)
V3=V5 (1234)
V4=V5 (1234)
V1 / 1000 (1)
V2 mod 1000 (234)
V2 / 100 (2)
V3 mod 100 (34)
V3 / 10 (3)
V4 mod 10 (4)

only thing left, is i could have sworn the set up was nearly half the amount of steps as this. but for now, this should work. thanks

Last edited:

#### Shaz

##### Global Moderators

@Blair Pendragon , please refrain from necro-posting in a thread. Necro-posting is posting in a thread that has not had posting activity in over 30 days. You can review our forum rules here. Thank you.

Status
Not open for further replies.

### Latest Profile Posts

Zombie status is now complete. I didn't have to do much in the way of changing how healing is applied to undead targets, was just a simple 3 line code. I thought I had to overhaul Game_Action lol. Everything else was doable by events. So.. Zombie: You turn undead. Your element changes to darkness. You're weak to light, you're strong to physical attacks and healing hurts you and revival items will kill you.
My Overworld might be a mix of inspiration from 2D Final Fantasy games, Breath of Fire, Battlechasers: Nightwar, Super Mario World, and Pillars of Eternity. If I can make it more in-depth than just walking from point A to point B, that might do a lot for the gameplay experience. Hmm...
Terribly depressed. Worst birthday I've had in years, no motivation to work on anything. Still no income. At least I've got my computer running again.
Doing RPG Maker News for 19th September 2021