전편 https://arca.live/b/fallout76/10246554?p=1 - Fo76 설치 및 기본 사용법


경고:

여기서 설명하는 모든내용에 대해서 직접사용시에 베데스다에서 충분히 감지할수 있는 능력이 충분히 있음

과도한 게임수정에 대해 모든 책임은 사용하는 사용자에게 있다는 것을 알아두길 바람




이 게임은 싱글게임기반에

문제가 많은 그 싱글게임 엔진을 가져다가 쓰고있어


말 그대로 싱글겜 위에 멀티를 강제로 용접시킨 형태를 하고있는데


누군가가 이런 생각을 했어


'싱글겜에서 esm에 값을 바꾸면 에딧팅이 되는데, 이겜도 esm 값을 바꾸면 적용되는거 아니야?'



ㅇㅇ 적용되어버림 아무 이상도 없이

심지어 이 겜은 글로벌값 즉 서버에서 관장하는 값도 웨랜이후 패치로 인스턴트셀을 구축하면서 도입하기 시작했고

이러한 에딧팅은 게임이 출시된 이후부터 지금까지 근본적인 원인이 해결 안되서 막히고 있지 않아


물론 베좆에서도 막을려고 노력을 하긴 했는데

작년 서바섭에서 치터들이 무기 값을 바꾸고 다니니 단순히 CRC32 값을 읽고

체킹 통과시에만 게임이 실행될수 있게 한것뿐이야


https://12bme.tistory.com/395 (CRC32에 대한 설명)


그리고 데미지값을 서버에서 관장하게 바꾸면서 데미지버그, 고무줄 체력버그, 체잰버그, 무적버그 등등등 버그들이 펑펑펑 터졌지

정작 치터들은 다른 우회값을 찾아서 우회해버리고


임시로 적용시키고 나중에 막으려고 하다가 아에 까먹어버린건지 무시하고 안된다고 귀막고 눈막고 아웅하고 있는건진 모르겠는데

베좆에서 고칠려는 의지가 없는건 분명해보여






전편에서는 기본적인 설치 및 사용법을 배웠고


이번편에서는 응용해서 게임에 변화를 줄수 있는 방법을 연구해 볼꺼야


글의 첫 문단에서 설명했듯이


모든 글리칭을 사용함으로써 발생하는 밴, 잘못된 에딧으로 인한 영구 인밴깨짐, 복구 불가능한 영구 무한로딩, 캐릭터삭제됨, 캠프 유령예산 같은 것은 모두 사용자 책임이고

다른 유저들을 괴롭히는것에 사용하는것은 권장하지 않아

PVP에서 쳐발리고 에딧켜고 와서 싸우는거 완전 짱깨새끼들이나 할만한 발상 아니냐? ㅋㅋㅋ



시작하면서

간단하게 탄약을 판매가능하게 하는것으로 예시를 들어볼께

나머지는 전부 응용해서 가능할꺼야



우리는 fo76edit을 통해 0001f278의 formid가 5.56mm탄을 가진다는것을 알수가 있어

그리고 에딧을 통해서 해당 formid가 가진 속성을 알수있지


속성을 봤을때 왜 5.56mm를 상점에서 팔수없게 되어있는지 에딧을 통해서 보면

키워드에 UnsellableObject 키워드가 있기 때문이라는것을 알수가 있어


만약 우리가 '이것을 제거해버리면 판매가능해지지 않을까?' 라고 생각해볼수 있겠지


한번 해보자




esm 파일을 data폴더에서 복사해다가

바탕화면이나 어디 다른폴더로 이동시키고 핵스 에디터를 통해 열어보자 (https://mh-nexus.de/en/hxd/)




5.56MM의 EDID는 에딧을 통해 Ammo556인것을 알수 있는데

Ctrl+F로 Ammo556을 찾아 검색해보면 금방 찾을수 있을꺼야


그리고 옆에 문자열을 보고 에딧의 속성을 봐보면


각 키워드들이 (OBND, PTRN, FULL .... ) 해당 EDID 뒤에 나열된것을 볼수 있어


이 값들을 바꿔주는거야




아까 우리는 UnsellableObject 키워드를 한번 제거해보기로 했지?


핵스값을 쭉 내려보다 키워드 (KWDA)를 보면 그 뒤에 나오는 VCRY 사이에 깨진 문자열로 값이 있는것이 보일꺼야




긁어보면

E8 4A 0F 00 DE 96 38 00 27 43 3D 인데


E8 4A 0F /00/ DE 96 38 /00/ 27 43 3D 이렇게 00값을 두고 3등분 된 값이라는것이 파악 가능해


그러면



이 값이 순서대로 해당 키워드에 대입된다는것을 알수 있지


우리는 판매불가능 키워드를 없애보기로 했으니 27 43 3D 값을 00 00 00 값으로 바꿔서 아에 지워버리자




이렇게 지워버린다음에 저장을 하고


아까 앞에서 CRC32 값을 말한것이 기억나지?

우리가 핵스에딧으로 복사된 esm의 값을 바꾼뒤 저장해버려서

파일의 CRC32값이 훼손되어버렸어


https://winutil1.tistory.com/4 (CRC32 확인프로그램)


https://github.com/rr-/CRC-manipulator (CRC32 바꾸는 프로그램)


이 2개를 이용해 data에 있는 원본 esm의 crc 32값을 따다가 새로 우리가 만든 esm에 붙여넣어보자







이제 패치가 완료되면


기존의 esm을 백업한뒤 신규로 만든 esm을 게임에 집어넣어서 과연 탄약이 판매가 될지 확인해 볼꺼야




병신겜답게 키워드 하나 제거했다고 판매가 되는것을 볼수 있어


이런식으로 에딧을 이용해서 싱글겜을 하는것마냥 다양한 모딩이 가능해






만약 위를 응용해서


'땜장이의 작업대에서 만드는 대량의 잡동사니 묶음을 BNAM FNAM을 변경해서 작업장의 바닥장식 탭으로 이동하면

도급업자 퍽을 받고 바닥장식에서 대량의 잡동사니를 뽑을수 있지 않을까?'


'아톰샵 의상들을 방어구 작업대에서 만들게 되어있는것도 바닥장식탭으로 이동시키면 아톰샵 의상을 바닥에 뽑을수 있지 않을까?'


'상인상자에 이름을 넣고 모델링을 다른것을 붙여넣는다면 상인 상자를 열어볼수 있지 않을까?'


'무기의 사거리 값을 다른무기에서 가져와서 바꾸는게 가능하지 않을까?'


등등등


일부 기능들은 서버에서 감지하고 막고 있는것들도 있고

일부 기능들은 여러번 보고가 들어갔는데도 그냥 방치하고 열어둔것들이 있어


많은 궁금점은 직접 해결해보길 바래


(20.12.09 글 이전 기준 아직도 먹힘)