Folder cần có: config.json (tùy chọn), 1 ảnh sprite .png/.jpg,
và 4 file .js chứa tên: weapon, ai/behavior,
skill, anim.
(self, ctx, api). Dùng api.drawLine/drawCircle/drawTriangleTip để vẽ. Trả về {tipX, tipY, hitRadius, damageOverride?} để engine tính va chạm gây damage (mặc định dùng Sát thương cơ bản; damageOverride ghi đè nếu cần). Trả về null nếu bóng không có đòn cận chiến.(self, enemy, api). Chỉnh self.vx / self.vy để điều khiển di chuyển.api.applyDamage(target, amount), api.heal(target, amount), api.now.api.spawnProjectile({vx, vy, damage, radius, color, lifespan, returnTo}) — phóng phi tiêu tầm xa (tối đa 1 cái đang bay/lần). returnTo:"owner" = boomerang bay về sớm; không set = tự bay về sau 3 lần nảy tường.
(self, api). Trả về {col, row} của frame sprite muốn hiển thị.