설정 관련
"HttpService is not allowed to send requests" 에러가 발생합니다
"HttpService is not allowed to send requests" 에러가 발생합니다
Roblox Studio → Game Settings → Security → Allow HTTP Requests를 활성화하세요.
API Key는 어디서 발급받나요?
API Key는 어디서 발급받나요?
PlayWave 관리자 콘솔에서 게임별로 발급받습니다. PlayWave 서비스 운영 담당자에게 발급을 요청하세요.
테스트 환경과 프로덕션 환경의 API URL이 다른가요?
테스트 환경과 프로덕션 환경의 API URL이 다른가요?
| 환경 | URL | 상태 |
|---|---|---|
| Dev | https://wave-api.playwave.dev/v1 | 사용 가능 |
| QA | https://wave-api-qa.playwave.dev/v1 | 준비 중 |
| Live | https://wave-api.playwave.io/v1 | 준비 중 |
세션 관련
PlayWave 런처 없이 접속한 유저는 어떻게 되나요?
PlayWave 런처 없이 접속한 유저는 어떻게 되나요?
LaunchData가 비어있으므로 OTT 추출이 nil을 반환합니다. 이는 정상 동작이며, 해당 유저에게는 PC방 혜택을 부여하지 않으면 됩니다. 일반 플레이에는 영향이 없습니다.OTT_EXPIRED가 계속 발생합니다
OTT_EXPIRED가 계속 발생합니다
OTT는 런처에서 발급된 후 1분 내에 verify를 호출해야 합니다. 게임 로딩이 오래 걸리는 경우
PlayerAdded 이벤트에서 즉시 verify를 호출하고 있는지 확인하세요.하트비트를 보내지 않으면 어떻게 되나요?
하트비트를 보내지 않으면 어떻게 되나요?
게임 세션의 Redis TTL은 4분입니다. 하트비트가 없으면 4분 후 세션이 자동 삭제되고, 과금이 비정상 종료됩니다. 반드시 2분 간격으로 하트비트를 보내세요.
CHARGE_EXHAUSTED 이후에도 하트비트를 보내야 하나요?
CHARGE_EXHAUSTED 이후에도 하트비트를 보내야 하나요?
네. 서버가 2분 유예 기간을 두고 자동 종료합니다. 유예 기간 동안 하트비트를 계속 보내야 세션이 정상적으로 유지됩니다. 유저에게 G-coin 소진을 안내하되, 즉시 킥하지 않아도 됩니다.
verify 성공 후 is_pc_cafe가 false일 수 있나요?
verify 성공 후 is_pc_cafe가 false일 수 있나요?
현재 PlayWave는 PC방 전용 플랫폼이므로 verify 성공 시
is_pc_cafe는 항상 true입니다. 향후 확장을 위해 플래그를 확인하는 코드를 작성하는 것을 권장합니다.서버가 재시작되면 세션은 어떻게 되나요?
서버가 재시작되면 세션은 어떻게 되나요?
Roblox 서버 재시작 시
game:BindToClose에서 모든 활성 세션의 종료 API를 호출합니다. 호출이 실패하더라도 4분 후 TTL 만료로 자동 정리됩니다.텔레포트 관련
SubPlace로 텔레포트하면 PC방 혜택이 끊어집니다
SubPlace로 텔레포트하면 PC방 혜택이 끊어집니다
텔레포트 시
TeleportOptions에 PlayWave 세션 데이터를 포함해야 합니다. PlayWaveServer.prepareForTeleport(player, teleportOptions)를 호출한 뒤 TeleportAsync를 실행하세요. 상세 가이드는 텔레포트 연동을 참고하세요.텔레포트 연동 시 모든 SubPlace에 SDK를 설치해야 하나요?
텔레포트 연동 시 모든 SubPlace에 SDK를 설치해야 하나요?
네. 텔레포트 대상이 되는 모든 SubPlace에 PlayWave SDK가 설치되어 있어야 세션 데이터를 수신하고 인증을 유지할 수 있습니다.
플러그인 업데이트 후 기존 콜백 코드가 사라졌습니다
플러그인 업데이트 후 기존 콜백 코드가 사라졌습니다
Install SDK 클릭 시
PlayWaveSetup과 PlayWaveClient 스크립트가 초기화됩니다. SDK 재설치 전에 반드시 기존 콜백 코드를 백업하고, 설치 후 복원하세요.텔레포트 연동을 적용하지 않으면 어떻게 되나요?
텔레포트 연동을 적용하지 않으면 어떻게 되나요?
SubPlace로 이동한 유저의 세션이 유지되지 않아 과금이 적용되지 않습니다. 이로 인해 수익 손실이 발생할 수 있습니다.
Roblox 관련
LaunchData 길이 제한이 있나요?
LaunchData 길이 제한이 있나요?
OTT UUID 형태 (36자)를 전달하므로 길이 제한에 걸리지 않습니다.
PlayerRemoving에서 HTTP 호출이 완료되나요?
PlayerRemoving에서 HTTP 호출이 완료되나요?
개별 유저 퇴장 시에는 서버가 살아있으므로 HTTP 호출이 정상 완료됩니다. 마지막 유저 퇴장으로 서버가 종료되는 경우를 위해
game:BindToClose를 사용합니다. BindToClose는 30초 제한이 있으며, 그 안에 HTTP 호출이 완료되어야 합니다.task.spawn 하트비트 루프가 장시간 안정적인가요?
task.spawn 하트비트 루프가 장시간 안정적인가요?
task.spawn + task.wait 루프는 Roblox에서 장시간 실행에 안정적입니다. 플레이어가 게임에 있는 동안 지속 실행되며, activeSessions 테이블에서 세션이 제거되면 루프가 자동 종료됩니다.HttpService 외부 도메인 호출에 별도 허용 설정이 필요한가요?
HttpService 외부 도메인 호출에 별도 허용 설정이 필요한가요?
Game Settings → Security → Allow HTTP Requests 활성화만으로 충분합니다. 별도 도메인 화이트리스트 설정은 필요 없습니다.