Crossbow Weapon Reference
The Crossbow is one of the few weapons in Unturned that fires silently by default and uses the String action type. It is chambered in Arrows (caliber 15) and feeds from the Crossbow Iron Sights magazine (asset 347). Its stats place it in a unique category: high single-shot damage with a slow cycle rate and no automatic fire mode. This article documents every field in the asset file, what the damage multipliers mean for each hit zone, and every loot table the weapon appears in.
Unlike most firearms, the Crossbow functions as a drawn weapon. The player must draw the string back after each shot, which is governed by the String action type interacting with the Safety flag. The weapon cannot fire continuously, cannot be reloaded from loose ammunition without a magazine, and always spawns with exactly one arrow chambered. These constraints are encoded in the asset file fields documented below.
Asset identity
The game loads the Crossbow from the asset file Crossbow.dat inside the core Unturned content bundle. The file is a serialised Unity asset that the engine reads at startup. Its identity in the item registry is:
| Property | Value |
|---|---|
| Asset name | Crossbow |
| Item ID | 346 |
| GUID | bb30529b25ff4a09b362d70fd0e5a3e9 |
| Rarity | Uncommon |
| Slot | Primary |
The in-game description reads: Crossbow chambered in Arrows.
When a modder references this weapon in a plugin, a loot-table override, or a crafting recipe, they use the item ID 346 or the GUID bb30529b25ff4a09b362d70fd0e5a3e9. Both are interchangeable in most of the game's data systems. The GUID is the more stable identifier across updates: if Unturned's item registry is reordered in a future patch, the numerical ID could shift, but the GUID will remain the same. Server plugins that reference items by GUID are more resilient to game updates than those that reference by item ID alone.
The Uncommon rarity controls the default colour tint applied to the item's background in the inventory screen. It also influences which rarity-level loot tables the weapon qualifies for, though most spawn placements in this case use table-specific entries rather than a generic rarity filter. A server owner who wants to change the inventory appearance can override the rarity to Common, Rare, Epic, or Legendary, each of which applies a different colour tint.
The Primary slot assignment means the Crossbow occupies the main weapon slot. It competes with rifles, shotguns, and other primary weapons for inventory space. A player cannot carry both a Crossbow and another primary weapon at the same time without additional equipment or mods.
Ballistics table
The ballistics block defines how the weapon interacts with the projectile system. Every value shown below comes directly from the asset file at runtime.
| Field | Value |
|---|---|
| Range | 200 |
| Firerate | 50 |
| Action | String |
| Caliber | 15 |
| Magazine | 347 |
| Ammo_Min | 1 |
| Ammo_Max | 1 |
Range
A value of 200 is the maximum distance in metres that a projectile from this weapon can travel before the engine destroys it. This is higher than most secondary weapons and comparable to many rifles, which makes the Crossbow viable at longer engagement distances than its slow firerate might suggest. At 200 metres, the projectile has the same maximum lifetime as a standard assault rifle round.
For a modder, increasing Range lengthens the projectile's lifetime. Decreasing it shortens the flight arc. This field is a float in the asset file and can be fractional (for example, 250.5). The engine does not clamp this value to a specific maximum, so a modder can set it to any positive number.
When the range is changed, the projectile's travel time over long distances changes proportionally. A higher range value means the projectile stays alive longer, which also means it can travel farther on maps with long sightlines. A lower range means the projectile despawns closer to the shooter, regardless of whether it has hit anything.
Firerate
The engine uses Firerate as a tick-interval between shots. A higher number means more ticks between shots and therefore a slower rate of fire. At 50, this weapon cycles slowly. For comparison, the PDW has a Firerate of 4, and the Nailgun has a Firerate of 3. The Crossbow's 50 is the highest (slowest) value among the four weapons documented in this reference series.
Modders who want to speed up the Crossbow should lower this value. A change from 50 to 25 would halve the tick interval between shots. Those who want an even more deliberate pacing should raise it. The engine's tick rate is an internal constant and not discussed here because it is not part of the extracted asset data.
The Firerate value interacts with the String action type. After each shot, the weapon enters a draw animation, and the Firerate tick interval begins counting down. The weapon cannot fire again until both the draw animation completes and the tick interval expires. This means lowering Firerate alone does not make the Crossbow fire as fast as a trigger-action weapon; the draw animation still imposes its own duration.
Action
String is the action type. In Unturned's gun system, String means the weapon must be drawn back (cocked) between shots with a draw animation. This is the defining characteristic of bows and crossbows: they are not immediately ready after firing. The String action type also means the Safety flag (present in the flags list) controls the weapon's ready state: when safety is on, the string is held drawn; when safety is off, the string is released and the weapon fires.
The interaction between String and Safety is specific to this action type. On a Trigger-action weapon, the Safety flag simply disables trigger input. On a String-action weapon, the safety toggle is the primary firing mechanism: the player toggles safety to draw, then toggles again to release and fire. The trigger input itself may not directly fire the weapon; it depends on how the safety state is mapped.
Modders changing Action to Trigger or Pump would alter the weapon's firing cadence entirely. Trigger would make the Crossbow fire on trigger pull with no draw animation. Pump would introduce a pump animation between shots, which is mechanically nonsensical for a crossbow but possible within the engine. Changing the action type would also break the visual and audio expectations tied to the Crossbow's animations, because the animation controller expects a String-action weapon and plays the draw animation accordingly.
Caliber
15 is the caliber ID. Caliber IDs map to ammunition types through the game's internal caliber table. Caliber 15 corresponds to Arrows. The engine uses this number to check whether a magazine or loose round is compatible with the weapon. When a player tries to load ammunition, the game compares the magazine's caliber ID with the weapon's Caliber field. If the IDs do not match, the ammunition is rejected.
The caliber table is a global data structure shared by all weapons. A caliber ID is an integer index into this table. The engine does not store the ammunition type name in the weapon asset; it stores only the integer. The actual ammunition type (Arrow, Magazine, Nailgun Cartridge, etc.) is resolved at runtime from the caliber table.
A modder who wants the Crossbow to fire a different ammunition type can change Caliber to a different integer. For example, changing it to 1 would make it accept Military ammunition. This would be an unusual mod (firing bullets from a crossbow) but is mechanically valid as long as the weapon's magazine also accepts caliber 1 ammunition.
Magazine
347 is the asset ID of the default magazine: the Crossbow Iron Sights. This is the magazine (sight attachment combination) that the weapon spawns with. The Crossbow Iron Sights holds one arrow and mounts to the sight hook. The engine automatically attaches this magazine when the weapon is first created, either through world spawn, loot generation, or a /give command.
The magazine serves two roles in the Crossbow's case: it defines the ammunition capacity (one round), and it provides the sight attachment. Other weapons may have separate sight and magazine slots, but the Crossbow combines them into a single asset.
If the magazine asset (ID 347) is missing from the loaded asset bundle, the Crossbow will spawn without a magazine. It will still be equippable, but it will have no ammunition capacity and no sights. The player would see an empty weapon with no sight model attached.
Ammo_Min and Ammo_Max
Both are 1. When the weapon spawns in the world or is generated as loot, the engine picks a random number of loaded rounds between Ammo_Min and Ammo_Max inclusive. Since both values are 1, the Crossbow always spawns with exactly one arrow chambered. There is no randomness in the ammunition count.
This is a design choice that reflects the Crossbow's single-shot nature. The weapon holds one arrow at a time, and it always spawns loaded. A player who picks up a Crossbow from the ground never needs to load the first shot; it is ready to fire immediately (subject to the Safety and String mechanics).
If a modder sets Ammo_Max to a value higher than 1, the engine would generate that many rounds on spawn. However, the magazine (asset 347) only holds one round, so the extra ammunition would either overflow or be discarded depending on how the engine handles capacity mismatches.
Player damage table
Player damage fields govern damage dealt to other players. Each multiplier applies to a specific hit zone. The base damage value is applied when a projectile hits a player's torso (the default zone). Every other hit zone multiplies this base by the zone's specific multiplier.
| Field | Value |
|---|---|
| Player_Damage | 80 |
| Player_Leg_Multiplier | 0.6 |
| Player_Arm_Multiplier | 0.6 |
| Player_Spine_Multiplier | 0.8 |
| Player_Skull_Multiplier | 1.1 |
Player_Damage
80 is the base damage dealt to a player hit in the torso (the default hit zone when no specific multiplier applies). Every other hit zone multiplies this number by its respective multiplier. At 80, the Crossbow has one of the highest per-shot player damage values of any non-sniper primary weapon in the core game.
The base damage is a float in the asset file. A modder can set it to fractional values (for example, 80.5). The engine applies the damage as a float; any rounding happens downstream in the health system.
Player_Leg_Multiplier
0.6 is the leg multiplier. A leg shot deals 60 percent of the base damage. This is the lowest multiplier in the player damage block, shared with arm hits, which means leg and arm shots are the least effective against players. The multiplier is a float; the engine multiplies 80 by 0.6 to produce the effective leg damage.
Player_Arm_Multiplier
0.6 is the arm multiplier, identical to the leg multiplier. The game treats arm and leg hits as the same damage tier against players. There is no distinction between an arm shot and a leg shot in the damage calculation. Both receive the same 40 percent damage reduction relative to a torso hit.
Player_Spine_Multiplier
0.8 is the spine (upper torso) multiplier. Spine shots deal 80 percent of the base damage, making them more effective than limb shots but less than headshots. The spine zone is a smaller target than the torso and a larger target than the head, so the 0.8 multiplier represents a middle ground between limb shots and headshots.
Player_Skull_Multiplier
1.1 is the headshot multiplier. A skull shot deals 110 percent of the base damage. This is the only multiplier above 1.0, meaning headshots are the only shot type that deals more than the listed base damage. Every other hit zone reduces the base damage.
Computed player damage by hit zone
The table below multiplies Player_Damage (80) by each multiplier to show the effective damage at each body part. These values are pre-computed from the asset file fields and are included verbatim from the extracted asset data.
| Hit zone | Multiplier | Damage (base 80) |
|---|---|---|
| Skull | 1.1 | 88 |
| Spine | 0.8 | 64 |
| Arm | 0.6 | 48 |
| Leg | 0.6 | 48 |
A headshot delivers 88 damage, a spine shot 64, and limb shots 48. The spread between the highest and lowest damage hit zones is 40 points (from 48 to 88). These numbers are useful for modders balancing player-versus-player damage: raising Player_Damage to 100 would make the numbers proportional, with a headshot at 110 and limb shots at 60. The multipliers stay the same; only the base changes.
The arm and leg zones produce identical damage because they share the same multiplier of 0.6. A modder who wants to differentiate arm from leg damage would change one of these multipliers without changing the other. For example, setting Player_Leg_Multiplier to 0.5 and leaving Player_Arm_Multiplier at 0.6 would make leg shots deal 40 damage (at base 80) while arm shots continue to deal 48.
Zombie damage table
Zombie damage fields govern damage dealt to hostile NPCs (zombies). The field names mirror the player damage block, but the base value and the limb/spine multipliers differ. The skull multiplier is consistent across all three damage blocks.
| Field | Value |
|---|---|
| Zombie_Damage | 99 |
| Zombie_Leg_Multiplier | 0.3 |
| Zombie_Arm_Multiplier | 0.3 |
| Zombie_Spine_Multiplier | 0.6 |
| Zombie_Skull_Multiplier | 1.1 |
Zombie_Damage
99 is the base zombie damage. The Crossbow deals substantially more damage to zombies than to players, which is consistent with its role as a silent ranged tool for clearing NPC threats without drawing attention. The base zombie damage of 99 is exactly 19 points higher than the player base damage of 80.
This asymmetry is encoded directly in the asset file. The engine does not derive the zombie damage from the player damage; it reads two independent fields. A modder who changes Player_Damage has not changed Zombie_Damage, and vice versa.
Zombie_Leg_Multiplier and Zombie_Arm_Multiplier
Both are 0.3. Limb shots on zombies deal only 30 percent of the base damage, making them the least effective shot placement. Against zombies, the limb multiplier is half of the equivalent player multiplier (0.6), so limb shots are punished more severely.
The reduction from 0.6 (player) to 0.3 (zombie) means a limb shot on a zombie deals half the proportional damage that the same shot would deal to a player. Even though the base zombie damage (99) is higher than the base player damage (80), the effective limb damage on a zombie is lower than on a player when both are compared as a percentage of the respective base values.
Zombie_Spine_Multiplier
0.6 is the zombie spine multiplier. Spine shots deal 60 percent of the base damage. This also differs from the player spine multiplier (0.8). Zombie spine shots are proportionally less effective than player spine shots, despite the higher base damage.
Zombie_Skull_Multiplier
1.1 is the zombie headshot multiplier, identical to the player and animal headshot multipliers. The headshot bonus is consistent across all three target types. A zombie headshot deals 110 percent of the base 99 damage.
Computed zombie damage by hit zone
| Hit zone | Multiplier | Damage (base 99) |
|---|---|---|
| Skull | 1.1 | 108.9 |
| Spine | 0.6 | 59.4 |
| Arm | 0.3 | 29.7 |
| Leg | 0.3 | 29.7 |
A zombie headshot delivers 108.9 damage. A spine shot delivers 59.4. Limb shots deliver 29.7. The gap between head and limb damage is wider against zombies than against players because the limb multipliers drop to 0.3 from 0.6. The effective limb damage of 29.7 is less than half the headshot damage of 108.9.
Modders balancing zombie damage should note that the Crossbow's Zombie_Damage of 99 is significantly higher than its Player_Damage of 80. This asymmetry is intentional in the base game: the Crossbow is a more effective zombie-killing tool than a player-killing tool on a per-shot basis.
Animal damage table
Animal damage fields govern damage dealt to wildlife (deer, wolves, bears, and other animal NPCs). The animal damage block has only three hit zones: skull, spine, and leg. There is no arm multiplier, because animal hit models do not include arm hitboxes.
| Field | Value |
|---|---|
| Animal_Damage | 99 |
| Animal_Leg_Multiplier | 0.6 |
| Animal_Spine_Multiplier | 0.8 |
| Animal_Skull_Multiplier | 1.1 |
Animal_Damage
99 is the base animal damage. This matches the zombie base damage value, which means the Crossbow treats animals and zombies identically at the base damage level. Both non-player NPC types receive the same base damage from this weapon.
Animal_Leg_Multiplier
0.6 is the animal leg multiplier. Leg shots on animals deal 60 percent of the base damage. This matches the player leg multiplier but is double the zombie leg multiplier (0.3). The Crossbow is more forgiving of leg shots on animals than on zombies.
Animal_Spine_Multiplier
0.8 is the animal spine multiplier. Spine shots deal 80 percent of the base damage, matching the player spine multiplier. This is higher than the zombie spine multiplier (0.6), meaning spine shots on animals are proportionally more effective than spine shots on zombies.
Animal_Skull_Multiplier
1.1 is the animal headshot multiplier, consistent across all three target types. The headshot bonus does not vary by target type in the Crossbow's asset file.
Note that the animal damage block has no Animal_Arm_Multiplier field. The game's animal hit model does not distinguish arm hits; the available zones are skull, spine, and legs. A shot that hits an animal's torso (not the spine hitbox) would presumably use the base damage unmodified, because no multiplier is defined for that zone.
Computed animal damage by hit zone
| Hit zone | Multiplier | Damage (base 99) |
|---|---|---|
| Skull | 1.1 | 108.9 |
| Spine | 0.8 | 79.2 |
| Leg | 0.6 | 59.4 |
A skull shot on an animal deals 108.9 damage. A spine shot deals 79.2. A leg shot deals 59.4. The spine damage on an animal (79.2) is notably higher than the spine damage on a zombie (59.4) because the animal spine multiplier is 0.8 while the zombie spine multiplier is 0.6.
Cross-target comparison
The Crossbow's damage profile across the three target types reveals the design intent:
| Target | Base | Skull | Spine | Leg |
|---|---|---|---|---|
| Player | 80 | 88 | 64 | 48 |
| Zombie | 99 | 108.9 | 59.4 | 29.7 |
| Animal | 99 | 108.9 | 79.2 | 59.4 |
Against players, the weapon is strong but not overwhelming. Against zombies, it is devastating on headshots and spine hits but weak on limb hits. Against animals, it is strong across all three hit zones. This three-tier design is shared by many other weapons in Unturned's data and is a pattern worth recognising when modding.
Handling and recoil table
The handling block defines how the weapon's aim point moves during and between shots. Each field controls a different aspect of the weapon's "feel" when fired.
| Field | Value |
|---|---|
| Recoil_Min_X | -5 |
| Recoil_Min_Y | 5 |
| Recoil_Max_X | 5 |
| Recoil_Max_Y | 10 |
| Spread_Aim | 0.001 |
| Shake_Min_X | -0.005 |
| Shake_Max_X | 0.005 |
Recoil_Min_X and Recoil_Max_X
The X-axis (horizontal) recoil is bounded between -5 and 5. On each shot, the engine picks a random value in this range and offsets the aim point horizontally by that amount. A negative value means the aim drifts left; a positive value means it drifts right. The range is symmetric around zero, so the Crossbow's horizontal kick is evenly distributed left and right.
The magnitude of -5 to 5 is significant. Compared to the Nailgun's horizontal recoil range of -0.2 to 0.2, the Crossbow has 25 times the horizontal variance. This reflects the physical kick of a crossbow's limbs snapping forward, which produces a sharp lateral impulse.
Recoil_Min_Y and Recoil_Max_Y
The Y-axis (vertical) recoil is bounded between 5 and 10. Both values are positive, so the Crossbow's recoil always kicks upward. The minimum vertical kick is 5 units, and the maximum is 10. The minimum is never zero or negative, so the weapon never recoils downward.
This is one of the highest vertical recoil ranges among Unturned weapons. The combination of high horizontal recoil and high vertical recoil means the Crossbow's aim point jumps significantly with each shot. Since the weapon only fires once before requiring a draw cycle, the recoil is experienced as a single large kick rather than a sustained climb.
Spread_Aim
0.001 is the aiming spread (cone of fire) when the player is aiming down sights. This is an extremely tight value. The Crossbow is effectively pinpoint-accurate when aimed. The projectile will land almost exactly where the crosshair points, with only negligible deviation.
For comparison, the Nailgun has Spread_Aim of 0.5 and the Paintball Gun has 0.2. The Crossbow's 0.001 is two to three orders of magnitude tighter. This precision is appropriate for a weapon that fires a single projectile slowly; the player is rewarded for careful aim with near-perfect accuracy.
Modders who want to introduce inaccuracy when aiming can raise this number. A value of 0.05 would create a small but noticeable cone of fire. A value of 0.5 would make the Crossbow as inaccurate as a Nailgun, which would be a significant departure from the weapon's design intent.
Shake_Min_X and Shake_Max_X
-0.005 to 0.005 is the screen-shake range applied to the viewport on firing. The range is symmetric and small, producing a subtle camera movement that conveys the weapon's physical kick without disorienting the player. The shake is larger than the PDW's (-0.001 to 0.001) but smaller than the Nailgun and Paintball Gun (-0.01 to 0.01).
Recoil, spread, and shake interaction
These three handling subsystems operate independently. Recoil offsets the aim point; spread adds a random angular deviation to the projectile's trajectory; shake moves the camera. A modder can adjust any one of them without affecting the others. A Crossbow with low recoil but high spread would kick gently but fire inaccurate projectiles. A Crossbow with high recoil but tight spread would jump wildly but still land shots where the post-recoil crosshair points.
Flags
The asset's flag list controls discrete behavioural toggles. Each flag enables or disables a specific mechanic. Flags are stored as an array of strings in the asset file.
| Flag | Effect |
|---|---|
7b82c125a5a54984b8bb26576b59e977 | Item origin GUID (identifies the content bundle the weapon belongs to) |
Blueprints | Enables the crafting blueprint system for this item |
Hook_Grip | Allows a grip attachment to be mounted |
Hook_Sight | Allows a sight/scope attachment to be mounted |
Hook_Tactical | Allows a tactical attachment to be mounted |
InputItems | Enables manual ammo loading into the magazine/chamber |
RequiresNearbyCraftingTags | Requires a nearby crafting station for blueprint operations |
Safety | Enables the safety toggle mechanic |
Semi | Enables semi-automatic fire mode |
[, ], {, } | Attachment-system bracket flags (internal attachment tree delimiters) |
Flag walkthrough
The 7b82c125a5a54984b8bb26576b59e977 flag is the item origin GUID. Every item in Unturned carries this flag (or an equivalent origin identifier) that tells the engine which content bundle the item was originally loaded from. This is used for mod conflict resolution and asset override prioritisation.
The Blueprints flag means the Crossbow can be crafted or disassembled through blueprints, provided the required ingredients and crafting-tag conditions are met. A blueprint is a separate asset that references the Crossbow by its item ID or GUID and specifies the required input items, output items, and any crafting station tags. If no blueprint references the Crossbow, the Blueprints flag has no effect because there is nothing to trigger it.
The RequiresNearbyCraftingTags flag means the player must be near a crafting station that matches the blueprint's tag requirements. Crafting in the field without the correct station is not possible. The tags themselves are defined in the blueprint asset, not in the weapon asset. The RequiresNearbyCraftingTags flag simply toggles the requirement; the specific tags that must match are the blueprint's responsibility.
The Hook_Grip, Hook_Sight, and Hook_Tactical flags define the three attachment hook points. A grip, a sight, and a tactical device can each be mounted simultaneously. The attachment hook flags tell the engine which attachment slots are valid on this weapon. If a modder removes Hook_Sight, the Crossbow's sight slot disappears and the player can no longer swap the default Crossbow Iron Sights. The existing sight would still be visible (it is auto-attached via the Magazine field), but the player could not remove or replace it through the attachment UI.
The InputItems flag enables the standard ammo-loading mechanic: the player can drag compatible ammunition onto the weapon or its magazine to load rounds. Without this flag, the weapon cannot be reloaded through the inventory interface. Ammunition could still potentially be loaded through plugin commands or blueprint outputs, but manual reloading would be disabled.
The Safety flag enables the safety toggle. On a String-action weapon like the Crossbow, safety-on holds the string drawn; safety-off releases it to fire. The flag is essential for the weapon's basic operation. Without the Safety flag on a String-action weapon, there is no mechanism to hold and release the string. The weapon might become entirely non-functional, or it might default to a broken state where the string never draws. The exact behaviour depends on how the engine handles the missing safety state on a string-action weapon.
The Semi flag means the weapon fires one shot per trigger pull. It does not have the Auto flag, so the Crossbow cannot fire continuously while the trigger is held. Combined with the String action type, each shot requires a follow-up draw animation before the next shot can be fired. Even if the Auto flag were added, the String action type would still require a draw cycle between shots, so automatic fire would not be continuous in the way it is for a Trigger-action weapon.
The bracket characters [, ], {, } are attachment-tree structural delimiters used internally by the game's item-assembly system. They do not affect gameplay directly. They define how the attachment hierarchy is serialised in the asset file, marking the boundaries between attachment slot groups. A modder adding a new attachment hook must also insert the corresponding bracket entries in the correct positions within the flag array. Simply adding Hook_Barrel to the flags list without the bracket delimiters will not make the barrel slot functional.
Flag interaction summary
Several flags interact with each other and with the ballistics fields:
String(Action) +Safety= draw-and-release firing mechanismString(Action) +Semi= one shot per draw cycle, no continuous fireBlueprints+RequiresNearbyCraftingTags= crafting gated behind station proximityHook_Sight+Magazine(347) = the default magazine auto-attaches to the sight hookInputItems+Caliber(15) = only ammunition with caliber 15 can be loaded manually
How the damage system works
Every gun asset in Unturned has three separate damage blocks: one for players, one for zombies, and one for animals. The engine selects which block to use based on the target's entity type at the moment the projectile hits. A shot that hits a player reads from the player damage block; the same shot that hits a zombie reads from the zombie damage block. The values in the three blocks are independent; the Crossbow deals 80 base to players, 99 base to zombies, and 99 base to animals.
Within each damage block, the engine checks which hit zone the projectile struck. The hit zone is determined by the hitbox that was intersected: the skull hitbox, spine hitbox, arm hitbox, or leg hitbox. If the hit is to the skull, the base damage is multiplied by the corresponding Skull_Multiplier. If it is to the spine, arm, or leg, the corresponding multiplier applies. If no specific multiplier matches the hit zone (for example, a torso hit that is not the spine), the base damage applies unmodified.
The damage calculation is:
- Read the base damage for the target type (
Player_Damage,Zombie_Damage, orAnimal_Damage). - Determine which hit zone the projectile struck.
- Look up the multiplier for that hit zone for that target type.
- If a multiplier exists, multiply the base damage by the multiplier.
- If no multiplier exists for that hit zone, use the base damage unmodified.
A modder editing the Crossbow's damage profile would open Crossbow.dat (or the relevant master bundle override file) and change one or more of these float values. The change takes effect the next time the server or client loads the weapon asset. There is no need to rebuild bundles for a simple stat edit, provided the modding framework in use supports runtime asset overrides.
Attachment hooks and the magazine
The Crossbow has three attachment hooks: Hook_Grip, Hook_Sight, and Hook_Tactical. Each hook accepts one attachment at a time. If the player mounts a new sight, the default Crossbow Iron Sights are replaced and moved to the player's inventory (or dropped, depending on inventory space).
The default magazine is the Crossbow Iron Sights (asset ID 347). A magazine in Unturned's gun system serves two roles: it defines the capacity (how many rounds the weapon can hold before reloading), and it can carry its own attachment hooks if it is a sight-magazine combination. The Crossbow Iron Sights provides a capacity of one and mounts to the sight hook. When the magazine is attached, it occupies the sight slot and provides the ammunition well.
The Magazine field in the ballistics block (value 347) tells the engine which magazine to auto-attach when the weapon spawns for the first time. If the weapon is picked up, dropped, and picked up again, the magazine state persists from the previous drop; the engine does not re-attach the default magazine every time the weapon is acquired. The auto-attachment only happens on initial creation.
If a modder wants the Crossbow to spawn without a magazine, they would set Magazine to 0. The weapon would spawn with no sights and no ammunition capacity. The player would need to find or craft a compatible magazine separately.
The Caliber field (15) is the compatibility key. A magazine or a loose round must have a matching caliber ID for the weapon to accept it. The engine checks the caliber ID of the magazine against the weapon's Caliber field when the player attempts to attach the magazine. If a modder creates a custom arrow type with caliber ID 16, the Crossbow will reject any magazine loaded with that ammunition because caliber 16 does not match the weapon's Caliber of 15.
Spawn tables
The Crossbow appears in 26 loot tables across multiple maps. Each table has a Chance per roll value, which is the probability that a single roll on that table selects this weapon. A table with 100.000% always produces a Crossbow on every roll; a table with 2.101% produces one on about 2.1% of rolls. The probabilities are independent across rolls; the engine does not track a "pity timer" or increasing probability.
Guaranteed spawns
Three tables have a 100.000% chance. These tables exist specifically to guarantee a Crossbow spawn at designated map locations:
| Map | Spawn table | Chance per roll |
|---|---|---|
| Core | Camp_Crossbows | 100.000% |
| Core | Farm_Crossbows | 100.000% |
| Core | Camp_Arctic_Crossbows | 100.000% |
Camp_Crossbows places a Crossbow at camping-themed loot spots on core maps. Farm_Crossbows does the same for farm-themed locations. Camp_Arctic_Crossbows places one at arctic-camp locations. These are dedicated tables: their sole purpose is to place a Crossbow. They might contain only the Crossbow entry, or they might contain multiple entries where the Crossbow has a 100% chance and other items have lower chances (the percentages in a loot table can sum to more than 100% because each entry is an independent roll).
A server owner who wants to ensure every player can find a Crossbow does not need to edit the weapon itself; they can add one of these tables to additional map spawn nodes. The Farm_Crossbows table can be placed on any farm-themed spawn node, and it will produce a Crossbow on every activation of that node.
Ireland-specific tables
| Map | Spawn table | Chance per roll |
|---|---|---|
| Ireland | Cliffs_Bank | 23.077% |
| Ireland | Cliffs_Camp | 4.255% |
The Ireland map has two tables that produce the Crossbow at notably different rates. Cliffs_Bank gives it a 23.077% chance, making it a relatively common find in bank loot. Cliffs_Camp gives only 4.255%, so a camp loot spot on Ireland is far less likely to produce one.
The difference between 23.077% and 4.255% is a factor of over five. A player looting banks on the Ireland map will encounter Crossbows far more frequently than a player looting camps on the same map. This distribution suggests the designers intended the Crossbow to be thematically associated with bank loot (perhaps as a security measure or a collector's item) more than with camp loot.
France-specific tables
| Map | Spawn table | Chance per roll |
|---|---|---|
| France | Farm_France | 2.857% |
| France | France_Farm | 2.857% |
| France | Camp_France | 1.299% |
| France | France_Camp | 1.299% |
France has four tables. The farm tables (Farm_France and France_Farm) share the same 2.857% chance. The camp tables (Camp_France and France_Camp) share 1.299%. The doubling of entries (one prefixed France_, one not) reflects how the game's map-level loot tables are often defined twice: once as the global table name and once prefixed with the map name. Depending on the specific spawn node configuration, one or both may apply to a given spawn.
Belgium-specific tables
| Map | Spawn table | Chance per roll |
|---|---|---|
| Belgium | Farm_Belgium | 2.101% |
Belgium has one entry at 2.101% through Farm_Belgium.
Core map farm tables
| Map | Spawn table | Chance per roll |
|---|---|---|
| Core | PEI_Farm | 2.101% |
| Core | Farm | 2.101% |
| Core | Washington_Farm | 2.101% |
| Core | Russia_Farm | 2.101% |
| Core | Peaks_Farm | 2.101% |
These five core farm tables all share the same 2.101% chance. Each corresponds to a specific official map: PEI, the base farm table, Washington, Russia, and the Germany/Peaks map. The consistent value across all of them means a Crossbow is equally rare on a farm in any core map. The designers did not differentiate the Crossbow's farm frequency by map; every core map treats farm spawns as equally likely to produce one.
Rio de Janeiro tables
| Map | Spawn table | Chance per roll |
|---|---|---|
| RioDeJaneiro | Farm_Brazil | 2.101% |
| RioDeJaneiro | Brazil_Survivor | 1.522% |
Brazil's farm table matches the core farm rate at 2.101%. The Brazil_Survivor table has a lower chance of 1.522%. The Survivor table likely represents survivor-camp or survivor-stash loot pools on the Brazil map.
Core map arctic camp tables
| Map | Spawn table | Chance per roll |
|---|---|---|
| Core | Yukon_Camp_Arctic | 1.482% |
| Core | Camp_Arctic | 1.482% |
These are the non-guaranteed arctic camp tables. Unlike the Camp_Arctic_Crossbows table at 100.000%, these generic arctic camp tables have only a 1.482% chance of producing a Crossbow. The guaranteed table (Camp_Arctic_Crossbows) and the generic table (Camp_Arctic) coexist: a spawn node that rolls on the generic table might produce many other items; a node that rolls on the dedicated Crossbow table always produces a Crossbow.
The Yukon_Camp_Arctic and Camp_Arctic entries share the same 1.482% value. The Camp_Arctic entry is the generic version; the Yukon_Camp_Arctic entry is the Yukon-map-specific version.
Core map camp tables
| Map | Spawn table | Chance per roll |
|---|---|---|
| Core | PEI_Camp | 1.274% |
The generic PEI camp table has a 1.274% chance, the lowest non-guaranteed rate in the spawn list. This means the Crossbow is extremely rare in standard PEI camp loot.
Full spawn table (verbatim)
| Map | Spawn table | Chance per roll |
|---|---|---|
| Core | Camp_Crossbows | 100.000% |
| Core | Farm_Crossbows | 100.000% |
| Core | Camp_Arctic_Crossbows | 100.000% |
| Ireland | Cliffs_Bank | 23.077% |
| Ireland | Cliffs_Camp | 4.255% |
| France | Farm_France | 2.857% |
| France | France_Farm | 2.857% |
| Belgium | Farm_Belgium | 2.101% |
| Core | PEI_Farm | 2.101% |
| Core | Farm | 2.101% |
| Core | Washington_Farm | 2.101% |
| Core | Russia_Farm | 2.101% |
| Core | Peaks_Farm | 2.101% |
| RioDeJaneiro | Farm_Brazil | 2.101% |
| RioDeJaneiro | Brazil_Survivor | 1.522% |
| Core | Yukon_Camp_Arctic | 1.482% |
| Core | Camp_Arctic | 1.482% |
| France | Camp_France | 1.299% |
| France | France_Camp | 1.299% |
| Core | PEI_Camp | 1.274% |
Showing 20 of 26 tables that can produce this weapon.
The extracted asset data lists 20 of 26 total tables. The six tables not shown exist in the game data but are not enumerated here. The missing tables may include additional map-specific farm or camp tables, or tables associated with maps not represented in the visible 20 (Belgium has only one visible entry and may have more). A modder who needs the complete set can extract it from the game's asset bundles using a tool like UAssetGUI or a dedicated Unturned data extractor.
Reading the spawn table as a modder
Each row in the spawn table represents one entry in one loot table. A single loot table can contain dozens or hundreds of items, each with its own weight or chance. When the game rolls on that table, it evaluates each entry independently according to its configured probability.
A Chance per roll value is not a guarantee that the weapon will drop exactly that often over any number of rolls. It is the probability assigned to that single entry on a single roll. If a spawn node rolls on a table three times, each roll is independent, and the Crossbow could appear zero, one, two, or three times. There is no cumulative probability mechanism. A 2.101% chance does not become 4.202% on the second roll or 6.303% on the third; each roll is 2.101%.
To add the Crossbow to a new table, a modder would:
- Locate the target loot table asset in the map's data files.
- Add a new entry with item ID
346and the desired weight or chance value. - Ensure the table's total weight is adjusted so the new entry's chance matches the intended rarity. (If the table uses a weight-based system rather than direct percentages, the modder would add the Crossbow entry with a weight and let the engine normalise the weights into probabilities.)
- Test on a local server to confirm the weapon spawns at the new location.
To remove the Crossbow from a table, the modder would delete or comment out the entry with item ID 346. If the table uses a weight-based system, the weights of the remaining entries should be re-normalised if the total weight must stay constant.
Canned Beans
This section documents the Crossbow's relationship -- or lack of one -- with the Canned Beans canon of the 57 Studios wiki. For the full beans lore, see Canned Beans.
The Crossbow brief contains no verified bean data. There is no bean-related flag, no bean ammunition type, no bean-themed blueprint, and no bean icon or description override associated with this weapon. The Crossbow does not appear in any bean-specific loot table, nor does it interact with the bean item (ID 13) or the spoiled beans item (ID 129) in any way.
This absence is not surprising. The Crossbow is a hunting and combat weapon chambered in Arrows (caliber 15). The Canned Beans item is a food consumable with a distinct item category (Food) and no ballistic interaction. Nothing in the asset file's flags or damage blocks references food items, consumable logic, or any item ID associated with beans. The caliber system, the magazine system, and the attachment system are all fire-arm mechanics that have no intersection with food items.
A modder who wanted to create a bean-themed Crossbow -- a "Bean Bow" firing cans instead of arrows -- would need to:
- Create a new ammunition asset with a bean-themed model and icon, using a caliber ID compatible with the Crossbow (caliber 15).
- Optionally create a new magazine asset that references the bean ammunition and holds one round (matching the Crossbow Iron Sights design).
- Optionally create a blueprint that converts standard Canned Beans items (ID 13) into the bean ammunition. The blueprint would require
InputItemscontaining Canned Beans and would output the bean ammunition. - Override the Crossbow's
Magazinefield (currently347) to point at the new bean magazine.
This is a purely hypothetical exercise; no such bean mod exists in the official game data. The absence of bean content on the Crossbow is an honest data gap, not a missing section.
Practical use for server owners
Server owners who want to adjust the Crossbow's availability have two main levers: the spawn tables and the crafting blueprint conditions. The damage values are the third lever, affecting balance rather than availability.
Adjusting spawn rates
The Crossbow's spawn distribution follows a clear pattern: a few guaranteed spawn points and many low-probability entries in generic loot tables. Server owners can adjust either tier independently.
If the Crossbow is too common, remove it from the generic farm and camp tables that have low per-roll chances (❤️%). Removing it from Farm, PEI_Farm, Washington_Farm, Russia_Farm, and Peaks_Farm alone eliminates five of the twenty listed table entries (plus their map-prefixed variants, making it more). The weapon would still be available through the three guaranteed tables (Camp_Crossbows, Farm_Crossbows, Camp_Arctic_Crossbows) and through the Ireland, France, Belgium, and Brazil tables, but its overall frequency would drop substantially.
If the Crossbow is too rare, the simplest approach is to copy the Camp_Crossbows entry to additional spawn nodes. Because Camp_Crossbows has a 100.000% chance, any node that references this table will always produce a Crossbow. Alternatively, the server owner can raise the chance values on the existing low-probability tables. Raising PEI_Farm from 2.101% to 5.000% would more than double the Crossbow's frequency in PEI farm loot.
Adjusting damage
The three damage blocks (player, zombie, animal) are independent. A server owner who finds the Crossbow too strong against zombies but balanced against players would change Zombie_Damage from 99 to a lower value without touching Player_Damage. Setting Zombie_Damage to 80 would make the zombie and player base damage equal.
Conversely, a PvP-focused server that wants the Crossbow to be a strong anti-player tool would raise Player_Damage from 80 to a higher value, for example 100. This would increase all player hit-zone damage proportionally: a headshot would move from 88 to 110, a spine shot from 64 to 80, and limb shots from 48 to 60.
The multipliers are best left alone unless the server owner wants to fundamentally change the hit-zone damage profile. Changing Player_Skull_Multiplier from 1.1 to 2.0 would double the headshot damage without affecting any other hit zone, which has larger balance implications than a base-damage tweak because it creates a steeper gradient between headshots and body shots.
Crafting considerations
The Blueprints flag enables crafting. The RequiresNearbyCraftingTags flag gates crafting behind a station requirement. A server owner who wants players to craft Crossbows in the field (anywhere, no station needed) would remove the RequiresNearbyCraftingTags flag. This makes crafting possible anywhere the player has the required blueprint ingredients.
A server owner who wants Crossbows to be loot-only would remove the Blueprints flag entirely. This disables all blueprint interactions, including crafting and disassembly. The weapon can still be spawned through loot tables, admin commands, and plugin actions, but it cannot be crafted or broken down by players.
The String action type and server balance
The String action type imposes a mechanical constraint that is worth considering for server balance. Because each shot requires a draw cycle (controlled by the String action plus Firerate of 50 plus the Safety toggle), the Crossbow cannot be fired rapidly. This limits its practical damage output regardless of the damage numbers. A server owner who increases Player_Damage to 200 but leaves the String action intact still has a weapon that fires slowly; it will hit hard but cannot suppress an area or win a close-quarters engagement against automatic weapons.
Practical use for modders
Modders working with the Crossbow asset should focus on three files or asset paths: the weapon asset itself (Crossbow.dat or its GUID-based path), the default magazine asset (ID 347), and the ammunition asset (the Arrow item that uses caliber 15). Changes to any of these three can affect the weapon's behaviour.
Asset file locations
In a standard Unturned installation, the Crossbow asset lives in the core content bundle. The exact file path depends on the modding framework:
- For direct asset replacement, the path would be something like
Bundles/Items/Guns/Crossbow/Crossbow.dat. - For OpenMod or RocketMod plugins that override item stats, the plugin API may provide a method like
SetItemDamage(346, 100)that writes the value without touching the asset file. - For custom workshop mods, the mod would include a replacement
Crossbow.datwith the desired stat changes.
Common modding operations
Changing the default magazine. Set Magazine to a different asset ID. The new magazine must use caliber 15 or the weapon will not accept ammunition through it. If the new magazine has a larger capacity, the weapon's per-reload shot count increases, though the String action type still limits the firing cadence.
Changing the action type. Set Action from String to Trigger to make the Crossbow fire instantly without the draw animation. This is a dramatic change that alters the weapon's fundamental identity. Most mods that do this also lower Firerate substantially (from 50 to something like 5 or 10) to create a fast-firing silenced primary weapon. This combination would make the Crossbow function like a suppressed rifle, which is a significant departure from its design.
Adding automatic fire. Add the Auto flag to the flags list. This allows the weapon to fire continuously while the trigger is held. On its own, with the existing String action type, automatic fire would still require a draw cycle between shots, so the weapon would not fire truly continuously. To achieve continuous automatic fire, the modder would need to change Action to Trigger and add Auto simultaneously.
Adding attachment hooks. Add Hook_Barrel or another hook flag to the flags list to allow additional attachments. The new hook must correspond to attachment assets that are compatible with the Crossbow's attachment tree structure. The bracket delimiters ([, ], {, }) must also be added in the correct positions. Simply adding the hook flag without the bracket entries will not create a functional attachment slot.
Removing the safety. Remove the Safety flag. On a String-action weapon, this would break the draw-and-release mechanic because safety controls the string state. The weapon would likely become non-functional unless the action type is also changed to something that does not rely on the safety toggle. This is an important interaction to understand: Safety is not optional on a String-action weapon; it is the firing mechanism.
Testing mod changes
Every GUID, asset ID, and caliber ID in this article is verified from the game files. When overriding these values, ensure the replacement IDs exist in the loaded asset bundle. A typo in an ID field will cause the weapon to fail to load, and the engine will log a warning to the client or server console.
Always test asset overrides on a local server before deploying to a production environment. A broken Crossbow asset can cause client crashes (if the asset fails to load), server log spam (if the engine repeatedly tries to resolve a bad ID), or silent failures (if the weapon spawns but cannot be equipped or fired). Test with a clean spawn, a /give command, and a loot table roll to confirm the weapon functions in all three acquisition paths.
