Library Asset Reference
The library asset is a placeable storage container for experience points in Unturned™. A library functions as a physical bookcase or lectern that players interact with to deposit their accumulated XP for safekeeping, to withdraw XP when needed, or to access skill libraries and blueprint books stored within. Unlike item storage containers (lockers, crates, safes) that hold physical items, the library holds XP as a currency and may additionally grant skill unlocks or blueprint recipes to interacting players.
57 Studios™ has documented and validated the library asset configuration surface across the Unturned™ modding community. This article covers every .dat field that applies to library assets, the XP storage and taxation mechanics, the inheritance chain from the barricade asset class, the interaction between a library and the skill or blueprint system, and the folder structure required to deploy a functional library mod. The shared fields that appear on every item asset (ID, GUID, Rarity, Slot, Size_X, Size_Y) are documented in Item Asset Anatomy; this article focuses on the fields that are unique to the library subclass and the barricade inheritance path.

Documentation source: This article references the official Smartly Dressed Games modding documentation for field definitions and game behavior. The library asset type is documented in the SDG chapter on library assets, with barricade field inheritance tracing to the barricade asset chapter. Community-validated notes are marked where the official documentation is silent on a detail.
Who this article is for
This article is written for Unturned™ mod authors who have already completed at least one barricade-type or structure-type mod and are familiar with the asset bundle pipeline, .dat authoring workflow, and the workshop publishing process. If you are new to Unturned™ modding, start with Project Folder Structure and GUIDs and Item Asset Anatomy before returning here.
What you'll learn
- The library asset type and its inheritance from the barricade asset class
- The
Capacityfield and how it governs maximum stored XP - The
Taxfield and the percentage-based XP taxation mechanic - The folder and file structure for a library asset mod
- The full
.datfield reference for library assets, including inherited barricade fields - How a library interacts with the skill unlock and blueprint book system
- A worked
.datexample for a functional library mod - How to test a library asset in single-player before Workshop submission
How the library XP storage system works
The library runtime is driven by the ItemLibraryAsset class, which extends the ItemBarricadeAsset class. When a player approaches a placed library and presses the interaction key (default: F), the engine opens the library interface. The interface displays the current XP balance stored in the library and provides controls for depositing and withdrawing XP.
The flowchart above shows the fundamental deposit-withdraw cycle. The library acts as a bank for XP; players can store XP for later use, protecting it from death-related XP loss on servers that penalize death with XP reduction.
The XP taxation mechanic
When a player deposits XP into a library, the Tax field (expressed as a percentage) determines how much of the deposited XP is removed from circulation as a transaction cost. A library with Tax 10 deducts 10% of every deposit. If a player deposits 100 XP, 10 XP is taxed and 90 XP is added to the library's stored balance. Taxation is a server economy tuning lever; libraries on roleplay survival servers often carry a non-zero tax to create an XP sink, while single-player or creative server libraries typically set tax to zero.
The flowchart above illustrates how the Tax percentage is applied at deposit time. Withdrawals are not taxed; the full withdrawn amount returns to the player.
Library type inheritance chain
The library asset inherits from the barricade asset class, which itself inherits from the item asset class. This inheritance chain determines which fields are available to the library asset beyond its own unique fields.
The class diagram above shows the three-tier inheritance that defines a library asset. The ItemAsset layer provides identity, inventory, and display fields. The BarricadeAsset layer provides placement, health, and salvage fields. The ItemLibraryAsset layer provides the XP storage and taxation fields that are unique to libraries.
Skill library and blueprint book interaction
A library can be configured to grant skill unlocks or blueprint recipes when a player interacts with it. This is not controlled by the library's own .dat fields directly; instead, the library's reward table or quest reward system is used to define what the player receives. When a library is placed in the world and the player interacts with it, the engine checks whether the library is associated with a reward definition (via the quest system or the Reward_ID field inherited from the barricade class). If a reward is configured, the player receives the associated skill unlock or blueprint book upon first interaction.
The blueprint book and skill library mechanics require additional configuration files outside the library's primary .dat. The blueprint definitions themselves live in dedicated blueprint asset files (see Blueprint Asset Reference), and the library links to them through the reward system. The cohort recommendation for libraries that grant blueprints is to configure the library with a quest-style reward that triggers on first interaction and then treat subsequent interactions as standard XP deposit-withdraw operations.
File and folder structure
A complete library mod requires the following files:
Workshop/Content/304930/<modID>/
├── Bundles/
│ └── <BundleName>.unity3d ← master bundle containing the prefab
└── Items/
└── MyLibrary/
├── Asset.dat ← primary library configuration
└── English.dat ← display name and descriptionThe folder name, the .dat filename stem, and the internal Name field should all match. This is not enforced at runtime but divergence causes diagnostic confusion. The library prefab in the master bundle must be authored as a barricade-type Unity prefab with a collider and the appropriate interaction trigger for the library interface.
Complete .dat field reference
Identity and shared fields
The following shared fields are required on every item asset, including libraries. See Item Asset Anatomy for full documentation of these fields.
| Field | Type | Example | Notes |
|---|---|---|---|
ID | uint16 | 50050 | Unique item ID. Use 50000+ range. |
GUID | uint128 hex | a1b2c3d4e5f64a7b8c9d0e1f2a3b4c5d | 128-bit globally unique identifier. |
Type | enum | Library | Must be Library for this asset type. |
Name | string | MyLibrary | Internal name; also the prefab lookup key. |
Rarity | enum | Common | Rarity tier; see Rarity enum reference in Item Asset Anatomy. |
Slot | enum | None | Libraries are placeable barricades; they are not equipped to a player slot. |
Size_X | uint8 | 3 | Inventory grid width before placement. |
Size_Y | uint8 | 2 | Inventory grid height before placement. |
Bypass_ID_Limit | bool | True | Required for IDs above 2000. |
Useable and Build enum fields
| Field | Type | Required | Example | Purpose |
|---|---|---|---|---|
Useable | enum | Required | Barricade | Must be Barricade for library assets. The Barricade useable enables placement on buildable surfaces (foundations, floors, ground). |
Build | enum | Required | Library | Must be Library. This enum value signals to the engine that the placed object is a library container, causing it to register the library interaction interface and the XP deposit-withdraw system. |
Library-specific fields
| Field | Type | Required | Default | Example | Purpose |
|---|---|---|---|---|---|
Capacity | uint32 | Required | None | 10000 | The maximum amount of XP the library can store. Once the stored XP reaches this value, no further deposits are accepted until XP is withdrawn. The capacity is a hard limit enforced at the engine level. |
Tax | byte | Optional | 0 | 10 | The percentage of each deposit that is taxed (removed from circulation). A value of 10 means 10% of every deposit is consumed as a transaction fee. Values range from 0 to 100. |
Inherited barricade fields
The library asset inherits from ItemBarricadeAsset, meaning the following barricade-specific fields apply. These fields control placement behavior, structural health, and salvage mechanics.
| Field | Type | Required | Default | Example | Purpose |
|---|---|---|---|---|---|
HP | uint16 | Optional | 100 | 500 | The structural hit points of the placed library. When HP reaches zero, the library is destroyed and its stored XP is lost. |
Armor | float | Optional | 1.0 | 0.5 | Damage reduction multiplier applied to incoming damage. Values below 1.0 reduce damage; values above 1.0 increase damage taken. |
Range | float | Optional | 2.0 | 3.0 | The interaction range in meters from the player's position to the library's center. |
Salvage_Tool | enum | Optional | Blowtorch | Blowtorch | The tool type required to salvage the placed library. Standard barricade salvage tools include Blowtorch and Hammer. |
Salvage_Time | float | Optional | 5.0 | 3.0 | The time in seconds required to complete the salvage operation. |
Build_Tool | enum | Optional | Hammer | Hammer | The tool type required to construct the library during placement. |
Quest reward fields
Libraries that grant skill unlocks or blueprint books on first interaction use the quest reward system inherited from the barricade class.
| Field | Type | Required | Example | Purpose |
|---|---|---|---|---|
Reward_ID | uint16 | Optional | 2001 | The legacy spawn table ID or reward definition ID associated with this library. Used by the quest reward system to determine what the player receives on interaction. |
Quest_Rewards | uint16 | Optional | 1 | The number of quest reward entries. When paired with Quest_Reward_0, Quest_Reward_1, and so on, defines the specific reward items or blueprints granted. |
Worked .dat example: standard library
The following is a complete Asset.dat for a standard library that stores up to 10,000 XP with a 5% deposit tax.
ID 50050
GUID a1b2c3d4e5f64a7b8c9d0e1f2a3b4c5d
Type Library
Name BaseLibrary
Rarity Common
Slot None
Size_X 3
Size_Y 2
Bypass_ID_Limit True
Useable Barricade
Build Library
Capacity 10000
Tax 5
HP 300
Armor 0.8
Range 2.5
Salvage_Tool Blowtorch
Salvage_Time 5.0
Build_Tool HammerCompanion English.dat:
Name Base Library
Description A sturdy wooden library that stores up to 10,000 experience points with a 5% deposit tax.Worked .dat example: high-capacity library with blueprint granting
The following example configures a larger library with 50,000 XP capacity, zero tax, and quest rewards that grant a specific blueprint on first interaction.
ID 50051
GUID b2c3d4e5f6a74b8c9d0e1f2a3b4c5d6e
Type Library
Name GrandLibrary
Rarity Epic
Slot None
Size_X 4
Size_Y 3
Bypass_ID_Limit True
Useable Barricade
Build Library
Capacity 50000
Tax 0
HP 800
Armor 0.5
Range 3.0
Salvage_Tool Blowtorch
Salvage_Time 8.0
Build_Tool Hammer
Quest_Rewards 1
Quest_Reward_0 50100The Quest_Reward_0 value of 50100 references the item ID of a blueprint book or skill unlock item defined elsewhere in the mod project. When a player interacts with this library for the first time, they receive the item with ID 50100.
Worked .dat example: low-capacity kiosk library
A small, low-capacity library intended for quick XP deposits in PvP scenarios. Compact inventory size, high tax, low HP.
ID 50052
GUID c3d4e5f6a7b84c9d0e1f2a3b4c5d6e7f
Type Library
Name KioskLibrary
Rarity Common
Slot None
Size_X 2
Size_Y 1
Bypass_ID_Limit True
Useable Barricade
Build Library
Capacity 1000
Tax 15
HP 100
Armor 1.0
Range 2.0
Salvage_Tool Hammer
Salvage_Time 2.0
Build_Tool HammerXP storage balance considerations
The relationship between Capacity, Tax, and the server's XP economy is the primary tuning lever for library assets. The following table documents cohort-recommended starting values by server type.
| Server type | Recommended Capacity | Recommended Tax | Rationale |
|---|---|---|---|
| Single-player / creative | 100000+ | 0 | No XP sink needed; libraries function as long-term storage |
| PvE survival | 5000,15000 | 0,5 | Moderate XP storage with optional small tax as server currency sink |
| PvP survival | 2000,5000 | 5,15 | Lower capacity creates tension; tax reduces XP inflation |
| Roleplay economy | 1000,5000 | 10,25 | Higher tax as economic pressure; encourages continued play |
| Hardcore survival | 500,2000 | 20,50 | Very limited storage; high tax makes deposit a strategic decision |
The values above are starting points. Server economies vary widely, and the appropriate capacity and tax values for any given server are best determined iteratively through observation of player behavior after deployment.
Testing a library asset in single-player
- Place the library's master bundle and
.datfiles in the local Unturned™ install's mod folder:Workshop/Content/304930/<modID>/Bundles/andWorkshop/Content/304930/<modID>/Items/<LibraryName>/. - Launch Unturned™ in single-player mode.
- Open the in-game console with the tilde key (
~). - Spawn the library item:
@give <libraryID>. - Place the library on a foundation or the ground by dragging it from inventory to the world.
- Approach the placed library and press the interaction key (F). Confirm that the library interface opens.
- Deposit XP using the library interface controls. Confirm that the deposited amount appears in the library's stored balance.
- Verify that the
Taxpercentage was correctly applied to the deposit. A library withTax 10should deduct 10% of the deposited XP. - Withdraw XP from the library and confirm the XP returns to the player's skill point balance.
- Continue depositing until the stored XP reaches
Capacity. Confirm that no further deposits are accepted once the capacity is reached. - If quest rewards are configured, confirm that the first interaction grants the reward item and subsequent interactions do not.
Diagnostic table
| Symptom | Most likely cause | Resolution |
|---|---|---|
| Library does not open interaction interface | Build enum is not set to Library | Set Build Library in the .dat file |
| Library cannot be placed | Useable Barricade missing or incorrect | Set Useable Barricade in the .dat file |
| Deposit does not increase stored XP | Capacity reached or not set | Confirm Capacity is set to a positive value |
| Tax not applied to deposits | Tax field absent or set to 0 | Set Tax to the desired percentage (1,100) |
| Library destroyed in one hit | HP is too low or not set | Increase HP to a value appropriate for the server type |
| Blueprint not granted on interaction | Quest_Reward not configured | Add Quest_Rewards and Quest_Reward_N fields |
| Library prefab invisible after placement | Prefab name mismatch in master bundle | Confirm the prefab name matches the Name field |
| XP withdrawn but does not return to player | Engine error during withdraw operation | Check console for errors; verify game version compatibility |
| Library cannot be salvaged | Salvage_Tool set to incorrect tool | Set Salvage_Tool to Blowtorch or Hammer |
| Salvage takes too long or too fast | Salvage_Time value is inappropriate | Adjust Salvage_Time in seconds |
| Multiple libraries share the same XP pool | Each library has a unique capacity | Libraries store XP independently; pools do not merge |
| Tax deductions show incorrect percentage | Tax value is outside 0,100 range | Confirm Tax is a byte value between 0 and 100 |
Frequently asked questions
What happens to stored XP when a library is destroyed?
When a library's HP reaches zero, the library is destroyed and the stored XP is lost. There is no XP refund, no drop, and no recovery mechanism. Libraries placed in vulnerable locations (outdoor areas, unsecured bases) carry a risk of total XP loss on destruction. Players should treat the library as a high-value structure and defend it accordingly.
Can I deposit XP into a library that is at exactly Capacity?
No. The library rejects deposits when the stored XP equals or exceeds the Capacity value. The interface should indicate that the library is full. Players must withdraw XP before additional deposits are accepted.
Does the Tax affect withdrawals?
No. The Tax field applies only to deposits. Withdrawals return the full requested amount up to the available stored balance. Withdrawal taxation would require a server-side plugin; it is not configurable through the library's .dat file.
Can a player own multiple libraries?
Yes. Each library is an independent XP container. A player can place multiple libraries in their base and manage XP across them manually. Libraries do not share XP pools; each library tracks its own balance independently. This means a player could have a low-tax library for long-term savings and a high-tax library for short-term deposits.
What is the maximum value for Capacity?
The Capacity field is a uint32, meaning its maximum value is 4,294,967,295. In practice, a capacity above 1,000,000 is excessive for any non-creative server; the vanilla game's XP economy does not produce enough XP to fill such a large library in normal gameplay. Set Capacity to a value that is meaningful for the target server's XP economy.
How do I make a library that grants a skill point instead of a blueprint?
Skill point granting is not directly configurable through the library's .dat fields. The intended pattern is to configure the library with a quest reward that grants a consumable item (a skill book or training manual) which the player then uses to gain skill points. The skill-granting item itself is a separate asset with its own .dat configuration (typically a Food or Medical type with skill-restoring fields). The library acts as the delivery mechanism for that consumable item.
Can a library only grant a reward once per player?
The quest reward system that the library uses for blueprint and skill book granting is designed for one-time rewards per player. Once a player has received the reward from a library instance, subsequent interactions with that same library do not re-trigger the reward. This is the intended behavior for libraries that grant skill unlocks or blueprints as a first-discovery bonus.
Can I place a library on any surface?
Libraries are barricade-type placeables, meaning they follow barricade placement rules. The library can be placed on any valid barricade surface: a foundation, a floor, the ground (in areas where barricade placement is permitted), or a platform. Libraries cannot be placed on walls, ceilings, or other non-barricade surfaces unless the barricade placement rules are modified by a server plugin.
How does the library interact with the skill system?
The library is a storage container for XP (skill points). It does not directly interact with the skill tree UI or the skill leveling system. The player must withdraw XP from the library before spending it on skills. The library's role is purely storage; the skill advancement workflow remains unchanged: the player opens the skill menu and spends withdrawn XP on individual skills.
Does the library have a crate or storage model?
The library's visual appearance is controlled by the prefab in the master bundle. The SDG vanilla asset set provides a bookcase model, but modders can author any model as long as it has a collider and the interaction trigger components expected by the barricade interaction system. The model should clearly communicate that it is a library-type interaction point; a lectern, terminal, or safe could all serve as library models with appropriate visual design.
Can multiple players interact with the same library simultaneously?
Unturned™ does not enforce exclusive access to library interfaces. Multiple players can interact with the same library at the same time. Each player sees the current stored XP balance and can perform independent deposit and withdraw operations. The engine serializes writes to the library's XP balance, so concurrent deposits and withdrawals are handled without data corruption.
What happens to stored XP on server restart?
Stored XP is persisted as part of the placed barricade's save data. When the server saves (typically on a timer or on shutdown), the library's stored XP balance is written to the level's save file. On server restart, the library reloads with its previous stored balance. The one exception is if the library instance is removed from the save data due to a level reset or a map change; in that case, the stored XP is lost.
Best practices
- Author libraries with
Capacityvalues appropriate to the target server type. A library with 1,000,000 capacity on a survival server will never fill, making the capacity limit meaningless. - Set
Taxto zero for creative and single-player scenarios. Tax is an economy mechanic that has no purpose in non-economy contexts. - Use
Quest_Rewardsfor libraries that grant blueprints or skill books. Configure the reward item as a separate asset and reference it by ID. - Match the library's inventory
Size_XandSize_Yto the physical footprint of the prefab. A large bookcase model should occupy more inventory slots than a small lectern model. - Test tax calculations in single-player before deploying to a live server. The percentage-based calculation is straightforward but easy to misconfigure.
- Design library prefabs with a clear visual identity. Players should recognize a library-type object on sight without needing to hover over it for a label.
- Do not set
HPbelow 100 for a library intended to survive in PvP environments. Libraries are high-value targets; low HP makes them trivial to destroy. - Place libraries on foundations or secure platforms, not directly on the ground. Ground-level libraries are vulnerable to explosion damage from outside the base perimeter.
Advanced considerations
Libraries as quest objectives
Libraries can serve as quest objectives in scenario maps when combined with the quest system. A quest that requires the player to deposit a specific amount of XP into a named library, or to interact with a library at a specific location, creates an objective that engages with the XP economy. The quest definition is configured in the level's quest data, not in the library's .dat file; the library provides the interaction surface that the quest tracks.
Tax as an inflation-control mechanism
On persistent multiplayer servers, XP accumulates over time as players kill zombies, complete objectives, and earn passive rewards. Without an XP sink, the economy experiences inflation: every player has more XP than they can meaningfully spend, and skill point costs lose their pressure. Library tax functions as an XP sink that removes XP from circulation on each deposit. A server economy team should monitor the average player XP balance and adjust library tax rates accordingly. If the average XP balance is rising across the population, increasing the tax rate on new libraries or deploying low-capacity libraries creates additional sink pressure.
Combining libraries with roleplay professions
In roleplay server contexts, libraries can be restricted to specific player factions or professions through the server's plugin system. A library might be configured to accept deposits only from players with the Scholar or Librarian profession, or to apply different tax rates to different factions. These restrictions are enforced server-side through the plugin system, not through the .dat file. The .dat should be authored with base values reflecting the library's role in the economy; the plugin layer handles access control.
Libraries in custom maps vs. Workshop mods
A library that is part of a custom map is configured differently from a Workshop-mod library. In a custom map, the library is placed as a level object in the Unity Editor and the map's save data handles persistence. The .dat field configuration is identical, but the placement is baked into the map rather than deployed by the player. The cohort recommendation for custom map libraries is to use the same .dat field set as a Workshop-mod library and to place the library prefab in the map's level hierarchy.
Appendix A: Library .dat field quick reference
| Field | Type | Required | Default |
|---|---|---|---|
ID | uint16 | Yes | , |
GUID | uint128 | Yes | , |
Type | enum (Library) | Yes | , |
Name | string | Yes | , |
Rarity | enum | No | Common |
Slot | enum | Yes | None |
Size_X | uint8 | Yes | , |
Size_Y | uint8 | Yes | , |
Useable | enum (Barricade) | Yes | , |
Build | enum (Library) | Yes | , |
Capacity | uint32 | Yes | , |
Tax | byte | No | 0 |
HP | uint16 | No | 100 |
Armor | float | No | 1.0 |
Range | float | No | 2.0 |
Build_Tool | enum | No | Hammer |
Salvage_Tool | enum | No | Blowtorch |
Salvage_Time | float | No | 5.0 |
Bypass_ID_Limit | bool | No | , |
Quest_Rewards | uint16 | No | 0 |
Appendix B: Library XP economy tuning table
| Tuning scenario | Capacity | Tax | HP | Salvage_Time | Notes |
|---|---|---|---|---|---|
| Creative / admin | 1000000 | 0 | 10000 | 0.5 | Indestructible storage for admin use |
| Solo survival | 10000 | 0 | 300 | 3.0 | Standard single-player experience |
| Multiplayer PvE | 8000 | 3 | 400 | 5.0 | Moderate tax as gentle sink |
| Multiplayer PvP | 3000 | 10 | 500 | 7.0 | Higher tax, lower capacity for tension |
| Hardcore | 1000 | 25 | 200 | 4.0 | Aggressive economy pressure |
| Roleplay economy | 5000 | 15 | 600 | 6.0 | Balanced for economic roleplay |
| Faction treasury | 50000 | 0 | 2000 | 10.0 | Shared faction storage, 0 tax |
Appendix C: External references
| Resource | URL | Notes |
|---|---|---|
| Smartly Dressed Games modding documentation | https://docs.smartlydressedgames.com/en/stable/ | Official field reference; check for fields added in recent Unturned updates |
| Unturned on Steam | https://store.steampowered.com/app/304930/Unturned/ | Game changelog; changelog notes may reference barricade or economy system changes |
| Item Asset Anatomy | /items/item-asset-anatomy | Shared field reference for all item types |
| Blueprint Asset Reference | /items/blueprint-asset-reference | Blueprint and recipe configuration for library-granted items |
| Barricade Asset Reference | /items/barricade-asset-reference | Full barricade field reference; library inherits from barricade class |
Appendix D: Library mod authoring checklist
Before publishing a library mod to the Steam Workshop, confirm the following:
- [ ]
Type Libraryis present and correct - [ ]
Useable Barricadeis set - [ ]
Build Libraryis set - [ ]
Capacityis set to a positive value appropriate for the target server type - [ ]
Taxis set to the intended percentage (0,100) - [ ]
HP,Armor, andRangeare tuned for the intended gameplay context - [ ]
Salvage_ToolandBuild_Toolmatch the intended tool type - [ ]
Bypass_ID_Limit Trueis present for IDs above 2000 - [ ] GUID is fresh, not copied from another asset
- [ ] ID is in the 50000+ range
- [ ] Master bundle contains the library prefab with collider and interaction trigger
- [ ]
English.datis authored withNameandDescriptionfields - [ ] Tested in single-player: place, interact, deposit, withdraw, salvage
- [ ] If quest rewards are configured, test that the reward is granted on first interaction
- [ ] Workshop description documents the library's capacity, tax rate, and intended role
Document history
| Version | Date | Author | Notes |
|---|---|---|---|
| 1.0 | 2026-07-26 | 57 Studios | Initial publication. Full library asset .dat field reference, XP economy mechanics, inheritance chain, worked examples, diagnostic table, tuning guide. |
Cross-references
- Map Asset Reference , the previous article in this section.
- Tool Asset Reference , the next article; covers the tool asset type and its Useable-driven configuration.
- Item Asset Anatomy , the shared field reference; documents the identity and inventory fields that libraries share with all item types.
- Blueprint Asset Reference , blueprint and recipe configuration for library-granted items.
- Barricade Asset Reference , the barricade asset class that library inherits from.
- Smartly Dressed Games modding documentation , official field reference.
- Unturned on Steam , game page and community.
