Enhanced Companion Drones with Bodyguard behavior mode. Drones prioritize following and protecting the player. Everything is controlled from one in-game panel: attack/construction/mining modes, behaviour mode, speed, follow distance, threat radius and the mining zone - no console commands needed. Rocket-based area combat. Based on Companion Drones 2.0 by MrJakobLaich.
Mods introducing new content into the game.
Version: 2.2.0
Date: 2026-09-07
[REBUILD - CODEBASE MOI]
Tai xay dung toan bo tren codebase "companion-drones-gadgetroch" fork 3.6.2
(Factorio 2.1) - gon, on dinh hon, va da duoc fix day du cac loi 2.x. Giu
nguyen tinh nang cot loi cua bodyguard (khai thac + bang dieu khien) va bo
sung nhieu tinh nang moi.
Tinh nang ke thua tu codebase gadgetroch fork:
- Loi AI escort/xay dung/chien dau on dinh (chong giat, chong mat drone)
- Vu khi laser plasma ban theo lot, so dan nang cap theo research (challenge mode)
- /companion command: nhan drone khi vao server giua chung
- Progression challenge mode (0/1/2/3) qua "set mode"
Tinh nang bodyguard giu nguyen:
- Che do Khai thac (ALT+M / nut shortcut / nut trong bang dieu khien): neo vung
tai cho dung (vong tron xanh), tu dong dao quang/go/da/ca, item vao thang
inventory nguoi choi, tu dung khi co dich hoac roi vung qua xa
- Bang dieu khien Companion hop nhat (nut drone xanh hoac /companion_config):
3 nut che do, slider toc do, thong so khai thac, checkbox loai tai nguyen,
Reset/Reschedule
- Remote API cong khai: "bodyguard-companion-api" (get_companion_entities),
"bodyguard-companion-speed"
Moi trong 2.2.0 (so voi 2.1.1 tren mod portal):
- Vu khi SMG: sung dan vat ly ban lien thanh (tam 18, cooldown 0.1s, sat
thuong 20x1.6), am thanh sung + vo dan - chon laser/smg trong Mod settings
(mac dinh smg); thong so phong theo mod smg-equipment cua RedRafe (GPLv3)
- Grid thiet bi 10x10 (100 o, gap 5 lan cu) - tu do lap nhieu shield/reactor/
roboport/vu khi, co the tron ca laser + SMG
- Setting "Drone Max Health" (mac dinh 1000, chinh 250-10000) thay mau cung 250
- Tram robot MK2 vung 128x128 (69 robot, 4 sac), MK3 vung 256x256 (100 robot)
- Fix loi Factorio 2.x: vong khai thac khong bien mat khi tat (draw_circle tra
ve LuaRenderObject, khong tra ID nhu pre-2.0) + don sach vong mo coi trong
save cu khi load ban moi
- Fix can_attack luon false (so sanh equipment.type voi ten) - drone gio chu
dong di san muc tieu
- Fix crash 2.1: prototype.max_health -> get_max_health(), spill_item_stack
dang bang
- Khong con popup "MAJOR MOD UPDATE DETECTED!" (go bo co che migration di san)
QUAN TRONG:
- KHONG tuong thich save cua ban 2.x (he prototype doi theo codebase moi).
Can tao save MOI.
- Hinh anh drone/nut bam dung bo sprite cua codebase gadgetroch fork.
CAC BAN LOCAL 2.1.2 -> 2.2.1 (codebase cu) KHONG tung phat hanh tren mod portal - da duoc thay the hoan toan boi ban rebuild 2.2.0 nay. Lich su phat hanh chinh thuc duoi day bat dau tu 2.1.1 (ban cuoi cung tren mod portal truoc khi rebuild).
Version: 2.1.1
Date: 2026-09-03
Tuong thich Factorio 2.1:
- Da ra soat toan bo Lua API/prototype ma mod su dung (autopilot_destination,
character.orientation/walking_state, active-defense-equipment, TriggerItem area/
direct, storage, settings) - khong co thay doi pha vo tuong thich nao anh huong.
- Nang factorio_version trong info.json len "2.1".
- Rocket cua companion dung them field moi "target_enemies" cua AreaTriggerItem
(Factorio 2.1+) de loc ro rang chi nham entity phe dich ngay o tang engine.
[QUAN TRONG] Sua loi mat du lieu companion sau khi load save:
- script/companion.lua tung khai bao "local storage = nil" o dau file, vo tinh che
khuat (shadow) bien "storage" that cua engine (bien duoc Factorio tu dong luu vao
file save). Code sau do tu tao 1 bang "global" rieng (bien toan cuc THUONG, KHONG
duoc engine luu) va gan storage = global - khien toan bo du lieu companion (danh
sach drone, trang thai mining, trang thai sua chua...) chi song trong bo nho phien
choi hien tai, khong bao gio thuc su duoc luu.
- Day la nguyen nhan goc re that su cua loi "drone dung im sau khi load save, phai cat
vao kho roi trien khai lai moi chay".
- Da xoa bo shadow "local storage", chuyen toan bo ~170 cho dung "global.xxx" sang
dung dung "storage.xxx" - bien duoc engine luu that.
- LUU Y: cac save tao TRUOC ban va nay van co the mat du lieu companion 1 lan cuoi khi
load lai; sau lan do hay cat drone vao kho va trien khai lai 1 lan, tu do se luu dung.
Bang dieu khien hop nhat (GUI moi):
- Gom toan bo dieu khien cua mod vao MOT bang duy nhat, mo bang icon drone mau xanh
tren thanh shortcut hoac lenh /companion_config. Ba icon rieng le cu (tan cong /
xay dung / khai thac) da duoc dat hidden = true nen khong con hien tren thanh
shortcut nua; prototype van giu lai vi trang thai bat/tat cua 3 che do dang duoc
luu trong do, va cac phim tat (ke ca ALT+M cho khai thac) van hoat dong binh thuong.
- Sua loi ten nut hien thanh 'Unknown key: "companion-attack-toggle"': prototype khai
bao localised_name = {"companion-attack-toggle"} nen Factorio tra key o cap cao nhat
cua file locale, trong khi key that nam trong section [shortcut-name]. Da bo dong
localised_name de Factorio tu tra cuu "shortcut-name.<ten>" nhu mac dinh.
- Noi dung bang: 3 nut icon che do (bat/tat doc lap), drop-down hanh vi (Bao ve / Can
bang / Cong nhan), cac thanh truot ap dung ngay (he so toc do, khoang cach di theo,
ban kinh quet de doa) va o "bat buoc ho tong", phan Khai thac (khoang cach toi thieu/
toi da, ban kinh khu, goc, 4 loai tai nguyen) chi hien khi bat che do khai thac,
dong trang thai dem companion dang hoat dong, va 2 nut cong cu Reset / Sap xep lai.
- Cac gia tri ghi thang vao Mod settings rieng cua nguoi choi nen co hieu luc ngay va
luon khop voi Settings > Mod settings.
- Bo cuc theo chuan Factorio: titlebar keo tha duoc + nut X, khung noi dung co vung
cuon, cac section ngan cach bang duong ke, nut Dong co dinh o chan bang.
- Moi nut/thanh truot mang "tags" mo ta no dieu khien cai gi, va moi handler deu loc
theo cay cha nen mod khong bao gio an nham su kien GUI cua mod khac trung ten.
Sua crash va loi nghiem trong:
- [QUAN TRONG] Sua loi lam HONG SAVE khi cai chung voi mod cung dong ho:
"An interface already exists under with name: companion_speed". Mod nay la ban
fork cua Companion Drones nen dung trung ten remote interface (companion_api,
companion_speed, companion_remote_for_jetpack) voi mod goc va cac ban fork khac;
remote.add_interface khong cho trung ten nen mod nao nap sau se bao loi va save
khong mo duoc. Nay: (1) mod luon dang ky ten rieng "bodyguard-companion-*" va chi
goi ten rieng do nen luon dung dung interface cua chinh no; (2) cac ten cu chi
dang ky khi con trong, nho vay khong con crash va cac mod khac (vi du jetpack)
van goi duoc ten cu.
- [GOC RE] Sua loi "bam nut trong GUI khong co phan ung gi ca": bang lib.events duoc
tao o giua companion.lua trong khi cac handler GUI dinh nghia o cuoi file, nen luc
tao bang chung van con nil -> khong handler nao duoc dang ky -> moi nut, thanh truot
va nut dong deu chet. Nay handler duoc gan vao lib.events sau khi da dinh nghia.
- Sua crash khi mo bang: dat ten element la "value" trung voi thuoc tinh co san cua
LuaGuiElement. Da doi ten va ra soat ca 35 ten element, khong con ten nao trung API.
- Sua crash "LuaEntity::active is read only" khi tao sticker toc do.
- Sua crash "drag_target can only be a frame in player.gui.screen" o bang khai thac.
- Sua crash "Unknown sprite utility/close_white" - Factorio 2.0 doi ten thanh
"utility/close".
- Sua crash "LuaEntity::minable is read only" khi vao save sau luc doi phien ban mod:
tu Factorio 2.0, LuaEntity.minable la chi doc (gia tri doc ra duoc tinh them dieu
kien nhu xe dang co nguoi lai), thuoc tinh ghi duoc la "minable_flag". Da sua ca 2
cho ghi sai: khi khoi phuc companion luc on_configuration_changed, va khi drone
sinh ra robot xay dung (cho thu hai chua kip crash nhung chac chan se crash).
- Sua file sprites/drone-mining-shortcut.png von la chuoi base64 chu khong phai anh
PNG that nen Factorio khong doc duoc; da giai ma lai thanh PNG 32x32 hop le.
Da go bo:
- Bang GUI rieng cua che do khai thac (bi lap tieu de 2 lan) - toan bo chuc nang da
chuyen vao bang dieu khien hop nhat.
- Thanh truot "So dan moi lan tan cong" trong GUI: khong co tac dung that vi ham
attack() luon ban dung 1 rocket.
- Thanh truot "Sat thuong moi lan trung" khoi GUI: trung lap voi setting da co san
trong Mod settings, gio chi con 1 noi duy nhat de chinh.
- 4 trang bi khong the lay duoc trong game: Lo phan ung MK2/MK3 va He thong phong thu
MK2/MK3 (co cong thuc nhung khong cong nghe nao mo khoa, cung khong nam trong cay
nang cap). Da go ca prototype, cong thuc va key locale.
- Setting "companion-debug-repair" vi khong dong code nao doc no.
Thong bao debug chi hien khi tu bat:
- Setting cu "companion-debug-warnings" von mac dinh BAT nen ai cung thay cac dong ky
thuat. Da thay bang "companion-debug-messages" mac dinh TAT.
- Gom moi thong bao ky thuat vao mot cong duy nhat; chi in khi bat cong tac toan game
hoac setting rieng cua nguoi choi (ca hai mac dinh TAT).
- Nut "Reset companion" khong con do dong chan doan ky thuat ra chat, va bao ket qua
rieng cho nguoi bam thay vi broadcast cho ca server.
- Lenh console /debug_companion van in day du nhu cu.
- Thong bao "quan trong" (bat/tat che do, reset xong) di qua cong rieng, mac dinh van
hien nhung tat duoc.
Khac:
- Don 15 file .lua khong con duoc nap ra khoi ban phat hanh (~269 KB), trong do co
script/companion_settings.lua - file nay chua remote.add_interface trung ten voi
companion.lua that, chi can ai do vo tinh require no la mod tu crash chinh minh.
Cac file duoc chuyen vao _archive/dead-code/ (khong nam trong ban zip) chu khong
xoa han, can dung lai thi copy nguoc ve.
- Them bo chay thu GUI ngoai game o _archive/gui-test/ (khong nam trong ban phat hanh)
de bat truoc cac loi ma kiem tra cu phap khong thay duoc: ten element trung API,
sprite chua khai bao, style sai, thieu key locale, index nil trong handler.
- Viet lai info.md cho khop phien ban: huong dan chi tiet cach dung bang dieu khien,
va mo ta dung thuc te ve trang bi (do che tao duoc / do drone co san / cay nang cap
chi co trong Che do thu thach).
Version: 2.0.4
Date: 2026-08-26
Features:
- [COMBAT OVERHAUL] Rocket AoE thay thế đạn súng/plasma cũ:
- Thêm đạn "companion-rocket" nổ diện rộng (action kiểu "area" của engine) - gây sát
thương cho MỌI kẻ địch trong bán kÃnh nổ thay vì chỉ 1 mục tiêu duy nhất.
- Bán kÃnh nổ chỉnh được qua setting khởi động "companion-rocket-radius" (mặc định 5).
- Bắn tá»± do, không tốn đạn tháºt.
- Hiệu ứng hình ảnh rocket phóng to gấp 4 lần, quầng sáng cam ấm và khói dà y hơn.
- [ESCORT AI] Cải thiện logic bám theo ngưá»i chÆ¡i:
- TÃnh vị trà escort dá»± Ä‘oán dá»±a trên hướng nhìn/di chuyển tháºt (character.orientation)
thay vì ước lượng váºn tốc theo frame-delta - hết giáºt/lắc khi di chuyển.
- Drone chạy trước theo hướng di chuyển cá»§a ngưá»i chÆ¡i để chá»§ động quét/diệt địch trên
đưá»ng Ä‘i thay vì chỉ phản ứng khi địch đã áp sát.
- attack_enemies_near_player() giá» tấn công ÄA MỤC TIÊU (quét quanh cả ngưá»i chÆ¡i vÃ
drone), không chỉ khoá và o 1 kẻ địch gần nhất như trước.
Bugfixes:
- Sá»a lá»—i drone đứng im sau khi load save (phải cất và o kho rồi triển khai lại má»›i chạy):
force_escort_update() giá» tá»± theo dõi Ä‘Ãch đã ra lệnh thay vì Ä‘á»c lại trạng thái
autopilot_destination không đáng tin cáºy từ engine.
- Sá»a lá»—i hardcode game.players[1] trong calculate_escort_position (sai ngưá»i chÆ¡i trong
multiplayer khi drone ở quá gần vị trà escort).
- Bá» lệnh force_escort_update() bị gá»i trùng lặp (vừa trong Companion:update() vừa trong
vòng lặp dispatch má»—i 2 tick) - nguyên nhân chÃnh gây giáºt khi di chuyển.
Version: 2.0.3
Date: 2025-10-26
Bugfixes:
- Fixed duplicate key errors in locale files causing mod loading failures:
- Removed duplicate "mod-setting-description" entries in Vietnamese locale
- Removed duplicate "companion-shield-mk3" item-name entries
- Merged duplicate sections in English locale files
- Resolved robot speed validation error ("max_speed must be >= speed"):
- Completely redefined companion-construction-robot prototype from scratch to avoid inheritance issues
- Added defensive speed validation in data-final-fixes.lua with logging
- Added optional dependencies for Combat Mechanics Overhaul and Robot World Continued to ensure proper load ordering
- Improved mod compatibility and stability
Version: 2.0.1
Date: 2025-09-18
Features:
- [ANTI-SPAM ULTIMATE] Loại bá» hoà n toà n má»i thông báo debug gây spam:
- ⌠Äã tắt "DBG-MINE-MOVE" (thông báo di chuyển má»—i giây)
- ⌠Äã tắt "DBG-MINE-ITEM-ADDED" (thông báo nhặt item má»—i lần)
- ⌠Äã tắt "DBG-MINE-ITEM-SPILLED" (thông báo rÆ¡i item)
- ⌠Äã tắt "DBG-MINE-COMBAT" (thông báo phát hiện kẻ địch)
- ⌠Äã tắt "DBG-MINE-FOLLOW" (thông báo Ä‘i theo)
- ⌠Äã tắt "DBG-MINE-IDLE" (thông báo rảnh rá»—i)
- [RESULT] Chat hoà n toà n sạch sẽ - ZERO thông báo spam!
- [MAINTAINED] Tất cả tÃnh năng AI và bảo vệ vẫn hoạt động bình thưá»ng
- [EXPERIENCE] Trải nghiệm chÆ¡i game yên tÄ©nh và táºp trung
Version: 1.5.3
Date: 2025-09-18
Features:
- [FIXED] Spam Notification: Fixed [INFO-MINE-PAUSE-01] spam - now shows only ONCE when leaving mining zone
- [NEW] Debug Message Control: Added setting to enable/disable debug messages (default: OFF)
- "companion-show-debug-messages": Controls mining pause/resume notifications
- "companion-show-important-messages": Controls important alerts (default: ON)
- [IMPROVED] Enhanced Following Priority: Even stronger priority for player protection when not mining
- Reduced following distance to 3 tiles (from 4) for maximum protection
- FORCE STOP all other activities (construction, mining) when protection mode active
- More precise positioning (1.5 tile threshold instead of 2)
- Automatic clearing of mining busy flags when entering protection mode
- [IMPROVED] Smart Notification System:
- Mining pause/resume messages now respect debug settings
- Only show protection alerts when important messages enabled
- Zero spam experience with proper flag management
Version: 1.5.2
Date: 2024-05-22
Features:
- [NEW] Chức Năng Khai Thác (Mining):
- Thêm chế độ khai thác hoà n toà n má»›i, cho phép drone tá»± động khai thác tà i nguyên (quặng, cây, đá, cá) trong má»™t khu vá»±c được chỉ định (phÃm tắt ALT+M).
- Giao diện ngưá»i dùng (GUI) má»›i để báºt/tắt và cấu hình chi tiết chế độ khai thác.
- Hệ thống "neo" (Anchor) cho phép ngưá»i chÆ¡i thiết láºp má»™t vùng khai thác cố định.
- [IMPROVED] AI Chiến Äấu Nâng Cao (ADC Kiting):
- Äại tu hoà n toà n hệ thống chiến đấu, drone giỠđây sẽ "câu kéo" (kiting) như má»™t ADC thá»±c thụ.
- Né Tránh Thông Minh: Drone tá»± động di chuyển theo đưá»ng cong (lượn sóng) để né đạn từ kẻ địch.
- Giữ Khoảng Cách Äá»™ng: Tá»± động lùi lại khi kẻ địch áp sát, khoảng cách lùi lại tăng lên khi mức độ nguy hiểm cao.
- Hà nh Vi Theo Máu: Trở nên cẩn tháºn hÆ¡n, giữ khoảng cách xa hÆ¡n khi máu thấp.
- Tự động phân tán đội hình để tránh sát thương diện rộng và tối ưu góc bắn.
- [IMPROVED] Hiệu Ứng Hình Ảnh & Âm Thanh (Visual & Audio Overhaul):
- Chế Äá»™ Cuồng Ná»™ (Rage Mode): Hiệu ứng kÃch hoạt bùng nổ vá»›i vệt lá»a, tia Ä‘iện và rung mà n hình.
- Hiệu Ứng Chiến Äấu: Nâng cấp đạn thà nh đạn plasma vá»›i vệt sáng và hiệu ứng nổ đẹp mắt khi va chạm.
- Hiệu Ứng Khai Thác Chuyên Biệt: Thêm hiệu ứng và âm thanh riêng cho từng loại tà i nguyên (khói Ä‘en cho than, phát sáng cho uranium, gá»— vụn cho cây, nước bắn cho cá, tia lá»a cho quặng).
Bugfixes:
- Sá»a Lá»—i Crash:
- Äã khắc phục hoà n toà n lá»—i crash `Oriented explosion ... needs a target` khi drone tấn công.
- Äã khắc phục lá»—i crash `attempt to index field 'set-challenge-mode'` khi tải game.
- Sá»a nhiá»u lá»—i cú pháp (`end` expected/unexpected) trong quá trình phát triển.
- Cải Thiện Logic AI:
- Giải quyết triệt để xung đột logic khiến drone "lưỡng lá»±" giữa việc Ä‘i theo ngưá»i chÆ¡i và khai thác. Drone giỠđây hoạt động dứt khoát và hiệu quả hÆ¡n.
- Tối ưu hóa hệ thống phân cấp ưu tiên: Bảo vệ > Äi theo > Khai thác/Xây dá»±ng.
- Chất Lượng Trải Nghiệm:
- Loại bá» tất cả các thông báo gỡ lá»—i (debug) và thông tin (info) không cần thiết khá»i cá»a sổ chat.
- Tái cấu trúc và dá»n dẹp mã nguồn, loại bá» các định nghÄ©a prototype trùng lặp.
Changes & Balancing:
- ÄÆ¡n giản hóa cây công nghệ và giảm chi phà công thức chế tạo drone và trang bị, giúp ngưá»i chÆ¡i tiếp cáºn dá»… dà ng hÆ¡n.
- Thêm bản địa hóa tiếng Việt (Vietnamese localization) cho các cà i đặt và giao diện.
Info:
- Bản cáºp nháºt nà y bổ sung chức năng khai thác và đại tu hoà n toà n hệ thống chiến đấu, mang lại trải nghiệm má»›i mẻ và thông minh hÆ¡n.
---
Version: 1.0.0
Date: 2025-09-10
Features:
- Initial release of Bodyguard Companion Drones
- Added 3 behavior modes: Bodyguard, Balanced, Worker
- Enhanced combat system with bullet projectiles instead of laser beams
- Added lifesteal mechanics - drones heal when dealing damage
- Defensive positioning: drones position between player and enemies in Bodyguard mode
Bugfixes:
- Fixed flying-text entity creation error by using player.create_local_flying_text
- Fixed syntax errors in companion.lua
Info:
- Based on Companion Drones for 2.0 (v3.0.39) by MrJakobLaich