결론부터 말하자면

생산모듈 모드+우주선 타고다니기<<엄청 쉽게 성공함. 글 맨끝부분에 짧게 설명할거임

이온 엔진만 생산모듈 제외시키기<<실패함

이 글 내용의 대부분은 예외설정 하려고 시도하다가 실패한 것에 관한 것이다


사실 이 글 처음 쓸때까지만 해도 우주선 못탔는데

글 쓰다보니 엄청 간단한 방법이 하나 떠올라서 해봤더니 잘~됨

근데 여태껏 글 쓴게 아까우니 실패한거여도 그냥 글 올림


다들 우주시대 즐기고있고 우탐모 하는사람은 나밖에 없는거같아 약간 외롭지만?


아무튼 글 시작한다








제미나이한테 물어봤다

호환되지 않는 모드 추가/제외하거나 버전 호환 관련해서는 내 머리만으로도 가능했는데

특정 아이템만 예외설정하는 코드는..회로도 제대로 못다루는 내 머리로는 도저히 못짜겠어서 ㅋㅋ

근데 제미나이가 옛날버전 팩토리오 코드를 짜준건지 뭐 제대로 못짠건지 아무튼 잘 안됨



그래도 혹시 모딩 고수 있을지 모르니까

내가 아는 팩토리오 커뮤니티는 여기밖에 없어서 일단 내가 시도하고 고민했던 내용에 관해서 글써봄

에렌델이 금지해놓은 영역을 뚫으려고 시도하는거라 바람직하진 않지만 좀 도움을 받고싶음

엄청난 장문이 될 것 같은데 글 이해가 잘 안되면 그냥 도전하다 실패해서 일기쓰듯 푸념 늘어놓은거라고 생각해도됨



팩토리오 어느정도 깊게 파고든 사람이라면 다 알겠지만

팩토리오에는 아이템의 type(이하 타입)이 굉장히 많음

아이템 prototype name이랑 아이템 타입을 보는 방법은 아이템에 커서 올리고 컨트롤+쉬프트+F 누르면 그 구조물의 이름이랑 타입을 확인할 수 있음

아래는 내가 이것저것 확인해본 타입 목록임


furnace(용광로), assembling-machine(조립 기계), inserter(투입기), transport-belt(운송벨트), underground-belt(지하벨트), splitter(분배기), loader(적재기), pipe(파이프), pipe-to-ground(지하파이프), electric-pole(전신주), container(상자), resource(광석이나 원유, 이건 내가 설치한게 아니고 자연적으로 있는거지만 확인할 수 있더라), mining-drill(채굴기), offshore-pump(해안펌프), boiler(물로 증기 생산하는 건물), generator(증기로 전기 생산하는 건물), reactor(원자로), lab(연구소), roboport(로보포트), item(인벤토리 속 아이템, 건물이든 벨트든 조립기계든 걍 인벤토리에 있으면 item타입이다), recipe(제작법), blueprint(청사진), beacon(신호기)

등등..이거 말고도 엄청나게 많다



어느 정도 예상 가능하지?

inserter 타입의 아이템은 화력투입기, 투입기, 빠른투입기, 긴팔투입기, 묶음투입기 등이 있을거임

그리고 assembling-machine은 조립기계 뿐만 아니라 제작법을 설정할 수 있는 모든 건물들을 다 포함함

예를 들어 정유공장, 화학공장은 조립기계가 아니지만 제작법 설정해서 생산품을 만들어내는 건물이기 때문에 assembling-machine 타입에 해당한다

특이하게도, 모드로 추가되는 산업용광로는 용광로라서 furnace 타입일 것 같지만 제작법을 설정해서 제련하는 건물이라서 얄짤없이 assembling-machine 타입이다

furnace 타입은 제작법 선택이 없는 생산건물임




저 수많은 타입들 중에 모듈 슬롯이 있는 타입은 딱 5가지임

furnace, assembling-machine, beacon, lab, mining-drill 인데 일단 이렇다는 사실만 알아두자





서론이 길었다

내가 이 글을 쓴 이유는 우주 건물에 생산모듈을 박을 수 있게 해주는 생산모듈 모드를 사용하면서도, 우주선을 타고다닐 수 있게 하려다가 잘 안돼서임

왜냐하면 생산모듈 모드를 넣으면 이온 엔진이 격벽 판정이 아니게 돼버려서 무결성이 유효하지 않다고 뜨거든


내가 우탐모 1회차를 팩토리오 버전 1.1에서 했는데 이때도 난 생산모듈 모드를 썼었음

근데 그때는 이온엔진이 격벽으로 인식돼서 우주선도 잘만 타고다녔음

아마 팩토리오가 2.0으로 업데이트되고 에렌델도 2.0에 맞춰서 우탐모를 업데이트하는 과정에서 막힌것으로 보인다

