[Full Release] Ship Fair And Competitive Games with Server Authority


Hi Creators,

We’re launching Server Authority for all games today. Based on your feedback, we want to help you build fair and responsive multiplayer games. This feature makes the server the single source of truth for your game’s state, letting you protect your games while keeping physics responsive.

Why Use Server Authority

Cheating ruins gameplay and hurts your communities. Server Authority solves this at the engine level by running your code authoritatively on the server, which automatically rejects invalid client movements. It’s paired with client prediction and rollback, so your client predicts inputs instantly and resimulates to match the server if a misprediction happens, keeping gameplay snappy. The result is consistent, fair physics for character movement, vehicles, and sports across every device and connection. In short, this new netcode empowers you to write server-side behaviors without latency, unlocking more gameplay options for any game.

What’s New

Boosted Performance and Reduced Mispredictions

We’ve made some improvements since launching the Client Beta. We’ve built a stronger foundation by boosting performance and reducing mispredictions across the board. Server Authority is easy to turn on for basic characters and objects simulated by the engine, and it protects your games from cheating while keeping physics responsive.

  • Mispredictions: Lowered mispredictions across a range of gameplay scenarios.
  • Performance: Improved framerate on lower-end devices
  • Backpacks and Tools: Now fully supported in Server Authority

Tools To Simplify Your Setup

Based on your feedback, we’ve recently shipped two features to support your workflow:

  • Instance Streaming Conversion Skill: An experimental AI skill you can use with MCP that converts your non-streaming game to streaming, which Server Authority requires.

  • Network Simulation in Studio: Upgraded testing tools that let you check how your game responds to poor network conditions, high latency, and packet loss.

These features make it easier to adjust your scripts and verify that your prediction logic works well under real-world conditions.

How to Get Started

Follow these steps to enable Server Authority:

  1. Open the Workspace Properties Window: In Studio, locate the Server Authority section in the Workspace Properties panel
  2. Toggle AuthorityMode to Server. You should see this:

  1. Setting AuthorityMode to Server automatically sets the following five required engine settings:
  • NextGenerationReplication set to Enabled.
  • PlayerScriptsUseInputActionSystem set to Enabled.
  • SignalBehavior set to Deferred.
  • StreamingEnabled set to Enabled.
  • UseFixedSimulation set to Enabled.
  1. Save and publish.

:warning: If you’re converting an existing game, consider creating a new copy of your game while you work on the changes. Games with complex custom gameplay will need their scripts adapted to use BindToSimulation and InputAction. To simplify your setup, you can use the Instance Streaming Conversion Skill, which is an experimental AI skill that converts your non-streaming game to support instance streaming. You can also use upgraded testing tools to check network simulation in Studio under poor network conditions, high latency, and packet loss.

Resources

For an in-depth guide on how to get started, check out our documentation. If you want to move beyond standard character physics, read our Advanced Techniques Page. It shows you how to apply Server Authority to complex custom gameplay, moving objects, and custom network systems. You can also check out our template games for Racing, Soccer, and Laser Tag to see working examples.

Next Steps and Feedback

We’re just getting started! Expect us to iterate frequently on this technology making it easier to use, reduce mispredictions even further, and deploy general performance improvements. Let us know in the comments how Server Authority performs in your games.

Thank you for all your help on this journey!

The Server Authority Team

Known Issues

Click to view
  • Mobile and console client updates normally lag desktop updates by a few days and won’t be able to connect until that occurs.

  • Animations are limited to eight actively playing tracks per Animator.

  • Attributes have a limit of 64 per instance with limited string size support.

  • Custom emotes, default mood animation logic, and strafing animations aren’t supported in the Animate script.

  • Remote events aren’t synchronized with the shared timeline, so avoid using them if you need them synchronized with DataModel changes.

  • Changing Tools during a misprediction may delete the Tool’s Weld on the client. This can be fixed by equipping another Tool or unequipping the current Tool.

FAQs

Click to view

Is Server Authority a feature turned on automatically for all games?

  • No. Server Authority is opt-in.

Do I have to rewrite my entire game?

  • Not for games using default avatars and simple physics. You can turn on character anti-cheat by simply enabling the prerequisites and setting AuthorityMode=Server. If you’re already building on the latest and greatest engine features, this is super easy!!

    You will need to rewrite certain scripts if your game has complex custom gameplay by adapting them to use BindToSimulation and InputAction. Our documentation walks you through both paths, and the templates demonstrate working examples of each pattern.

Why is StreamingEnabled required?

  • Server Authority is built upon the newest networking systems in the Roblox Engine. It uses the Streaming System in part for the Auto Prediction system.

Why does SignalBehavior have to be Deferred?

  • We enforce Deferred Signals in the Server Authority system in order to simplify the resimulation process by pushing signal listeners outside of the core simulation loop.

Won’t this add latency?

  • Server Authority uses client prediction to keep gameplay feeling responsive and to mask latency. The client predicts the result of your inputs instantly. If the server disagrees, the client corrects smoothly. Creators who’ve tested this during Studio Beta and Early Access report that in practice, gameplay feels responsive, and the tradeoff is a dramatically fairer experience.

What about custom movement abilities?

  • Will my dash/flight/boost get flagged? Server Authority doesn’t make arbitrary decisions about what movement is “legal.” You define your game’s physics and abilities through your scripts. The server runs your code authoritatively, so if your game has a dash ability scripted on the client and the server, the server will know about it and won’t reject it. Server authority protects your game from exploiters who will no longer be able to inject movement the server doesn’t expect.

