Katapuuult
A session-based physics game where players launch a projectile from a catapult, collecting bonuses and avoiding hazards mid-flight. Outcomes are determined by pure player skill — angle and power are entirely chosen by the player.
| Property | Value |
|---|---|
| Game ID | katapuuult |
| Type | session_based |
| Volatility | Medium |
| Max Win | 10× bet |
| RTP Range | 85–99.99% (configurable) |
Game Phases
AIMING → CHARGING → FLIGHT → LANDED| Phase | Description | Player Input |
|---|---|---|
AIMING | Player adjusts the launch angle | Angle control (25°–80°) |
CHARGING | Player holds to charge launch power | Power control (hold duration) |
FLIGHT | Projectile is in the air, collecting items | None (physics simulation) |
LANDED | Projectile has landed, round is resolved | None |
Pure Skill Mechanic
No RNG During Flight
The launch angle and power are entirely chosen by the player. There is NO RNG involved in the projectile's flight path. The physics simulation is fully deterministic given the launch parameters.
The only RNG is used at session initialization (~564 random values) to determine the placement of collectibles and hazards on the field. This placement is committed via the provably fair system before the player launches.
Zone Multipliers
The field is divided into altitude zones. The base zone multiplier is applied to the bet based on where the projectile lands:
RTP_96 Zone Multipliers
| Zone | Altitude Range | Multiplier |
|---|---|---|
| Ground | 0–50px | 0.1× |
| Low | 51–150px | 0.3× |
| Medium | 151–300px | 0.5× |
| High | 301–450px | 1.0× |
| Very High | 451–600px | 1.5× |
| Stratosphere | 601–800px | 2.5× |
| Space | 801px+ | 4.0× |
Zone Multipliers by RTP Variant
| Zone | RTP_92 | RTP_94 | RTP_96 | RTP_97 |
|---|---|---|---|---|
| Ground | 0.0× | 0.05× | 0.1× | 0.15× |
| Low | 0.1× | 0.2× | 0.3× | 0.4× |
| Medium | 0.3× | 0.4× | 0.5× | 0.6× |
| High | 0.6× | 0.8× | 1.0× | 1.2× |
| Very High | 1.0× | 1.2× | 1.5× | 1.8× |
| Stratosphere | 1.5× | 2.0× | 2.5× | 3.0× |
| Space | 2.5× | 3.0× | 4.0× | 5.0× |
Collectible Bonuses
Collectibles are placed on the field at session start. Flying through a collectible adds its bonus to the round total:
| Collectible | Bonus | Frequency |
|---|---|---|
| Coin | +0.2× | Common |
| Gem | +0.5× | Uncommon |
| Star | +1.0× | Rare |
| Crown | +2.0× | Very Rare |
| Rainbow | +3.0× | Legendary |
Hazard Penalties
Hazards reduce the round total when the projectile collides with them:
| Hazard | Penalty | Frequency |
|---|---|---|
| Cloud | −0.1× | Common |
| Bird | −0.3× | Uncommon |
| Lightning | −0.5× | Rare |
| UFO | −1.0× | Very Rare |
INFO
The minimum payout is always 0× — penalties cannot result in a negative payout. The player never loses more than their bet.
Physics Engine
| Parameter | Value |
|---|---|
| Gravity | 900 px/s² |
| Simulation Rate | 60 Hz |
| Launch Speed Range | 760–2,500 px/s |
| Launch Angle Range | 25°–80° |
| Air Resistance | None (ballistic trajectory) |
| Collision Detection | Circle-based (radius: 12px) |
Trajectory Formula
The projectile follows a standard ballistic trajectory:
x(t) = x₀ + v₀ × cos(θ) × t
y(t) = y₀ + v₀ × sin(θ) × t - ½ × g × t²Where:
v₀= launch speed (760–2,500 px/s)θ= launch angle (25°–80°)g= 900 px/s²t= time in seconds
RNG at Session Init
At the start of each session, approximately 564 RNG values are consumed from the provably fair system to determine:
- Positions of all collectibles (x, y coordinates)
- Positions of all hazards (x, y coordinates)
- Types and values of each collectible
- Types and penalties of each hazard
These placements are committed before the player sees the field, ensuring fairness.
Payout Calculation
totalPayout = max(0, zoneMultiplier + sum(collectibleBonuses) - sum(hazardPenalties))
finalPayout = min(totalPayout, 10.0) × betAmountExample Round
Player sets angle: 62°
Player charges power: 1,800 px/s
Launch!
Flight path:
t=0.5s: Collects Coin (+0.2×) at altitude 380px
t=1.0s: Hits Cloud (-0.1×) at altitude 520px
t=1.5s: Collects Star (+1.0×) at altitude 490px
t=2.1s: Lands in "Very High" zone (1.5×)
Payout: 1.5 + 0.2 - 0.1 + 1.0 = 2.6× bet