생산모듈 모드는 여전히 업데이트 안돼서 그런걸수도 있고 아무튼


참고로 생산모듈 모드는 인게임에서 다운받을 수 없고(검색해도 안나옴) 직접 팩토리오 공홈 들어가서 검색해서 다운받아야 함

모드 이름이랑 적용법은 밑에서 설명할거임



내가 이전에 팩갤에 쓴 글을 보면 알겠지만

이온 엔진이 격벽으로 인식되지 않는 이유가

생산모듈 모드를 넣으면 이온엔진이 겉모습만 똑같지 전혀 다른 아이템으로 바뀌기 때문임



링크넣기 귀찮아서 스샷 추가해서 이전 글 내용 좀 더 보충해서 다시 설명함


이온엔진이 다른 아이템으로 바뀐다는게 무슨 말이냐면

생산모듈 모드를 넣지 않은 순정 상태일때는



보다시피 아이템창에 있을 때 prototype name이 "se-spaceship-ion-engine" 이고




실제로 설치했을 때에도 prototype name이 "se-spaceship-ion-engine" 으로 동일함

참고로 타입이 furnace임

제작법을 설정하지 않는 생산건물이라는 뜻인데..모듈 칸이 없네?




그리고 생산모듈 모드를 넣고 나면



아이템창에 있을 때는 prototype name이 "se-spaceship-ion-engine" 이지만




실제로 설치하면 prototype name이 "se-spaceship-ion-engine-spaced" 로 변경된 것을 확인할 수 있다

미니맵 아래 아이템 정보에서도

우주선 이온 엔진(우주)로 바뀌고 밑에 빨간 글씨로 설명이 추가됨

즉 생긴거만 똑같지 그냥 다른 아이템임

참고로 이온엔진 말고도 우주에 설치하는 모든 건물들이 다 저렇게 변한다

신호기든 방사선실험실이든 우주제조소든 다 아이템 뒤에 (우주)가 붙음


이걸 통해 알 수 있는 사실은

(우주)가 붙은 아이템은 생산모듈을 박을 수 있다는거임

근데 이 우주선 이온 엔진(우주) 아이템은 furnace 타입이지만 모듈 칸이 존재하지 않음에도 불구하고 우주에 설치하는 건물이라 그런지 뒤에 (우주)가 붙음


그래서 완전히 다른 아이템이라 우주선 무결성 검사에서 격벽으로 인식이 되지 않음


뭔말알? 생산모듈 모드를 빼면 이온엔진(se-spaceship-ion-engine)이 격벽 판정이라 우주선을 정상적으로 탈 수 있지만

생산모듈 모드를 넣으면 이온엔진(se-spaceship-ion-engine-spaced)이 격벽 판정이 아니게 되어 무결성 검사에서 유효하지 않다고 뜸

그렇다고 이온엔진 뒤쪽까지 우주선 벽으로 둘러싸면 무결성 검사는 유효하지만 속도가 아예 안나옴



자 여기까지가 이온 엔진의 격벽 판정이 바뀌는 이유에 대한 설명이었고



어쨌든 우주선을 탈려면 생산모듈 모드를 빼야되는 상황인데

내가 생산모듈 모드를 적용하면서도 저 바뀐 이온엔진이 격벽으로 인식되도록 모드를 건드리려고 도전했음 근데 실패함..




글 쓰는김에 내가 생산모듈 모드를 어떻게 적용했는지, 우탐모랑 호환 안되는 생산모듈 모드를 어떻게 강제로 적용했는지에 대해서도 설명하겠음



내가 사용한 생산모듈 모드는 UnlimitedProductivity_1.4.3임

1.1에서는 인게임 메인화면 모드 포털에서 다운받을 수 있었으나, 모더가 팩토리오를 접었는지 업데이트가 되질 않고 있음

그래서 팩토리오 2.0에서는 호환이 안됨

그래도 성능은 좋으니 이 모드를 먼저 호환되게 만들어야 함

성능이 좋아서 그런지 우탐모 제작자인 에렌델이 직접 이 모드를 못쓰게 막아놓음




먼저 우탐모랑 호환되게 만들기 위해서 space-exploration_0.7.39.zip 압축 풀면 info.json이 있을거임

이 파일을 건드려서 호환되지 않는 모드를 호환되게 만들거나, 필수 모드를 해제할 수도 있다



이걸 메모장으로 열어서 살짝 내리면

"! 로 시작하는 부분이 쫙 나올텐데

이게 에렌델이 막아놓은 모드들임 

좀 더 내리다 보면 "! UnlimitedProductivity" 가 나옴

저 UnlimitedProductivity 부분을 아무렇게나 변경하면 됨

난 그냥 Unlimited1Productivity 로 바꿈 중간에 1 넣은거임

뭐 삭제해도 되고 아무튼 UnlimitedProductivity 라는 단어만 아니게 만들면 됨

