콘솔
개요
콘솔은 팩토리오의 명령어 체계이다.
게임 내에서 콘솔은 다음과 같이 사용된다:
- 다른 플레이어와 채팅을 할 때
- 커맨드 / 스크립트 / 치트를 사용할 때
- 수치 조정이 필요할 때
커맨드는 다음과 같이 세 종류가 있다:
- 일반 - 현재 게임과 설정에 관한 정보를 보여준다.
- 멀티플레이 - 메시지 필터링, 플레이어 밴 등.
- 스크립트/치팅 - Lua 스크립트를 실행한다 (실행하면 해당 게임에서는 업적을 달성할 수 없게 된다)
콘솔 사용
콘솔은 / (slash) 나 ~ (tilde) 키를 누르면 활성화 된다.
옵션 → 조작 → Lua 입력창 표시 전환(우측하단)에서 키를 변경할 수 있다.
콘솔창에 메시지나 커맨드를 입력하고 엔터를 누르면 콘솔 창이 닫히며 메시지를 보낼 수 있다.
메시지나 커맨드에 대한 내용은 문서 아래에서 찾을 수 있다.
콘솔이 입력되며 창이 닫히면 가장 최근의 메시지/커맨드가 표시되고, 곧 화면에서 사라진다. 또한, 콘솔창을 열면 최근 메시지가 바로 표시된다. 기본적으로, 커맨드는 보든 유져에게 보인다. 옵션 → 인터페이스 → 채팅 메시지 지연에서 사라지는 시간을 조절할 수 있다.
콘솔창을 즉시 닫고 싶으면 Esc 나 Enter 를 누르면 된다. 입력 없이 콘솔창이 닫히면 메시지/커맨드 또한 바로 사라지게 된다 /clear를 입력하면 콘솔창이 청소된다.
콘솔 기록
콘솔에 입력한 내용은 저장이 되는데, 한 번에 한 줄만 보여진다.
↑ 또는 ↓ 키로 콘솔 기록을 스크롤 할 수 있다.
← 또는 → 키로 콘솔의 커서를 움직여 편집, 삭제 등을 할 수 있다.
Tab 키로 자동완성을 할 수 있다.
일반 커맨드
커맨드 | 사용 예시 | 설명 | 호스트 전용 |
---|---|---|---|
/alerts <enable/disable/mute/unmute> <alert> | /alerts disable turret_fire | 퀵 바 오른쪽에 뜨는 경고메시지에 대한 음소거를 켜고 끈다. | No |
/clear | /clear | 콘솔창을 깨끗하게 한다. | No |
/color <color> | /color 20 255 255 100 | RGBA 수치에 따라 색을 변경한다. 또는 주어진 색으로 변경할 수 있다 : 기본, 적, 녹, 청, 오렌지, 황, 핑크, 보라, 백, 흑, 회, 갈, 청록, 에시드(녹색계열) | No |
/evolution | /evolution | 몬스터 진화 정보를 표시한다. | No |
/help [command] | /help | 유효한 커맨드 리스트를 출력한다. 뒤에 커맨드를 입력하면 커맨드에 대해 설명한다. | No |
/h [command] | /h | /help 와 같다. | No |
/mute-programmable-speaker <mute/unmute> <local/everyone> | /mute-programmable-speaker mute local | 모든 소리를 끄거나 켠다. 참가자는 본인만 가능하고, 호스트는 서버 내 전체를 설정할 수 있다. | No |
/permissions | /permissions | 사용권한 창을 연다. | Yes |
/seed | /seed | 맵 시드를 출력한다. | No |
/time | /time | 현재 게임의 플레이 타임을 출력한다. | No |
/toggle-rockets-sent-gui | /toggle-rockets-sent-gui | 좌측 상단에 로켓 발사에 대한 통계를 표시를 켜고 끈다. | No |
/version | /version | 현재 게임 버전을 출력한다. | No |
멀티플레이 커맨드
커맨드 | 사용 예시 | 설명 | 호스트 전용 |
---|---|---|---|
<message> | Hello team! | / 로 시작하지 않는 모든 메시지를 서버 내 유져(혹은 팀)에게 보여준다. | No |
/admins | /admins | 호스트 아이디를 출력한다. | No |
/ban <player> <reason> | /ban xTROLLx Throwing grenades in base | 지정 유져를 추방한다. 아이디 뒤에 이유를 적으면 이유가 함께 표시된다. | Yes |
/banlist <add/remove/get/clear> <player> | /banlist get | 추방 목록에 유저를 더하거나 뺀다. /ban 이나 /unban 과 같다. | No |
/config <get/set> <option> <value> | /config set password hunter2 | 다양한 멀티플레이용 세팅을 설정한다. 가능한 설정 커맨드: afk-auto-kick, allow-commands, allow-debug-settings, autosave-interval, autosave-only-on-server, ignore-player-limit-for-returning-players, max-players, max-upload-speed, only-admins-can-pause, password, require-user-verification, visibility-lan, visibility-public. | Yes |
/delete-blueprint-library <player> | /delete-blueprint-library everybody confirm | 보관중인 청사진을 삭제한다. everybody confirm”를 입력하면 모든 오프라인 사용자의 청사진을 삭제한다. | Yes |
/demote <player> | /demote AzureDiamond | 유저의 호스트 권한을 박탈한다. | Yes |
/ignore <player> | /ignore Cthon98 | 지정 유저의 채팅을 금지시킨다. | No |
/ignores | /ignores | 채팅금지 목록을 표시한다. | No |
/kick <player> <reason> | /kick xTROLLx Throwing grenades in base | 특정 유저를 추방한다. | Yes |
/mute <player> | /mute Cthon98 | 특정 유저의 채팅이 보이지 않는다. | Yes |
/mutes | /mutes | 공개 채팅을 끈다. | No |
/open <player> | /open AzureDiamond | 다른 유저의 인벤토르를 연다. | Yes |
/o <player> | /o AzureDiamond | /open 과 같다. | Yes |
/players [online/o/count/c] | /players | 게임 안의 유저 목록을 표시한다. | No |
/promote <player> | /promote AzureDiamond | 지정 유저에게 호스트 권한을 부여한다. | Yes |
/purge <player> | /purge Cthon98 | 지정 유저가 채팅한 내용을 채팅 기록에서 삭제한다. | Yes |
/reply <message> | /reply oh, really? | 귓속말이 오면 대답한다. | No |
/r <message> | /r oh, really? | /reply 와 같다. | No |
/server-save | /server-save | 멀티플레이 게임을 서버에 저장한다. | Yes |
/shout <message> | /shout Hello world! | 모든 유저에게 메시지를 보낸다. | No |
/s <message> | /s Hello world! | /shout 와 같다. | No |
/swap-players <player> [player] | /swap-players AzureDiamond | 입력한 유저와 위치를 바꾼다. 두 유저를 입력하면 두 유저의 위치가 서로 바뀐다. | Yes |
/unignore <player> | /unignore Cthon98 | 지정 유저의 채팅무시를 해제한다. | No |
/unmute <player> | /unmute Cthon98 | 지정 유저의 채팅금지를 해제한다. | Yes |
/whisper <player> <message> | /whisper AzureDiamond thats what I see | 지정 유저에게 귓속말을 보낸다. | No |
/w <player> <message> | /w AzureDiamond thats what I see | /whisper 와 같다. | No |
/whitelist <add/remove/get/clear> [player] | /whitelist get | 귓속말 목록에 지정 유저를 더하거나 뺀다. | No |
스크립트 및 치트 커맨드
커맨드 | 설명 |
---|---|
/c <command> | 치트 실행. |
/command <command> | 치트 실행. |
/measured-command <command> | 치트를 실행하고, 실행에 걸리는 시간을 표시. |
/silent-command <command> | 콘솔에 메시지 없이 치트 실행. |
치트를 사용하면 해당 게임에서는 업적을 달성할 수 없게 된다.
기본 스크립트
계산기
/c game.player.print(1234*5678)
빠른 채굴속도
/c game.player.force.manual_mining_speed_modifier=1000
빠른 제작속도
/c game.player.force.manual_crafting_speed_modifier=1000
모든 연구 활성화
/c game.player.force.research_all_technologies()
모든 연구 초기화
제작 가능한 아이템도 초기화 된다. (게임 시작 상태)
/c for _, tech in pairs(game.player.force.technologies) do
tech.researched=false
game.player.force.set_saved_technology_progress(tech, 0)
end
수치 초기화
킬 수, 생산 및 제작 수 등, 모든 수치를 초기화 한다.
/c game.player.force.reset()
줌 거리 설정
줌 배율을 설정한다. 배율이 너무 낮으면 마우스가 안먹는다.
/c game.player.zoom=0.1
인벤토리 조작 스크립트
자원 채워넣기
기존에 자원이 있던 위치에 마우스를 위치하고 명령어를 입력하면 해당 수치만큼 자원바뀐다. 자원이 없는 곳에 생성은 안되며, 자원이 더해지는 것이 아닌 입력한 수치로 바뀐다.
/c game.player.selected.amount=7500
인벤토리에 아이템 추가
철판(iron-plate) 대신 원하는 다른 내부 이름 과 갯수를 입력하면 된다.
/c game.player.insert{name="iron-plate", count=100}
치트모드
모든 아이템을 무료로, 즉시 만들 수 있다.
/c game.player.cheat_mode=true
맵 관련 스크립트
플레이어 주변 밝히기
플레이어의 시야를 넓힌다
/c local radius=150
game.player.force.chart(game.player.surface, {{game.player.position.x-radius, game.player.position.y-radius}, {game.player.position.x+radius, game.player.position.y+radius}})
시작지점을 중심으로 지정 범위만큼 밝힌다
/c game.forces.player.chart(game.player.surface, {{x = -2000, y = -2000}, {x = 2000, y = 2000}})
밝혀진 맵이 넓어질수록 세이브 파일의 용량이 커진다.
시간 변화 옵션 끄기
낮으로 고정한다.
/c game.player.surface.always_day=true
게임 속도 조절
1이 기본이며 최소 0.01 이다.
/c game.speed=X
마라톤 / 기본 게임 설정
기본 게임에서 마라톤 모드로 바꾼다.
/c game.difficulty_settings.recipe_difficulty=1
game.difficulty_settings.technology_difficulty=1
game.difficulty_settings.technology_price_multiplier=4
기본 게임으로 바꾼다.
/c game.difficulty_settings.recipe_difficulty=0
game.difficulty_settings.technology_difficulty=0
game.difficulty_settings.technology_price_multiplier=1
시간 고정
낮시간으로 고정된다.
/c game.player.surface.freeze_daytime=true
공해 제거
/c game.player.surface.clear_pollution()
공해 추가
/c game.player.surface.pollute(game.player.position, 1000000)
내 건물에 내 공격 무효
수류탄이나 미사일 등으로 공격할 때, 내 공격으로 인해 내 건물이 피해를 입지 않는다.
/c game.player.force.friendly_fire = false
새로운 자원타일 깔기
물이 아닌 빈 지형 위에 11×11 사이즈의 새 자원을 만든다. 정사각형으로 생성되며, 중심에서 멀어질수록 자원 양이 적어진다. 아래 기본으로 주어진 커맨드로 생성 시 채집가능한 총 자원량은 2500-3000 이다.
넓게 많들고 싶으면 "local size = 5" 의 숫자를 높이면 된다. 바닐라 자원 크기도 제일 커봐야 30정도 이다.
자원량을 수정하고 싶으면"local density = 10" 의 숫자를 높이면 된다. 매우 풍부는 100 내외이다.
자원 종류는 맨 아랫줄(end 빼고) "stone" 을 철광석 "iron-ore", 구리광석"copper-ore", 석탄 "coal", 우라늄 "uranium-ore" 으로 바꾸면 된다.
/c local surface=game.player.surface
local ore=nil
local size=5
local density=10
for y=-size, size do
for x=-size, size do
a=(size+1-math.abs(x))*10
b=(size+1-math.abs(y))*10
if a<b then
ore=math.random(a*density-a*(density-8), a*density+a*(density-8))
end
if b<a then
ore=math.random(b*density-b*(density-8), b*density+b*(density-8))
end
if surface.get_tile(game.player.position.x+x, game.player.position.y+y).collides_with("ground-tile") then
surface.create_entity({name="stone", amount=ore, position={game.player.position.x+x, game.player.position.y+y}})
end
end
end
새로운 원유 타일 깔기
3 x 3 사이즈로 9개의 원유타일이 생성된다. 매장량 변경은 amount=50000 부분의 숫자를 수정하면 된다.
/c for y=0,2 do
for x=0,2 do
game.player.surface.create_entity({name="crude-oil", amount=50000, position={game.player.position.x+x*7-7, game.player.position.y+y*7-7}})
end
end
사각형이 아닌 무작위 위치로 깔고 싶다면:
/c local position=nil
for i=1,9 do
position=game.player.surface.find_non_colliding_position("crude-oil", game.player.position, 0, i/2+1.5)
if position then
game.player.surface.create_entity({name="crude-oil", amount=50000, position=position})
end
end
숫자 세기
단어가 포함된 모든 아이템의 갯수를 세서 보여준다 예를 들어, belt 를 넣으면 일반 운송벨트 뿐만 아니라 빠른 운송벨트, 고속 운송벨트를 모두 센다. Counts all entities whose name includes the string in local entity.
/c local entity="belt"
local surface=game.player.surface
local count=0
for key, ent in pairs(surface.find_entities_filtered({force=game.player.force})) do
if string.find(ent.name,entity) then
count=count+1
end
end
game.player.print(count)
적/진화 스크립트
진화 수치 설정
진화 수치를 0(새 게임)에서 1사이의 숫자를 넣어 설정한다.
/c game.forces["enemy"].evolution_factor=X
진화 수치 증감
/c game.map_settings.enemy_evolution.time_factor=0
/c game.map_settings.enemy_evolution.pollution_factor=game.map_settings.enemy_evolution.pollution_factor*2
첫번째 커맨드는 시간에 따른 진화수치 증가 옵션을 끈다. 두번째 커맨드에서 숫자 2는 공해요소를 2배로 만든다는 뜻이다. 수치를 조정하여 늘리거나 줄일 수 있다.
모든 몬스터 죽이기
맵에서 밝혀진 부분에 보이는 모든 몬스터를 죽인다. 밝혀지지 않은 부분은 죽이지 못한다.
/c local surface=game.player.surface
for key, entity in pairs(surface.find_entities_filtered({force="enemy"})) do
entity.destroy()
end
평화모드 켜고 끄기
true 로 켜고 false 로 끈다.
/c game.player.surface.peaceful_mode = true
바이터 확장 켜고 끄기
true 로 켜고 false 로 끈다.
/c game.map_settings.enemy_expansion.enabled = true
플레이어 캐릭터 스크립트
플레이어 위치 보기
현재 플레이어의 좌표를 출력한다.
/c game.player.print(game.player.position.x .. ", " .. game.player.position.y)
플레이어 텔레포트
/c game.player.teleport({X, Y})
0, 0을 넣으면 시작지점으로 이동한다.
신 모드 활성화
캐릭터를 조종하지 않고 자유로운 시점 이동이 가능하다
/c game.player.character=nil
현재 시점에 조종 가능한 새로운 캐릭터를 생성한다.
/c game.player.create_character()
연구 스크립트
빠른 연구 활성화
/c game.player.force.laboratory_speed_modifier=1
숫자에 따라 배로 늘어난다. (2=두 배, 3=세 배)
모든 연구 끝내기
/c for name,technology in pairs(game.player.force.technologies) do technology.researched=technology.enabled end