Sonagod's Advanced Archery Combat System V1.0
A Complete Bow & Arrow Combat System — Plug & Play
Built by Battlecraft Studios | Made by Sonagod
Overview
A fully featured, multiplayer-ready bow and arrow combat system designed for medieval, fantasy, and survival games. Drop it into your game, configure through attributes — no scripting required. Includes two complete bow types (Longbow & Composite Bow), full animation rigs, hit detection, damage registration, ammo management, arrow pickup, reload stations, and a custom over-the-shoulder third-person camera with body rotation aiming.
Discord Support Server:
https://discord.gg/f2he5HpAE5
What's Included
Bow Weapons (2 Types)
- Longbow — Slow draw, high damage, long range precision
- Composite Bow — Fast draw, moderate damage, higher ammo capacity
- Both fully rigged with string/limb bone animations (draw, hold, release)
Animation Rigs
- R15 Human Rig with all bow animations pre-loaded (Draw, DrawLoop, Fire)
- Composite Bow Rig with bone-driven string animations (Draw, Loop, Release)
- Longbow Rig with bone-driven string animations (Draw, Loop, Release)
- 12 total animations included and ready to use
Combat System
- Client-predicted arrow physics with server-validated hit registration
- Accuracy-based spread system (longer draw = tighter spread)
- Headshot detection with 1.5x damage multiplier
- Shield blocking support — arrows blocked by shields deal no damage
- Close-range instant hit detection (within 12 studs)
- Arrow damage falloff based on draw accuracy (30%–100%)
- Anti-exploit: Server validates arrow origin, distance, and rider identity
Arrow System
- Physical arrow projectiles with white trail effects
- Arrows stick into characters and world geometry
- Arrow pickup system — retrieve fired arrows with proximity prompt and highlight
- Optimized global arrow tracking (single Heartbeat for all arrows, not per-arrow)
- Configurable arrow lifetime and despawn
Arrow Reload Stations
- Drop-in barrel model with proximity prompt
- Proximity highlight when player is nearby with bow equipped
- Fully restocks ammo on use with sound feedback
- Place as many stations as needed in the Arrow_Stations folder
Ammo & UI
- Per-bow ammo tracking with persistence across equip/unequip
- On-screen ammo counter (bottom-right HUD)
- Crosshair spread indicator bars that close in as you draw
- Color-coded accuracy feedback (white → yellow → green)
- Hit marker flash on successful hits
- Skull icon on kills
- Floating damage popup numbers
Camera System
- Custom over-the-shoulder third-person camera
- Body rotation follows mouse aim (head, waist, torso)
- Dynamic shoulder offset tightens during bow aiming
- Smooth zoom transitions based on movement speed
- Camera tilt on strafing for cinematic feel
- First-person toggle (P key)
- Multiplayer body rotation replication
Multiplayer
- All animations replicate to other players (draw, fire, cancel)
- Arrow projectiles visible to nearby players
- Server-authoritative damage — no client-side exploits
- Optimized network: only broadcasts to players within 200 studs
- Body rotation replication so other players see your aim direction
Sound Effects
- Bow draw creak sound
- Arrow release/fire sound
- 5 arrow impact sound variations
- Arrow pickup sound
- Reload station restock sound
Configuration — No Scripting Required
Every bow is fully configurable through Tool Attributes in the Properties panel:
| Attribute | Type | Description | Longbow Default | Composite Default |
|---|---|---|---|---|
| Damage | Number | Base damage per hit | 75 | 45 |
| Range | Number | Max hit registration distance (studs) | 2500 | 2500 |
| DrawTime | Number | Seconds to fully draw | 1.8 | 0.55 |
| MinDrawTime | Number | Minimum draw before firing | 0.4 | 0.2 |
| MaxHoldTime | Number | Seconds before arm fatigue | 5.0 | 6.0 |
| ArrowSpeed | Number | Arrow velocity (studs/sec) | 625 | 478 |
| MaxSpread | Number | Spread at minimum draw (degrees) | 8 | 6 |
| MinSpread | Number | Spread at full draw (degrees) | 0.5 | 0.8 |
| Gravity | Number | Arrow drop rate | 0.2 | 0.35 |
| MaxAmmo | Number | Maximum arrows per quiver | 12 | 20 |
| StaminaDrainPerSec | Number | Stamina cost while holding draw | 5 | 5 |
| ReloadTime | Number | Time between shots | 0.8 | 0.5 |
If an attribute is not set on the tool, the system falls back to built-in defaults automatically.
Setup Instructions
- Insert the model into your game
- Bow tools are in ReplicatedStorage > GameItems > Weapons > Bows or StarterPack
- Place Arrow Reload stations by adding Arrow_Reload models inside Workspace > Arrow_Stations
- Customize bow stats by editing attributes on each bow Tool
- Play — everything works automatically
Technical Details
- Client-Server Architecture — Physics and visuals on client, damage validation on server
- Anti-Exploit — Server validates shot origin, distance, and equipped weapon
- Performance Optimized — Arrow pooling, batched pickup checks (0.2s interval), distance-based network broadcasting
- Stamina Integration — Optional stamina drain while holding draw (connects to your stamina system via globals)
- Modular Design — Works standalone or alongside other combat systems
