서버
Roblox 경험은 기본적으로 멀티플레이어이며 클라이언트-서버 모델에서 실행됩니다.Roblox 서버 는 경험 상태를 유지하는 최종 권한이며, 모든 연결된 클라이언트를 서버와 동기화하는 데 책임이 있습니다.

클라이ент
경험이 실행되면 Roblox는 Studio에서 빌드하고 게시한 "편집" 데이터 모델의 버전을 복사하여 Roblox 서버에서 "런타임" 데이터 모델로 실행합니다.
연결된 클라이언트는 런타임 데이터 모델의 복사본과 플레이어의 백팩(인벤토리) 초기화나 로컬 사용자 인터페이스 초기화와 같은 플레이어 초기화도 받습니다.경험에 설정이 트루로 설정되면 서버는 처음에 클라이언트에 가장 가까운 콘텐츠 하위 집합만 전송합니다.클라이언트는 3D 세계를 렌더링하고 적용 가능한 스크립트를 실행하기 시작합니다.

복제
서버는 연결된 클라이언트를 지속적으로 업데이트하여 서버와 클라이언트 전체에서 데이터 모델, 물리 시뮬레이션 및 채팅 메시지를 동기화하는 복제 프로세스를 통해 모든 것을 동기화합니다.동기화를 보장하기 위해 클라이언트와 서버에 복제 논리가 존재합니다.
정보
데이터 모델 변경은 3D 세계에서 무언가가 생성되거나 3D 세계의 속성이 변경될 때와 같은 다양한 경우에 발생할 수 있습니다.일반적으로 서버나 클라이언트의 스크립트가 클라이언트-서버 경계의 반대편에 반영해야 하는 변경을 수행할 때 발생합니다.다음 그림에서는 데이터 복제의 일반적인 시나리오를 보여줍니다.
클라이언트 → 서버 > 클라이언트에서 서버로의 통신.예를 들어 클라이언트가
P키를 누르고 투명화 물약을 마시고, 서버에게 다른 모든 플레이어에게 해당 플레이어의 캐릭터를 투명하게 만들도록 지시합니다.
서버 → 클라이언트 > 특정 클라이언트로부터 서버로의 통신.예를 들어, 플레이어가 경험에 참여하고 서버는 해당 플레이어의 인벤토리에 일련의 아이템을 채웁니다.

서버와 연결된 모든 클라이언트 간 통신.예를 들어, 레이스의 모든 참가자에게 카운트다운 타이머를 표시합니다.
물리학
Roblox는 3D 세계의 부품의 이동과 상호 작용을 계산하는 데 책임이 있는 단단한 신체 물리 엔진을 사용합니다.기본적으로 Roblox의 모든 부품은 경직된 몸이며 다르게 지정하지 않는 한 시뮬레이션된 물리학에 참여합니다.물리 엔진에서 단일 단단한 몸으로 처리하는 여러 부품을 함께 조립으로 그룹화할 수도 있습니다.



Roblox는 필요할 때 서버와 클라이언트 사이의 물리 시뮬레이션 데이터를 복제합니다.시뮬레이션 이행돕기 위해 Roblox는 어셈블리의 소유권을 특정 클라이언트나 서버에 할당할 수 있습니다.즉, 클라이언트나 서버가 그 어셈블리의 물리를 시뮬레이션하는 책임을 질 수 있음을 의미합니다.다른 클라이언트는 소유 클라이언트나 서버로부터 어셈블리의 위치와 이동에 대한 업데이트를 받습니다.소유권은 일반적으로 자동으로 발생하지만, 미세 조정된 응답을 위해 직접 할당할 수 있습니다.
채팅
Roblox는 서버와 클라이언트 사이의 채팅 메시지를 복제합니다.서버는 채팅 메시지를 필터링하고 다른 클라이언트에 복제할 메시지를 결정합니다.예를 들어 서버는 욕설이 포함된 메시지나 너무 길은 메시지를 필터링할 수 있습니다.