본문 바로가기
■ 로블록스 개발 노트/개발일지

[로블록스]#3 - Script 구조

by Popbox 2025. 12. 29.

[로블록스]#3 - Script구조

Roblox를 배우다 보면 반드시 한 번은 이런 생각이 든다.
“분명 코드는 맞는데, 왜 아무 일도 안 일어나지?”
이번 글에서는 그 이유를 만드는 핵심 구조, Script / LocalScript / ModuleScript를 Unity 개발자 관점에서 정리한다.


 

 

1. 로블록스에서 스크립트가 중요한 이유

Unity에서는 스크립트가 “컴포넌트 ”다.
게임오브젝트 어디에 붙어 있든, 실행 조건만 맞으면 동작한다.

하지만 로블록스에서는 다르다.

로블록스에서는
스크립트의 종류 + 위치 = 실행 권한이다.

즉, “어디에 있느냐”가 곧 “누가 실행하느냐”를 결정한다.

 

 

 


2. Script / LocalScript / ModuleScript 한눈에 보기

종류실행 위치주 용도

종류 실행 위치 실행 주체 용도 요약
Script 서버 서버 1개 게임 규칙, 판정 서버의 두뇌(규칙,판정)
LocalScript 클라이언트 플레이어마다 1개 입력, UI, 카메라 플레이어의 손과 눈(UI, 입력)
ModuleScript 불러와서 사용 불러온 쪽 공용 로직/데이터 공용 설명서(데이터,함수 묶음)

이 표를 이해하면, 로블록스 스크립트 구조의 절반은 이해한 것이다.

Explorer

 

 

 


3. Script : 서버의 두뇌

Script는 서버에서만 실행된다.

즉, 이 스크립트에서 일어난 일은 모든 플레이어에게 동일하게 적용된다.

  • 게임 규칙(방 생성/ 인원 체크)
  • 데이터 저장
  • 몬스터 생성
  • 아이템 지급

서버에서 바꾸는 값은
자동으로 모든 플레이어에게 동기화된다.

 

 

 


4. LocalScript : 플레이어 전용 세계

LocalScript는 각 플레이어의 클라이언트에서 실행된다.

그래서 반드시 정해진 위치에서만 동작한다.

  • PlayerScripts
  • StarterCharacterScripts
  • StarterGui

explorer

주로 다음과 같은 작업을 담당한다.

  • 키 / 마우스 입력 처리
  • 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는 약한 언어가 아니다.
로블록스를 위해 설계된 언어다.

 


반응형

댓글