서버
Roblox 게임은 기본적으로 다중 사용자로 작동하며 클라이언트-서버 모델에서 실행됩니다. Roblox 서버는 게임의 상태를 유지하는 최종 권한으로, 모든 연결된 클라이언트를 서버와 동기화하는 책임을 집니다.

클라이언트
게임이 실행될 때, Roblox는 당신이 스튜디오에서 작성하고 게시한 "편집" 데이터 모델의 복사본을 만들어 Roblox 서버에서 "런타임" 데이터 모델로 실행합니다.
연결된 클라이언트는 런타임 데이터 모델의 복사본을 받으며, 플레이어의 백팩(인벤토리) 또는 로컬 사용자 인터페이스와 같은 플레이어 초기화가 발생합니다. 게임에서 Workspace.StreamingEnabled가 true로 설정된 경우, 서버는 초기적으로 클라이언트에 가장 가까운 Workspace의 콘텐츠 하위 집합만 전송합니다. 클라이언트는 3D 세계를 렌더링하고 적용 가능한 스크립트를 실행하기 시작합니다.

복제
서버는 연결된 클라이언트를 지속적으로 업데이트하며, 복제라는 프로세스를 통해 서버와 클라이언트 간에 모든 것을 동기화합니다. 이는 데이터 모델, 물리 시뮬레이션 및 채팅 메시지를 동기화합니다. 복제 로직은 클라이언트와 서버 모두에 존재하여 동기화를 보장합니다.
데이터 모델 변경은 3D 세계에서 무언가가 생성되거나 3D 세계의 속성이 변경되는 경우와 같은 다양한 경우에 발생할 수 있습니다. 이는 일반적으로 서버 또는 클라이언트의 스크립트가 클라이언트-서버 경계의 반대편에서 반영해야 할 변경 사항을 만들 때 발생합니다. 다음 다이어그램은 데이터 복제의 일반적인 시나리오를 보여줍니다.


