Bodyguard Companion Drones


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.

Content
8 days ago
2.0 - 2.1
881
Combat

Changelog

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