Skip to content

Limits

Rally games run on Rally’s game servers and on players’ devices, so a few things have fixed limits. This page lists all of them. Numeric properties also have ranges, listed on their API reference pages: values outside a range are clamped to it.

Checked while you edit in Rally Studio, and again when you test or publish.

Limit Value When a game goes over it
A game’s project: its world plus every script’s source, as JSON 8 MB Rally Studio can’t save it and shows “Couldn’t save” with the game’s size. Play, Test and publishing fail too.
Objects in the game 50,000 Studio refuses the change (“the game has too many objects”).
Script source, all scripts together 2 MB (counted in characters) Studio refuses the change (“scripts would be larger than 2 MB in total”).
One script’s source 200,000 characters Studio refuses the change.
Scripts and LocalScripts that run (in a published or tested game) 200 Play, Test and publishing fail.
Scripts, LocalScripts and ModuleScripts in a project 400 Studio can’t save the game.
Objects inserted at once (a paste, a model from the Toolbox) 5,000 Studio refuses the insert.

Meshes, images and sounds aren’t part of a game’s size: parts and sounds refer to them by URL (meshUrl, image, soundUrl), and each player’s device downloads them.

Limit Value Notes
Players per server 1 to 100, set in the game’s settings (default 20) When every server of a game is full, Rally starts another one for the next player.
Test players in Studio’s Test 1 to 4 A test server’s saved data starts empty and is thrown away.
An empty server keeps running 60 seconds after the last player leaves (120 seconds before the first player joins) Then it stops taking new players and shuts down. The next player starts a new server.
Longest a server runs 24 hours The server stops and its players are disconnected.
Saving when a server stops 2 seconds playerRemoving handlers, and the data store requests they start, get this long to finish.

These apply on Rally’s game servers: published games and Studio’s Test. Studio’s Play runs the whole game in your browser, where they don’t apply, so test on a server before you publish.

Limit Value When a game goes over it
Loading the world when a server starts 5 seconds The server doesn’t start, and players can’t join.
Running every script’s top-level code at startup 5 seconds in total The game doesn’t start (“a script ran too long”).
One step of the game: the scripts’ handlers, tasks and physics it runs 1 second The server stops. Players are disconnected with “The game server stopped: a script ran too long.”
CPU use, averaged over 5 seconds 90% of one CPU core The server stops with the same message.
Memory 256 MB The server stops. Players are disconnected with “The game server stopped: it ran out of memory.”
A RemoteFunction handler 5 seconds of game time The player’s call fails with “the server took too long”.

A script that throws an error doesn’t stop the game: the error goes to the game’s output and the game keeps running. Only the limits above end a game.

On players’ devices, if the game stops responding for 5 seconds (30 seconds while it loads), for example because a LocalScript is stuck in a loop, Rally shows “This game isn’t responding” and offers to leave it.

Limit Value Notes
Server steps 30 a second One step covers at most 0.25 seconds: a server that falls behind slows game time down instead of skipping ahead.
Physics 60 steps a second, on the server
Replication to players 20 times a second
Character movement from each player 20 updates a second

The server accepts a character’s move when it’s within 1.5 × walkSpeed × the time since the last accepted move, plus 2 studs, horizontally, and rises no more than 1.5 × jumpPower × that time, plus 2 studs. Falling is never limited. Other moves snap the character back. Moves to a position more than 1,000,000 studs from the origin on any axis are ignored.

Limit Value When a game goes over it
Remote calls per player (fireServer and invokeServer together) 60 a second Extra calls are dropped, and a warning goes to the game’s output. invokeServer fails with “rate limited”.
Messages per player, of any kind 150 a second, with bursts of up to 300 Extra messages are dropped.
Largest message from a player 64 KB The player is disconnected.
Remote arguments Nested at most 12 levels deep, 5,000 values in total The call throws a RangeError (“remote arguments are too large”) on the side that sends it.
Strings in remote arguments 50,000 characters Longer strings are cut.
Waiting for an invokeServer answer 10 seconds The call fails (“invokeServer timed out”).
Updates waiting to reach a player who can’t keep up 8 MB The player is disconnected.
Limit Value When a game goes over it
Data store names 1 to 50 characters getDataStore and getOrderedDataStore throw a RangeError.
Keys 1 to 50 characters The call rejects with a RangeError.
Values JSON, up to 64 KB (65,536 bytes as UTF-8) The call rejects (“values are limited to 64 KB”).
Rows from getSorted 1 to 100 (default 10) Other limits are clamped into the range.
update attempts when other servers write the same key 5 The call rejects (“kept conflicting; try again”).
Requests per game, all of its servers together 6,000 a minute Requests reject (“Too many data requests”).
Requests per server at once 16 running, 512 more waiting More requests reject (“too many data store requests at once”).
One request 10 seconds The request rejects.
Limit Value Notes
Lines a server writes 200 a second, and at most 500 in one step Extra lines are dropped, and a line says how many.
A line from a server script 4,000 characters in the developer console Longer lines are cut.
Server output shown to the game’s owner on joining The last 200 lines
Lines the in-game developer console keeps 500 Older lines are removed.
Limit Value
Game name 1 to 60 characters
Game description Up to 1,000 characters
Object names in Rally Studio 1 to 100 characters, without /
Attribute names 1 to 100 characters: letters, digits and _, not starting with a digit
A player’s display name in a game Up to 32 characters
kick messages and errors sent back by invokeServer 500 characters (longer ones are cut)
Limit Value When a game goes over it
Animation tracks 200 per animation Assigning tracks throws a TypeError.
Animation keys 2,000 per animation, all tracks together Assigning tracks throws a TypeError.
Animation length Up to 3,600 seconds Clamped.
Terrain resolution 2 to 256 samples per side Clamped.
Terrain samples in heights or materials 65,536 (256 × 256) Assigning throws a TypeError.

Rate limits are per account. When you go over one, Studio says “Slow down” and how long to wait.

Limit Value
Creating games 20 an hour
Publishing 30 an hour
Play and Check (compiling a game) 60 a minute
Starting a test server (Test) 20 every 10 minutes
Joining games 30 a minute
Collaborators per game 20
Adding collaborators 30 an hour
Active developer tokens 20 per account
Creating developer tokens 10 an hour
Requests from a connected AI app 240 a minute
Limit Value
A model’s size, as JSON 2 MB
Objects in a model 5,000
Scripts in a model 100, with up to 200,000 characters of code in total
Nesting depth in a model 64 levels
Item name 1 to 80 characters
Item description Up to 1,000 characters
Tags Up to 10 per item, each up to 24 characters
Items per account 500
Publishing items 20 an hour
Updating items 60 an hour

Web games bring their own client and server, so most limits above don’t apply to them. Theirs are checked when you run rally publish, and a version over one isn’t published.

Limit Value
Files in the client 5,000
One client file 64 MB
All client files together 200 MB
The server folder, packed and compressed 150 MB
Players per server 1 to 1,000 (20 by default)
An empty server keeps taking players 60 seconds after its last WebSocket connection closes, then it shuts down about a minute later
Longest a server runs 24 hours
Saved data The same limits as saved data above: 50-character store names and keys, 64 KB values, 6,000 requests a minute per game
Creating web games with a developer token 20 an hour
Publishing web game versions with a developer token 30 an hour

See Web games › Limits for the rest.