이런 식으로 우탐모 말고도 다른 모드 서로 호환 안되는것도 호환되게 만들 수 있다

또는, 필수 모드(ex 개같은 로봇충돌모드)를 해제할 수도 있는데 알아서 잘 해보시고




그럼 우탐모랑은 호환되게 만든거임


이제 팩토리오 2.0이랑 호환되게 만들고

이온 엔진을 생산모듈 적용 대상에서 예외로 설정해야 함<<이걸 실패한거임


우선 팩토리오랑 호환되게 만들어보자






UnlimitedProductivity_1.4.3.zip파일 뜯어보면 폴더 안에 파일 4개가 있음

info.json

control.lua

settings.lua

data-final-fixes.lua


info.json은 모드 호환 관련해서 내가 건드려야 할 파일이고

control.lua는 게임 도중에 실시간으로 발생하는 이벤트를 처리하는 스크립트

settings.lua는 모드 설정에서 체크박스나 수치조정을 정의하는 스크립트

data-final-fixes.lua는 기계에 생산모듈을 허용할지 말지 결정하는 스크립트


여기서 control.lua랑 settings.lua는 건드릴 필요가 없음

내가 건드릴 파일은 info.json과 data-final-fixes.lua 두개임


info.json은 너무 간단해서 스샷도 안찍고 걍 글로 설명함

"factorio_version": "1.1" 이 부분에서 1.1을 2.0으로 바꾸면 그냥 호환됨



난 평소에 여기까지만 하고 우탐모를 진행중이었는데

우주선 이온 엔진이 격벽으로 인식되지 않는 문제에 부딪혀서 이걸 뚫으려고 도전한거임



수정할 필요는 없지만 settings.lua를 열어봤음

settings.lua는 메인화면 모드 설정-시작에서 체크박스나 수치조정을 정의한다고 했음

천천히 내려보니까 furnace타입(제작법 선택이 없는 생산 건물)인 모든 아이템들에 생산모듈을 적용한다는 부분이 있음



그리고 내가 수정해야 할 lua는 data-final-fixes.lua임

visual studio code로 lua를 열어보니까 내용이 그리 길진 않음 90줄정도?


온통 영어라서 뭔말인지는 모르겠지만 아무튼 제미나이한테 스크립트 싹다 복사해서 알려주고 se-spaceship-ion-engine이랑 se-spaceship-ion-engine-spaced 두 아이템을 생산모듈 적용대상에서 예외설정 해달라고 했음

제미나이가 시킨 대로 코드 복사해서 해당부분에 붙여넣기하고 다시 압축해서 모드 폴더에 덮어쓰기했는데

..안됨

모드 적용실수한건 아님. 다른 우주건물들에 생산모듈 잘 박힘




그래서 내가 생각해본 해결법은 현재 3가지가 있음

1. 이온 엔진의 타입이 furnace니까 furnace 타입 아이템 전체에 생산모듈 모드가 적용되지 않게 하는것. 이건 스크립트 수정할 필요 없이 모드 설정에서 "용광로에 모든 모듈효과 적용" 체크 해제하면 됨

우주 건물 중에 furnace 타입과 비슷한 역할을 하는 열역학 실험실은 제작법을 설정하는 생산건물이라 assembling-machine 타입임

열역학 실험실 말고도 우주에 설치하는 모든 건물들이 싹다 assembling-machine 타입이다

그래서 furnace 타입 건물 중에서 모듈 슬롯이 존재하는 건물이 사실상 전기용광로밖에 없음

그리고 애초에 전기용광로는 생산모듈 모드를 넣지 않더라도 생산모듈을 박을 수 있음

이게 가장 간단한 해결방법. 이온엔진도 격벽으로 인식됨

현재 난 이 방법으로 우주선 타고다님


이게 글 쓰면서 settings.lua 확인하면서 떠오른 해결법인데 다행히 해결이 돼서 기분은 좋은데..

뭔가 코딩으로 간지나게 뚫고 싶었는데 그러지 못해서 약간 아쉽다 정도?


2. 이온엔진만 생산모듈 적용 안되게 하는거 재도전


3. 우탐모 스크립트에서 se-spaceship-ion-engine 격벽 판정 관련 코드를 찾아서 그걸 se-spaceship-ion-engine-spaced 에도 적용되게 코드를 추가하는것

이게 진짜 성공하면 도파민 터질거같은데 너무 귀찮아져서 나중에 진짜 심심할때 다시 도전해봄




살면서 코딩이라곤 대학교 때 파이썬이랑 C 찔끔 해본게 전부여서..그마저도 교양으로 듣고 제대로 공부 안해서 아예 코딩을 어케 해야할지 감도 안잡힘


이거 간지나게 뚫는거 도전해볼 팩붕이 있음?