# Margin time

**Margin time** is the time period that indicates how long it takes before the target points starts to decrease. When the number of seconds in the match reaches the target points, the target points begin to decrease (initially by 4/3, otherwise known as being multiplied by 3/4 or 0.75), and will continue to decrease every 16 seconds after that until the target points have been reduced to 1 or this has gone on for 14 iterations, whichever comes first.

In *Puyo Puyo!! 20th Anniversary*, this is shown to the player as a Nuisance Puyo multiplier.

Margin Time was first implemented in *Puyo Puyo Tsu* to ensure that matches did not last too long, and has been present in every Puyo Puyo game since.

## Pseudocode

The way the margin time works is similar to this, shown using code (note that *targetPoints* is always rounded down):

```
```

*targetPoints* = *initalTargetPoints*
*previousTargetPoints* = 0
*numIterations* = 0
- Set
*timer* to call **ReduceTargetPoints** in *marginTime* seconds

- Function
**ReduceTargetPoints**
*currentTargetPoints* = *targetPoints*
- If
*numIterations* is equal to 0
*targetPoints* = *initialTargetPoints* * 0.75

- Else
*targetPoints* = *previousTargetPoints* / 2

*previousTargetPoints* = *currentTargetPoints*
- Increase
*numIterations* by 1
- If
*targetPoints* is greater than 1 and *numIterations* is less than 14
- Set
*timer* to call **ReduceTargetPoints** in 16 seconds

- End Function

```
```

In Puyo Puyo!! 20th Anniversary, the reduction of target points is shown as an increase to the Nuisance Puyo multiplier. The Nuisance Puyo multiplier works like this, with the Nuisance Puyo multiplier always being rounded down to 2 decimal places:
```
```

*nuisancePuyoMultiplier* = *initialTargetPoints* / *targetPoints*

```
```

## Examples

### Target Points = 120

This is the standard used for Fever matches.

Iteration | Target Points | Nuisance Puyo Multiplier |
---|---|---|

0 (Initial) | 120 | x1.00 |

1 | 90 | x1.33 |

2 | 60 | x2.00 |

3 | 45 | x2.66 |

4 | 30 | x4.00 |

5 | 22 | x5.45 |

6 | 15 | x8.00 |

7 | 11 | x10.90 |

8 | 7 | x17.14 |

9 | 5 | x24.00 |

10 | 3 | x40.00 |

11 | 2 | x60.00 |

12 | 1 | x120.00 |

### Target Points = 990

This is to show that the target points will never reach 1.

Iteration | Target Points | Nuisance Puyo Multiplier |
---|---|---|

0 (Initial) | 990 | x1.00 |

1 | 742 | x1.33 |

2 | 495 | x2.00 |

3 | 371 | x2.66 |

4 | 247 | x4.00 |

5 | 185 | x5.35 |

6 | 123 | x8.04 |

7 | 92 | x10.76 |

8 | 61 | x16.22 |

9 | 46 | x21.52 |

10 | 30 | x33.00 |

11 | 23 | x43.04 |

12 | 15 | x66.00 |

13 | 11 | x90.00 |

14 | 7 | x141.42 |

### Target Points = 10

This is to show that the target points will reach 1 before it goes through all its iterations.

Iteration | Target Points | Nuisance Puyo Multiplier |
---|---|---|

0 (Initial) | 10 | x1.00 |

1 | 7 | x1.42 |

2 | 5 | x2.00 |

3 | 3 | x3.33 |

4 | 2 | x5.00 |

5 | 1 | x10.00 |

## Resources

- Inosendo's guide on margin time (Japanese)