Steal An EggDocumentation← Portfolio

#Speed & Treadmills

#What Speed does

Speed is the game's only progression currency. It is stored on the profile, drives the walk speed curve, gates zones (when the gate is enabled) and pays part of the Index rewards. It cannot be spent — only earned.

SettingValue
Config.Movement.BASE_WALK_SPEED16
Config.Movement.MAX_WALK_SPEED150
Config.Movement.SPEED_LOG_CAP1 × 10¹⁰
Config.Movement.STUN_WALK_SPEED0
Config.Movement.JUMP_POWER50

#The walk speed curve

SpeedService builds one tier per zone at startup. Zone i of 12 gets a target walk speed of

ws_i = 16 + (150 − 16) × (i − 1) / 11

so Forest sits at 16 and the last zone at 150. Between two tiers the code interpolates logarithmically on the Speed value, which is what keeps the enormous gaps between zone requirements (10,000 → 40,000 → 170,000 …) from feeling like hitting a wall.

Zone unlockedTarget walk speed
Forest16.0
Lake28.2
Desert40.4
Jungle52.5
Snow64.7
Volcano76.9
Abyss Ocean89.1
Prehistoric101.3
Cosmic113.5
Cherry Blossom125.6
Titan Temple137.8
Angels & Demons150.0

SpeedService.applyWalkSpeed then applies, in order: the stun state (walk 0, jump 0), the treadmill state (walk 0, jump 50), the slowMode setting (back to 16), and finally the carry penalty — currently always zero — with a floor of 4 studs per second.

The player setting slowMode is the built-in accessibility switch: it pins walking speed to BASE_WALK_SPEED without touching stored Speed.

#Training on a treadmill

TreadmillService.start samples every player ten times a second (Config.Training.STEP_INTERVAL = 0.1) and awards Speed to anyone standing on their own treadmill.

SettingValue
STEP_INTERVAL0.1 s
MAX_STEPS_PER_SECOND10
MAX_DISTANCE14 studs
REQUIRE_OWN_PLOTtrue — you can only train in your own base
REQUIRE_ALIVEtrue
SNAP_ON_TOUCHtrue — touching the belt snaps you onto it
SNAP_HEIGHT3.5 studs
SNAP_COOLDOWN1 s

The standing test checks the character's height relative to the belt (−2 … +9 studs) and a 7.5 × 4.5 stud footprint, so the belt is forgiving without letting a player train from across the base.

#Speed per step

speedPerStep = treadmill.speedPerStep
             × activeTrail.mul
             × (1 + friendBonus)
             × max(1, speedBoostMul)

With 10 steps per second the effective gain is speedPerStep × 10 Speed per second.

#Treadmills

Treadmills must be bought in order — the shop refuses a jump of more than one tier. Buying a treadmill you already own simply equips it, and each tier swaps the belt model from Workspace.Treadmills.Treadmill<index>.

#TreadmillRaritySpeed / stepPrice
1TreadmillCommon20
2Sci-Fi TreadmillUncommon515,000
3Flame TreadmillRare12250,000
4Celebrity TreadmillEpic305,000,000
5Golden TreadmillLegendary80120,000,000
6Freeze TreadmillMythic1003,000,000,000
7Lucky Block TreadmillCosmic20075,000,000,000
8Hacker TreadmillSecret5003,000,000,000,000
9Demonic TreadmillEternal1,00050,000,000,000,000
10Angelic TreadmillDivine2,0001,000,000,000,000,000

TreadmillService.grantNextLevel exists for rewards and Robux products (TreadmillUpgrade), and it skips the price check.

#Speed boosts

Features.SpeedBoosts.APPLY_TO = "treadmill" means purchased multipliers apply to treadmill gains, not to raw movement. Config.SpeedBoosts lists the ladder the shop offers:

MultiplierRobux
×23
×49
×824
×1639
×3279
×64129
×128199
×256299
×512499
×1,000649
×2,000949
×4,0001,375

One-off Speed packages are separate developer products (Speed150K … Speed1B) that simply add Speed, and the boss shop plus BoostService.startAdminAbuse can grant timed multipliers on top.

#Where Speed comes from

SourceAmount
Treadmill trainingspeedPerStep per step, up to 10 steps/s
Index pet discoveryfrom WikiPets, interpolated between neighbours, +600,000,000 for the strongest pet
Index zone completionmax(500, nextZone.speedReq × 1.5)
Free gift+10,000 once, after 30 seconds in the server
Robux packages and boostssee Trails & Shop
Admin consolespeed <player> <amount>