What is Next Generation Replication?

  • This is an early preview of an improved Roblox property synchronization system, aimed at reducing latency and fixing long-standing issues (like parts hanging in the air). This is an opt-in feature and available now as a Beta to all experiences; again, this feature is required for Server Authority.

Will you increase how much I can put in Attributes?

  • The attribute limitation is part of the “Next Generation Replication” change (mentioned above), and we are actively exploring how we can loosen the restrictions on attribute counts and payload sizes performantly. The initial restrictions were necessary to guarantee the low latency this first version of Server Authority requires.

How is this different from SetNetworkOwner?

  • While SetNetworkOwner allows you to set the ownership of an Instance to the server, it does not compensate for the added latency introduced when communicating an Instance’s changes between the client and the server. That latency makes interactions feel less responsive.

    Server authority integrates prediction, rollback, and resimulation into server network ownership, which allows the server to own instances while keeping your games smooth and responsive. It also adds a collection of dedicated APIs so your game loop can support these new features.

Will enabling Server Authority impact server performance?

  • You will see increased server utilization if you enable Server Authority. The impact on your experience depends on whether you were already close to the server utilization limit (e.g., due to heavy server-side physics). If you weren’t close to the limit, the impact will most likely be small.

    You can use our Extended Services for Compute product to boost the amount of per-player compute (CPU) resources your game servers receive and improve player performance.

188 Likes

This topic was automatically opened after 10 minutes.

Are there any future plans in development to make this mandatory for all games, or will this stay as an opt-in feature?

18 Likes

Good idea for preventing movement exploits, although systems using physics mover instances (e.g. *Constraints, or even legacy BodyMovers) might need a bit of rework if Server Authority is enabled. One question: if the ServerAuthority toggle is only “Automatic” and “Server”, does that mean it’s going to be enabled by default someday (or for new experiences at some point)? An extra toggle like Disabled or Legacy will be helpful and feels more correct.

13 Likes

W Update. Hopefully developers now won’t have any excuse to let exploiters play

11 Likes

Thank you Roblox for this good update, please don’t make a really bad one for the next 48 hours

27 Likes

I noticed Laser Tag doesn’t use BindToSimulation. Is it intended to just use RemoteEvents for shooter gameplay?

4 Likes

Are there plans to add interpolation for shiftlock and animations? Both of which are still locked at 60hz…

9 Likes

so uh with InputBinding and the Scriptable thing will one be able to create their custom input? :thinking:

And Server Authority Backpack wasn’t yet finished, so it’s interesting that we are at Full Release already, but okay.

That “RequestTool” or, I think it’s just something that the InstanceAttribute fast flag would also solve, maybe.

4 Likes

Great to see this finally fully released, but this really is the beginning, as the API still needs a lot of work. Especially with attribues and control over the simulation.

14 Likes

how does this interact with client changes that don’t impact gameplay? such as a client setting that disables weapon skins/paints? would it still apply or be reverted by the authority?

how does it interact with client changes only applied by the client and not supposed to replicate?
in my game, uniforms of characters are dependent on an immersion setting. so people may not be seeing the same uniform. (uniforms also affect where weapons/tools are holstered on the player character)

3 Likes

Nice update, should hopefully mitigate exploiters in games. But I wonder if this will be enforced in a few years and break some games… (Just like FilteringEnabled remember that lol)

7 Likes

How should one go about implementing server authority for 100-700 player servers? Server authority requires most of the logic to run on both server and client in frequently invoked simulation loops. Luau is a scripting language and even with codegen it is far from efficiency required for this kind of workload. Will developers ever have a way to use a compiled languages like Rust?

6 Likes

W roblox update, no more fly or speed hacks!

3 Likes

while i love server authority, can i get a FULL confirmation this will never be mandatory? it will always be an optional feature right?

4 Likes

Initially, when server authority was first announced, I was very excited about it. However, the way server authority has been implemented opens up the possibility of far more exploits outside of movement cheats due to the fact that it expects you to use Attributes so much, and you’re giving exploiters way more information to work with that they just don’t need.

9 Likes

Good eye!

So under the hood, PlayerScripts uses BindToSimulation for all avatar movement when Server Authority is enabled.

Laser Tag’s shooting is unchanged from the existing template as of now.

Using a remote event is a fine solution, it just wont be fully time synchronized with the client, which can be off ~40-50ms. This means that there is a misprediction when shooting in Laser Tag, but this is normal in a shooter, where some hit detection code will run only on the server. Zero mispredicts is not the goal: smooth gameplay is the goal.

We are looking into either synchronizing remote events, or adding a similar event api that is fully time locked/rolled back/etc.

We are examining further improvements to our Server Authority client side prediction API to allow advanced ‘server side rewind’ hit detection like what you would find in a typical AAA shooter.

Stay tuned for updates!

We’re just getting started on giving our Creators sharp tools to make amazing things :slight_smile:

15 Likes

This update will only benefit a very small percentage of games, while the time, money, and effort spent developing it could have been put toward features that would help far more developers.

2 Likes

To simplify your setup, you can use the Instance Streaming Conversion Skill, which is an experimental AI skill that converts your non-streaming game to support instance streaming

Don’t think so, Coding your game around with and without Streaming is different

Server Authority isn’t the right decision for all games, so we want to follow suit and say this is always something you chose to do.

Many popular multiplayer games have Client-Authoritative physics on a variety of things:

  • World of Warcraft (and many other MMOS) has Client Authoritative character movement
  • Destiny 2 has a lot of Client Authoritative player simulation

So the distributed authority system we have by default at Roblox is still very important.

31 Likes