[로블록스]#3 - Script구조
Roblox를 배우다 보면 반드시 한 번은 이런 생각이 든다.
“분명 코드는 맞는데, 왜 아무 일도 안 일어나지?”
이번 글에서는 그 이유를 만드는 핵심 구조, Script / LocalScript / ModuleScript를 Unity 개발자 관점에서 정리한다.
1. 로블록스에서 스크립트가 중요한 이유
Unity에서는 스크립트가 “컴포넌트 ”다.
게임오브젝트 어디에 붙어 있든, 실행 조건만 맞으면 동작한다.
하지만 로블록스에서는 다르다.
로블록스에서는
스크립트의 종류 + 위치 = 실행 권한이다.
즉, “어디에 있느냐”가 곧 “누가 실행하느냐”를 결정한다.
2. Script / LocalScript / ModuleScript 한눈에 보기
종류실행 위치주 용도
| 종류 | 실행 위치 | 실행 주체 | 용도 | 요약 |
| Script | 서버 | 서버 1개 | 게임 규칙, 판정 | 서버의 두뇌(규칙,판정) |
| LocalScript | 클라이언트 | 플레이어마다 1개 | 입력, UI, 카메라 | 플레이어의 손과 눈(UI, 입력) |
| ModuleScript | 불러와서 사용 | 불러온 쪽 | 공용 로직/데이터 | 공용 설명서(데이터,함수 묶음) |
이 표를 이해하면, 로블록스 스크립트 구조의 절반은 이해한 것이다.

3. Script : 서버의 두뇌
Script는 서버에서만 실행된다.
즉, 이 스크립트에서 일어난 일은 모든 플레이어에게 동일하게 적용된다.
- 게임 규칙(방 생성/ 인원 체크)
- 데이터 저장
- 몬스터 생성
- 아이템 지급
서버에서 바꾸는 값은
자동으로 모든 플레이어에게 동기화된다.
4. LocalScript : 플레이어 전용 세계
LocalScript는 각 플레이어의 클라이언트에서 실행된다.
그래서 반드시 정해진 위치에서만 동작한다.
- PlayerScripts
- StarterCharacterScripts
- StarterGui

주로 다음과 같은 작업을 담당한다.
- 키 / 마우스 입력 처리
- UI 버튼 클릭
- 카메라 제어
- 이펙트 연출, 사운드
LocalScript는
“나만 볼 수 있는 세계”를 만든다.
5. ModuleScript : 공유되는 코드
ModuleScript는 스스로 실행되지 않는다.
반드시 Script나 LocalScript에서 require()로 불러와야 한다.
Unity로 치면 static class + util 모음에 가깝다.
- 공통 함수
- 설정 값
- 계산 로직
ModuleScript는 “도구”다.
실행 주체는 항상 다른 스크립트다.
6. 가장 많이 하는 실수
- Script로 UI를 제어하려 한다
- LocalScript에서 데이터 저장을 한다
- ModuleScript를 실행 파일처럼 생각한다
- 스크립트 위치를 신경 쓰지 않는다
이 중 하나라도 해당된다면, “왜 안 되는지”를 이미 겪고 있는 상태다.
7. Script 구조 핵심 요약
- Script = 서버
- LocalScript = 클라이언트
- ModuleScript = 공용 도구
- 위치가 곧 권한이다
- 실행 주체를 항상 의식하자
8. 다음 글 예고
다음 글에서는 드디어 Lua 문법을 다룬다.
단순 문법 설명이 아니라, C / C# 개발자 관점에서 “왜 이렇게 생겼는지”를 정리해볼 생각이다.
Lua는 약한 언어가 아니다.
로블록스를 위해 설계된 언어다.
'■ 로블록스 개발 노트 > 개발일지' 카테고리의 다른 글
| [로블록스]#6 - 입력 처리 & 카메라 제어 (1) | 2025.12.30 |
|---|---|
| [로블록스]#5 - 캐릭터 & Humanoid (0) | 2025.12.29 |
| [로블록스]#4 - Lua 문법 (0) | 2025.12.29 |
| [로블록스]#2 - 인터페이스 (0) | 2025.12.29 |
| [로블록스]#1 Unity개발자의 로블록스 개발일지 (0) | 2025.12.29 |
댓글