상위 문서: Starblast.io
1. 개요
Starblast.io 의 모드에디터에 대하여 설명하는 문서이다.쉽 에디터와 마찬가지로 ECP를 구매한 유저만 사용 가능하다.
모드 에디터는 JavaScript를 기반으로 동작한다.
2. 모딩할때 유용한 사이트들
https://bhpsngum.github.io/starblast/sscv/ (쉽 에디터 코드를 모드 에디터의 코드로, 또는 그 반대로 변환해준다)https://starblast.fandom.com/wiki/Modding_Tutorial (공식 위키 튜토리얼)
3. 모드 에디터
쉽 에디터의 스샷이다
오른쪽 위에있는 Mod Editor 라고 써있는 버튼을 누르면 모드 에디터를 열수있다.
3.1. 모딩
모드 에디터를 처음 열었을 때 나오는 화면.
3.1.1. 콘솔창/터미널
모드 에디터의 오른쪽에 있는 이렇게 생긴게 콘솔창이다.[1]
아곳에서 게임을 실행하고, 여러가지 명령어를 입력할 수 있으며, 게임을 멈출 수 있습니다.
3.1.1.1. 알아야 할 기본 명령어
터미널에서 입력 가능한 명령어는 스블 자체에서 지원하는 기본 명령어와 코딩을 통해 만들 수 있는 커스텀 명령어가 있습니다.region <region name>[2] 명령어로 게임 서버를 열 지역을 설정 할 수 있습니다.[3]
모딩은 아시아, 유럽, 아메리카 이렇게 3개의 지역에서만 가능함.
이미 지역이 아시아 인데 지역을 아시아로 바꿀려고 한다면 에러가 뜬다.
서버를 열 지역을 설정한 다음 모드를 실행 시키려면 터미널에 start 라고 입력하면 서버가 열리면서 게임이 실행됩니다.
약간의 기다림 후에 서버가 열리면, 파란색 글씨로 링크가 뜨는데 거기로 들어가면 모드를 플레이 해볼 수 있습니다. [4]
모드를 실행 시킨 다음 그 링크로 직접 들어가는 방법 외에 터미널에 test 라고 입력하면 모드 에디터 하단의 공백 부분에 게임 창이 작게 열리고 거기서 모드를 플레이 해볼 수 있습니다. 렉도 많이 걸리고 화면 크기도 작아서 간단히 테스트 해볼게 있을때만 쓰는걸 추천합니다.
게임 서버를 닫고 싶다면, 터미널창에 stop 이라고 입력하면 서버가 닫히고 해당 서버에서 플레이 하던 모든 유저들이[5] 튕깁니다.
터미널에 무언가를 입력하고 싶다면 echo 명령어를 사용하면 됩니다.[6]
echo 명령어는 터미널에 문자를 출력하는거지, 인게임에 출력 하는게 아니기 때문에 헷갈리지 말아야 합니다.
echo 명령어는 보통 터미널에서 단독으로 쓰이지 않고 코드와 함께 게임에서 특정 상황이나 플레이어 리스트를 확인 할때 쓰입니다.
clear 명령어를 터미널에 입력하면, clear 명령어 포함 터미널에 있던 모든 글씨들이 지워집니다.
이전에 입력했던 명령어를 다시 입력하고 싶은데 귀찮다면 키보드의 오른쪽 하단에 있는 화살표를 눌러서 이전에 입력했던 명령어들을 가져올 수 있습니다.[7]
마지막으로 터미널에 help 라고 입력하면 약간의 도움을 받을 수 있습니다.[8]
3.1.2. 코딩하기
터미널 왼쪽에 있음
상단의 Mod Code 오른쪽에 있는 것들을 맨 왼쪽부터 설명하면, 모드 저장, 모드 불러오기, 모드 실행 이다.[9]
3.1.2.1. this.options = { };
서버를 열때 서버의 이름, 기지의 스탯, 팀의 개수, 운석의 강도, 운석이 드랍하는 보석량 등을 설정하는 곳이다.
추가 가능한 옵션들
옵션 | 데이터 타입 | 설명 | 기본값 |
root_mode | string | 게임모드를 설정함 | X |
reset_tree | boolean | 기본 트리[10] 삭제 여부[11] | false |
map_size | integer | 맵 크기를 설정함[12] | 30[13] |
soundtrack | string | 게임 브금을 설정함[14] | X |
max_players | integer | 플레이어 숫자 설정[15] | X |
crystal_value | float | 운석을 부쉈을 때 드랍하는 보석량[16] | 1 |
lives | integer | 플레이어 목숨 개수[17] | 3 |
maxtierlives | integer | 최고티어 목숨 개수 | 0 |
max_level | integer | 쉽트리의 최고 레벨[18][19] | 7 |
friendly_colors | integer | 팀의 개수[20] | 0 |
map_name | string | 맵 이름 설정 | X[21] |
survival_level | integer | 서바이벌을 할 때 자기장이 생성되는 티어[22] | 7[23] |
starting_ship | integer | 처음 시작할 때 타고있을 우주선 | 101 |
starting_ship_maxed | boolean | 시작 우주선의 스탯을 풀업으로 할지 말지 설정 | false[24] |
asteroids_strength | float | 운석의 강도[25] | 1 |
strafe | float | strafe[26] 속도 설정[27] | 0 |
speed_mod | float | 게임이 진행되는 속도[28] | 1.25 |
rcs_toggle | boolean | RCS 활성화 비활성화 설정[29] | 1 |
map_id | integer | 맵 시드[30] | Game ID |
map_density | float | 맵 밀도[31][32] | X |
weapon_drop | float | 운석을 부쉈을 때 무기가 나올 확률[33] | 0 |
crystal_drop | float | 우주선의 쉴드가 다 까였을 때 드랍하는 보석량[34] | 1 |
release_crystal | boolean | V 키를 눌러서 보석을 뿌릴 수 있게 함[35] | true |
mines_self_destroy | boolean | 지뢰를 설치하고 시간이 났을때 자폭하는지[36] | true |
mines_destroy_delay | integer | 위의 설정을 true 로 했을 때 지롸가 자폭하는 시간[37] | 18000 |
3.1.3. 쉽 추가하기
var shiptree = []; shiptree 라는 우주선 코드를 저장할 Array 생성
쉽 에디터의 상단에 있는 Mod Export 라는 버튼을 누르면 쉽 에디터 코드를 자동으로 모드 에디터 코드로 변환 해서 다운로드 받는데, 다운받은 텍스트 파일을 열고 Ctrl + A[38], Ctrl + C[39] 한다음 모드 에디터에 Ctrl + V[40] 해주면 된다.
shiptree.push(ship name_<ship code>); shiptree 라는 배열에 쉽 에디터에서 가져온 우주선의 코드를 넣음.[41]
이름 앞에 붙어있는 101은 쉽의 레벨과 모델을 의미하는 숫자로 레벨1 모델2의 쉽은 102가 될꺼다.
2티어를 만들고싶으면 shiptree.push(_101);을 201로 바꾸면 된다. (
한 티어에 쉽은 최대 99개까지 넣을수 있으며 레벨 1 모델 100이 된다면 쉽이 2티어로 올라간다.
1티어의 모델 1이 없다면 2티어의 모델 1을 가지 못하고 2티어의 모델 1이 없다면 3티어의 모델 1을 못간다.
3.1.3.1. 추가할수 있는 코드들
모드 에디터로 커스텀 모드를 열었을때 무기들을 드랍하고싶다면 game.addCollectible({code:10});를 콘솔창에 입력하면 된다. code:위 숫자를 바꾸면 다른 무기 드랍가능.[42] 100개쯤 드랍 가능하며 너무 많이 드랍하면 콘솔창에 보조무기가 너무 많이 드랍됐다는 문구와 함께 렉이 엄청나게 걸린다.보조 무기 | 코드 |
로켓 | 10 |
우주 지뢰 | 20 |
채광 포드 | 40 |
공격 포드 | 41 |
방어 포드 | 42 |
대형 지뢰 | 21 |
미사일 | 11 |
어뢰 | 12 |
또 모드 에디터로 모드를 열었는데 그린 치킨을 스폰하고 싶다면 game.addAlien({code:10,x:0,y:0,level:0});를 콘솔창에 입력하면 된다. 다른 에일리언을 스폰하고 싶다면 code: 부분의 숫자를 바꿔주면 된다. level을 바꿔서 에일리언의 색깔(레벨)을 변경할수 있다. 또한 level 뒤에 points:를 붙임으로서 죽이면 스코어가 올라가게 할수있다.[43] 에일리언은 최대 300마리까지 드랍 할 수 있다.
에일리언 | 코드 |
Chicken (치킨) | 10 |
Crab (크랩) | 11 |
Fortress (포트리스) | 12 |
??? | 13 |
Candlestick (캔들스틱) | 14 |
Hirsute (허슛) | 15 |
Piranha (피라냐) | 16 |
Pointu (포인투) | 17 |
Fork (포크) | 18 |
Saucer (사우써) | 19 |
FInal Boss (최종보스) | 20 |
3.1.4. 채팅
모딩으로 자신만의 채팅을 만들수 있다.var vocabulary = [
{ text: "Hello", icon:"\u0045", key:"O" },
{ text: "Bye", icon:"\u0046", key:"B" },
{ text: "Yes", icon:"\u004c", key:"Y" },
{ text: "No", icon:"\u004d", key:"N" },
{ text: "Bye", icon:"\u0046", key:"B" },
{ text: "Yes", icon:"\u004c", key:"Y" },
{ text: "No", icon:"\u004d", key:"N" },
{ text: "Flower", icon:"\u{1F33B}", key:"F" },
{ text: "Snowman", icon:"\u26c4", key:"M" },
{ text: "Shark", icon:"\u{1F988}", key:"S" },
{ text: "Ghost", icon:"\u{1F47B}", key:"G" }] ;
{ text: "Snowman", icon:"\u26c4", key:"M" },
{ text: "Shark", icon:"\u{1F988}", key:"S" },
{ text: "Ghost", icon:"\u{1F47B}", key:"G" }] ;
해당 코드를 빈칸에 붙혀넣고
this.options = {
};
함수 안에 vocabulary: vocabulary, 코드를 쳐준다.
text부분은 글짜가 들어갈 부분이고[44] icon은 그 채팅의 아이콘이 표시되는 부분으로 스블공식 아이콘을 쓰거나 유니코드를 복사해다가 쓸수있다.
[1]
콘솔(Console) 이라고 부르는 사람도 있고 터미널(Terminal) 이라고 부르는 사람도 있다.
[2]
예 : region Asia
[3]
Asia, Europe, America
[4]
잘못된 링크라면 일반 서바이벌로 들어가짐
[5]
서버를 닫는거기 때문에 호스트(서버 연사람) 포함
[6]
예 : echo("Hello Starblast!!");
[7]
위 아래
[8]
game.addAlien()은 게임에 에일리언을 스폰할 때 쓰는 명령어
[9]
모드를 저장하면 .js 파일이 아닌 .txt 파일로 저장되는데 이유는 모드 에디터에서는 .js 코드를 불러올 수 없어서다. 망겜
[10]
바닐라
[11]
삭제 하고싶으면 true, 아니면 false
[12]
2 ~ 200
[13]
20 : 데스매치, 30 : 인베이젼, 80 : 팀모드, 100 : 서바이벌
[14]
crystals.mp3
https://www.youtube.com/watch?v=y_Q-pqTrcII, argon.mp3
https://www.youtube.com/watch?v=d5zcsgyZ2Z0, procedurality.mp3
https://www.youtube.com/watch?v=aalP94dxavE
[15]
1 ~ 240
[16]
0 ~ 5
[17]
0 ~ 5
[18]
1 ~ 7
[19]
자신이 만든 쉽트리의 최고티어가 8티어 이상이라면 7 이상도 설정 가능
[20]
0 ~ 5
[21]
아무것도 입력하지 않으면 랜덤으로 생성됨, 임의의 이름 설정 가능
[22]
2 ~ 8
[23]
서바이벌이 시작되게 하고싶지 않다면 8
[24]
ECP 유저들의 경우엔 이 설정에 관계없이 풀업
[25]
0 ~ 1000000
[26]
인게임 에서 A 나 D 키를 눌러서 좌우로 움직이는것
[27]
0 ~ 1
[28]
운석 리젠 등
[29]
false, true
[30]
0 ~ 9999
[31]
운석, 기지 간 간격 등
[32]
0 ~ 2
[33]
0 ~ 10
[34]
0 ~ 1
[35]
false, true
[36]
false, true
[37]
tick[45] 으로 카운트, 제한 없음
[38]
전제 선택
[39]
복사
[40]
붙여넣기
[41]
.push()는 자바스크립트 에서 배열에 뭔가를 추가할 때 쓰는 함수
[42]
태양쪽에 드랍됨
[43]
스코어 최대치 9999999
[44]
한국어로 해도 된다.