Features
Complete overview of all Oxide 3D Weapon Printing features including printing, blueprints, upgrades, assembly, quality, durability, and progression.
3D Printing
The 3D printer is the core manufacturing station. Players place a printer in the world, load blueprint USBs, feed it filament, and print individual weapon parts over time. Each printer persists across server restarts and tracks its own upgrade state and loaded blueprints.
Printing Process
- Use a 3D Printer item from your inventory to enter placement mode
- Position the ghost prop and confirm placement
- Interact with the placed printer via ox_target
- Load a Printer USB containing a weapon blueprint
- Select a part from the blueprint to print
- The printer consumes filament and begins printing with a real-time countdown
- Collect the finished part when the print completes
Print Parameters
Each part in a blueprint has two key parameters:
- Filament Cost - How many filament items are consumed (1-5 per part depending on weapon tier)
- Print Time - Base duration in seconds (600s-3600s depending on weapon tier), reduced by nozzle upgrades
DUI Status Screen
The printer displays a live DUI screen showing:
- Currently loaded blueprint name
- Active print progress with countdown timer
- Printer status (idle, printing, complete)
USB Malfunction
When loading a USB into a printer, there is a chance the USB fails and is destroyed. The base malfunction chance is 25%, reduced by:
- Player level - Each level reduces the chance by 1.5%
- Cooling Fan upgrades - Mk I: -10%, Mk II: -20%, Mk III: -30%
- Minimum chance is 5% regardless of level and upgrades
Blueprint Storage
Printers have an internal storage drive that holds loaded blueprints. The base capacity is 1 slot, upgradeable to 8 with Storage Drive upgrades. Multiple blueprints can be stored simultaneously, and you can switch between them without needing to reload USBs.
Blueprints
Blueprints define which parts can be printed for each weapon. Each blueprint is stored on a Printer USB item with metadata identifying the weapon. Blueprints are organized by weapon category and gated behind progression levels.
Weapon Categories
| Category | Weapons | Level Range |
|---|---|---|
| Pistols (Basic) | SNS Pistol, Vintage Pistol, Flare Gun, Pistol, SNS Mk II, Ceramic Pistol, Double-Action Revolver, Marksman Pistol, Machine Pistol | 1 |
| SMGs | Micro SMG, Mini SMG, SMG, SMG Mk II, Combat PDW, Assault SMG | 2 |
| Shotguns (Basic) | Pump Shotgun, Sawed-Off Shotgun, Double Barrel Shotgun, Sweeper Shotgun | 2 |
| Pistols (Advanced) | Combat Pistol, AP Pistol, Pistol Mk II, Heavy Pistol | 3 |
| Rifles (Standard) | Assault Rifle, Carbine Rifle, Special Carbine, Compact Rifle, Bullpup Rifle | 4 |
| Shotguns (Advanced) | Pump Shotgun Mk II, Bullpup Shotgun, Assault Shotgun | 4 |
| Rifles (Military) | Assault Rifle Mk II, Carbine Mk II, Special Carbine Mk II, Bullpup Mk II, Advanced Rifle, Military Rifle, Heavy Rifle | 5 |
| Shotguns (Heavy) | Heavy Shotgun | 5 |
| Pistols (Heavy) | Pistol .50, Heavy Revolver, Heavy Revolver Mk II, Navy Revolver | 6 |
| Snipers | Sniper Rifle, Marksman Rifle, Marksman Rifle Mk II | 7 |
| Machine Guns | MG, Combat MG, Combat MG Mk II | 8 |
| Snipers (Heavy) | Heavy Sniper, Heavy Sniper Mk II | 8 |
| Exotic | Perico Pistol | 9 |
Part Types
Parts vary by weapon category. Common part types include:
| Part | Used By |
|---|---|
| Pistol Slide | Pistols |
| Pistol Grip | Pistols |
| Pistol Magazine | Pistols |
| Compact Frame | Ceramic Pistol, Perico Pistol |
| Revolver Frame | Revolvers |
| Revolver Receiver | Revolvers |
| Trigger Group | Various (revolvers, shotguns, rifles, SMGs) |
| SMG Receiver | SMGs |
| SMG Barrel | SMGs |
| SMG Magazine | SMGs |
| Compact Barrel | Mini SMG, Machine Pistol, Compact Rifle |
| Folding Stock | Assault SMG |
| Rifle Upper | Rifles, Machine Guns |
| Rifle Lower | Rifles, Machine Guns |
| Rifle Barrel | Rifles, Machine Guns, Marksman Rifles |
| Rifle Handguard | Select Rifles |
| Rifle Magazine | Rifles |
| Rifle Stock | Rifles, Machine Guns, Marksman Rifles |
| Bullpup Chassis | Bullpup Rifle, Bullpup Shotgun |
| Shotgun Receiver | Shotguns |
| Shotgun Barrel | Shotguns |
| Shotgun Stock | Shotguns |
| Pump Handle | Pump Shotguns |
| Double Barrel Set | Sawed-Off, Double Barrel Shotgun |
| Sniper Receiver | Sniper Rifles |
| Sniper Barrel | Sniper Rifles |
| Sniper Magazine | Select Snipers, Marksman Rifles |
| Sniper Stock | Sniper Rifles |
| Long Scope | Heavy Snipers, Marksman Rifle Mk II |
| Drum Magazine | Machine Guns |
Item Printing
Added in v1.0.1 — this is a preview feature. Full item printing support with metadata, categories, and dedicated UI is planned for a future release.
The printer can produce non-weapon items directly, with no bench assembly required. Item prints are configured in shared/config/items.lua under Config.ItemPrints.
How It Works
Item blueprints behave like weapon blueprints and use the same printer workflow, with two key differences:
- Items are single-output — one print job produces one finished item
- Items are collected directly from the printer — the weapon bench is not involved
All standard printer mechanics apply: filament consumption, print time countdown, USB malfunction chance, level gating, XP rewards, and nozzle upgrade speed bonuses.
Collecting Items
When a print completes, the finished item is added directly to the player's inventory with no additional metadata. Items produced by the printer carry no quality grade, durability, or serial number.
NUI Behavior
The printer NUI distinguishes item blueprints from weapon blueprints visually:
- Item blueprints display a cube icon in the blueprint grid and USB picker
- Weapon blueprints display a scroll icon
When an item blueprint is selected, the NUI shows a single print button rather than a multi-part selection list.
Ghost Prop Preview
If the item entry in Config.ItemPrints includes a model value, a ghost prop preview is displayed on the printer during printing. If model is nil, the preview is silently skipped.
Level Gating and XP
Item blueprint keys can be added to Config.Progression.blueprintLevels in shared/config/progression.lua to gate access behind player level. XP is awarded on print completion using the same reward system as weapon parts.
Limitations (Preview)
- Items are single-output only — one print produces one item, no multi-part recipes
- No quality grades, durability, or custom metadata on collected items
/givewepblueprintsupports item blueprint keys for testingConfig.ItemPrintskeys must not collide withConfig.Blueprintskeys — weapon blueprints take priority if duplicated
For configuration of item entries, see Config File: shared/config/items.lua.
Printer Upgrades
Each 3D printer can be upgraded independently with five upgrade categories. Upgrades are installed by having the upgrade item in your inventory and using the upgrade interface while interacting with the printer.
Upgrade Categories
Nozzle
Reduces print time by increasing extrusion speed.
| Tier | Item | Speed Multiplier | PSU Required | Level Required |
|---|---|---|---|---|
| 0 (Stock) | - | 1.0x | - | - |
| Mk I | printer_nozzle_mk1 | 0.85x (15% faster) | None | 1 |
| Mk II | printer_nozzle_mk2 | 0.7x (30% faster) | PSU Mk I | 3 |
| Mk III | printer_nozzle_mk3 | 0.55x (45% faster) | PSU Mk II | 6 |
Storage Drive
Increases the number of blueprints a printer can hold simultaneously.
| Tier | Item | Blueprint Slots | PSU Required | Level Required |
|---|---|---|---|---|
| 0 (Stock) | - | 1 | - | - |
| Mk I | printer_storage_mk1 | 3 | None | 1 |
| Mk II | printer_storage_mk2 | 5 | PSU Mk I | 3 |
| Mk III | printer_storage_mk3 | 8 | PSU Mk II | 6 |
Cooling Fan
Reduces the chance of USB malfunction when loading blueprints.
| Tier | Item | Malfunction Reduction | PSU Required | Level Required |
|---|---|---|---|---|
| 0 (Stock) | - | 0% | - | - |
| Mk I | printer_cooling_mk1 | -10% | None | 1 |
| Mk II | printer_cooling_mk2 | -20% | None | 3 |
| Mk III | printer_cooling_mk3 | -30% | PSU Mk I | 6 |
Build Plate
Increases the quality bonus applied to printed parts and assembled weapons.
| Tier | Item | Quality Bonus | PSU Required | Level Required |
|---|---|---|---|---|
| 0 (Stock) | - | +0% | - | - |
| Mk I | printer_buildplate_mk1 | +3% | None | 2 |
| Mk II | printer_buildplate_mk2 | +6% | PSU Mk I | 4 |
| Mk III | printer_buildplate_mk3 | +10% | PSU Mk II | 7 |
Power Supply (PSU)
Required to support higher-tier upgrades. The PSU has no direct gameplay effect but gates other upgrades.
| Tier | Item | Level Required |
|---|---|---|
| Mk I | printer_psu_mk1 | 2 |
| Mk II | printer_psu_mk2 | 5 |
PSU Dependency Chain
Higher-tier upgrades require a sufficient PSU installed first. Without the required PSU, the upgrade will fail with an error message. Plan your upgrade path:
- Install PSU Mk I (level 2) to unlock Mk II upgrades for Nozzle, Storage, and Build Plate, and Mk III for Cooling
- Install PSU Mk II (level 5) to unlock Mk III upgrades for Nozzle, Storage, and Build Plate
Weapon Assembly
The weapon bench is where printed parts are combined into finished weapons. Each weapon has a defined recipe specifying which parts and quantities are needed.
Assembly Process
- Use a Weapon Bench item from inventory to enter placement mode
- Place the bench and interact via ox_target
- Select a weapon recipe from the assembly menu
- The bench verifies you have all required parts in your inventory
- Parts are consumed and a crafting animation plays
- The finished weapon is added to your inventory with quality metadata
Assembly Recipes
Weapons require different combinations of printed parts. Examples:
| Weapon | Parts Required | Craft Time |
|---|---|---|
| SNS Pistol | Slide + Grip + Magazine | 20s |
| Pistol | Slide + Grip + Magazine | 30s |
| AP Pistol | Slide + Grip + Magazine + Trigger Group | 45s |
| Assault Rifle | Upper + Lower + Barrel + Magazine + Stock | 60s |
| Heavy Sniper | Receiver + Barrel + Magazine + Stock + Long Scope | 90s |
| Combat MG | Upper + Lower + Barrel + Drum Mag + Stock + Trigger Group | 90s |
Assembly recipes are gated behind the same level requirements as blueprints — see the Progression section for the full unlock table.
Weapon Preview
During the assembly interface, a 3D model of the selected weapon is displayed on the bench with a configurable offset, giving players a preview of what they are building.
Quality System
Assembled weapons receive a quality grade that affects their durability and displayed metadata. Quality is determined by a combination of player level and build plate upgrades.
Quality Grades
| Grade | Quality Range | Level Gap |
|---|---|---|
| Poor | 20-30% | Level matches recipe requirement |
| Decent | 35-45% | 1 level above requirement |
| Standard | 50-60% | 2 levels above requirement |
| Quality | 65-75% | 3 levels above requirement |
| Superior | 80-90% | 4+ levels above requirement |
The "level gap" is the difference between your current level and the minimum level required for that weapon's assembly recipe. Building weapons well below your level produces higher quality results.
Experience Bonuses
Accumulated prints and assemblies grant progressive bonuses:
| Metric | Threshold | Bonus |
|---|---|---|
| Total prints | Every 50 prints | +2% quality per milestone |
| Total assemblies | Every 25 assemblies | +3% quality per milestone |
| Maximum bonus | - | +20% (capped) |
Weapon Durability
All 3D-printed weapons have a durability system. Weapons degrade with use and eventually break.
Degradation
Each shot fired reduces durability by 0.15% (configurable via Config.Durability.degradePerShot). At 0% durability, the weapon is destroyed and removed from inventory if Config.Durability.breakAtZero is enabled.
Weapon Jams
As durability decreases, the chance of a weapon jam increases:
| Durability Range | Jam Chance |
|---|---|
| 80-100% | 0% |
| 60-80% | 2% |
| 40-60% | 5% |
| 20-40% | 10% |
| 0-20% | 20% |
When a jam occurs, the player must perform an unjam animation lasting 3 seconds (configurable via Config.Durability.unjamTime) before the weapon can fire again.
Durability Display
The weapon's inventory tooltip shows the current durability and quality grade via a display metadata table:
3D Printed - Quality (72%) | Durability: 85%
Progression
The progression system tracks player XP and level, gating access to weapons, upgrades, and assembly recipes.
Levels and XP
| Level | XP Required | Cumulative XP | Unlocks |
|---|---|---|---|
| 1 | 0 | 0 | Basic Pistols & Placement |
| 2 | 200 | 200 | SMGs & Shotguns |
| 3 | 600 | 600 | Mk II Upgrades |
| 4 | 1,400 | 1,400 | Standard Rifles |
| 5 | 2,800 | 2,800 | Military Weapons |
| 6 | 5,000 | 5,000 | Mk III Upgrades |
| 7 | 8,500 | 8,500 | Sniper Rifles |
| 8 | 14,000 | 14,000 | Heavy Weapons & MGs |
| 9 | 22,000 | 22,000 | Exotic Weapons |
| 10 | 35,000 | 35,000 | Master Printer |
XP Rewards
| Action | XP Earned |
|---|---|
| Loading a USB into a printer | 5 |
| Completing a part print | 15 |
| Assembling a weapon | 30 |
Bad Luck Protection
There is a 10% chance for a "bad luck" event during weapon assembly, which reduces the assembled weapon's quality by 15 percentage points (minimum 5%). Both the chance and penalty are configurable via Config.Progression.badLuckChance and Config.Progression.badLuckPenalty.
Metadata Storage
Progression data is stored in player metadata under the weaponprinting key via o-link. The data includes:
level- Current levelxp- Current XP totaltotalPrints- Lifetime print counttotalAssembled- Lifetime assembly count
Placeable Equipment
3D Printer
- Item:
3d_printer - Model: Custom
prop_3d_printer - Max per player: 3 (configurable)
- Interaction: ox_target with 1.5m distance
- Persistence: Saved to database with coordinates, rotation, routing bucket, owner, name, and metadata
Weapon Bench
- Item:
weapon_bench - Model:
gr_prop_gr_bench_04b - Max per player: 2 (configurable)
- Interaction: ox_target with 1.5m distance
- Persistence: Saved to database with coordinates, rotation, routing bucket, owner, name, and metadata
Placeable Table
- Item:
placeable_table - Model:
bkr_prop_weed_table_01b - Max per player: 5 (configurable)
- Interaction: None (decoration/organization only)
- Persistence: Saved to database with coordinates, rotation, routing bucket, and owner
Ownership
When Config.RequireOwnership is true (default), only the player who placed a piece of equipment can pick it up. Equipment is returned to inventory on pickup.
Ghost Gunner's Handbook
The Ghost Gunner's Handbook (printer_manual) is a usable in-game guide item that opens an interactive book-style NUI. It provides players with a complete reference for the weapon printing system without needing to check external documentation.
Contents
The handbook is organized into 8 two-page spreads (16 pages total):
| Spread | Left Page | Right Page |
|---|---|---|
| 1 | Cover / Welcome | Getting Started |
| 2 | Blueprint USBs | Loading & Storage |
| 3 | Printing Parts | Print Tips |
| 4 | Printer Upgrades | Upgrade Tiers |
| 5 | Weapon Assembly | Assembly Tips |
| 6 | Quality & Durability | Jam Mechanics |
| 7 | Progression & XP | Level Chart |
| 8 | Pro Tips | Back Cover |
Usage
- Use the
printer_manualitem from your inventory to open the handbook - Navigate between pages using A (previous) and D (next) keys
- Press ESC to close
- Item images for all parts, upgrades, and equipment are displayed inline
- The handbook is included in the
/printer_kitadmin command
Obtaining
Players can obtain the handbook through:
- The
/printer_kitadmin command (includes 1x handbook) - Direct inventory addition via admin tools
- Custom shop/vendor configuration (add
printer_manualto any shop)
Floating Labels
Printers and benches display floating 3D labels above them showing status information. Labels are toggled with a configurable key (default: J / key code 74).
| Setting | Default | Description |
|---|---|---|
Config.Labels.toggleKey | 74 (J) | Key to toggle label visibility |
Config.Labels.maxDist | 5.0 | Maximum distance to see labels |
Config.Labels.heightOffset | 1.2 | Height above equipment |
Config.Labels.dataRefreshMs | 2000 | How often label data refreshes |
Safe Zones
Safe zones are configurable polygon areas where equipment placement is blocked. Define zones in Config.SafeZones as arrays of 2D points. Any attempt to place a printer, bench, or table inside a safe zone is rejected server-side.
Config.SafeZones = {
{
points = {
vec2(x1, y1),
vec2(x2, y2),
vec2(x3, y3),
vec2(x4, y4),
},
},
}
Next Steps
- Configuration - Customize all settings for your server
- Admin - Learn the admin commands for testing and management
- Troubleshooting - Common issues and solutions