ItemPMT item parameter table

← Back to Home

ItemPMT (Item Parameter Table) is the item parameter table shared by the PSO client and server. For every weapon, frame, barrier, unit, Mag and consumable, it defines base stats, name indexes, equipment requirements, descriptions and appearance models. ItemPT and ItemRT determine when items drop and at what probability; they consult ItemPMT for the detailed parameters of the item itself.

Overview

ItemPMT is the game’s item dictionary. Given an item ID, it supplies:

  • Display name (an index into TextEnglish/TextJapanese)
  • Model and texture
  • Category (weapon/frame/barrier/unit/Mag/consumable/Technique/Photon Drop…)
  • Base stats (weapon ATP/ATA, frame DFP/EVP, barrier resistances…)
  • Equipment restrictions (class flags, ATP/MST/ATA and level requirements)
  • Grind limit, star rarity, whether the item can be sold and base sale price

This table is used when the client reads saved items, when players inspect item details and when the server checks equipment eligibility.

Files and versions

ItemPMT is a PRS-compressed binary file, with different versions for different PSO releases:

  • ItemPMT-bb-v4.prs — official PSOBB / Ephinea
  • ItemPMT-gc-v3.prs — GameCube (Episode I & II)
  • ItemPMT-gc-ep3.prs — Episode III card game
  • ItemPMT-xb-v3.prs — Xbox
  • ItemPMT-pc-v2.prs — PC v2
  • ItemPMT-dc-v1.prs / ItemPMT-dc-v2.prs — Dreamcast v1/v2
  • There are also NTE (Network Trial Edition) and November 2000 prototype versions.

Weapons

Weapon fields fall into three broad groups:

Identity and classification

  • ID: unique item number, also selecting the name text index
  • Model / Texture: 3D model and texture
  • Type / Subtype: parent type and subtype, such as Saber/Brand/Buster within the saber family
  • Class Flags: eligible classes, one bit for each of the 12 classes (HUmar/HUnewearl/HUcast/…)

Combat fields

  • ATP Min / ATP Max: base ATP range; the actual value is random within this range
  • ATA: weapon ATA bonus
  • Max Grind: maximum grind (+9 means 9)
  • Photon: photon type, determining melee/ranged/Technique category and combo behaviour
  • Special: default special ID (references Special attack table)

Equipment requirements

  • ATP Required: minimum ATP to equip
  • MST Required: minimum MST to equip
  • ATA Required: minimum ATA to equip

Frames (Armor / Frame) and barriers (Shield / Barrier)

Frames and barriers share a structure but are stored in separate subtables. Each entry contains:

  • DFP / EVP: base defence and evasion, with a min–max range for random variation
  • Class Flags: eligible classes
  • Required level: minimum level to equip
  • Maximum DFP / EVP bonus: maximum increase through frame upgrades (frame +N)
  • Unit slots: always 0 for barriers; 0–4 for frames (rare frame slots are selected by ItemPT, not fixed)
  • Five elemental resistances: EFR / EIC / ETH / EDK / ELT (fire/ice/lightning/dark/light)

Units

Unit entries are relatively simple:

  • Class Flags: eligible classes
  • Stat Bonus: the stat and amount added (HP, TP, ATP, DFP, ATA, EVP, LCK, MST…)
  • Plus/minus threshold: units marked with / signs (such as HP/Restorate, HP/Resurrect): activation chance or cooldown
  • Star rarity: determines common versus rare units

Some units use behavioural checks rather than numeric bonuses, such as Smartlink, V501/V502, Trap Vision. Their effects are hard-coded by item ID rather than stored as numeric fields in ItemPMT.

Mags

Mag parameters are a distinctive part of ItemPMT. Each Mag entry contains:

  • Model ID: evolved appearance, dependent on DEF/POW/DEX/MIND and the owner’s class group
  • Photon point cost (feed table): stat changes and amounts for each food item
  • Photon Blast group combinations: which PBs can occupy the three slots

The Mag feeding rules form a large table in ItemPMT: 8 feeding tables × 11 foods; each Mag type points to one of the tables, and each cell specifies changes to DEF/POW/DEX/MIND/SYNC/IQ.

Consumables (Tools)

Tool entries are the simplest, primarily containing:

  • ID and Name index
  • Use effect ID (the game handles healing, status recovery, teleporting and so on by ID)
  • Stack limit (Stack Max): maximum per inventory slot; for example, recovery items and Sol Atomizer stack to 10, Photon Drop to 99.
  • Can be sold / Base sale price
  • Star rarity: for example, AddSlot is a consumable with a star rating

Technique disks belong to Tools but have a different small structure: Technique ID plus level, with a fixed stack limit of 1.

Special attack table

Weapon specials (Charge / Spirit / Berserk / Geist / Hell / Demon’s / Arrest / Chaos / Blizzard / Burning…) have their own table referenced by ID in ItemPMT. Each entry includes:

  • Name index (“Charge”, “Berserk”, etc.)
  • Star rarity: common-weapon special generation rolls a star tier, then selects an ability in that tier
  • Activation parameters: chance, cost (MST/HP/etc.) and additional damage

Where do common-weapon specials come from?
Instead of reading a weapon’s Special field directly, ItemPT generates a star tier (0–5) based on area, then selects a matching entry in ItemPMT. So a weapon found in the Mines may carry a 1★ Draw, while the same model found in the Ruins may carry a 4★ Gush: the available pool differs by area.

Other subtables

Alongside the main item entries, ItemPMT has smaller auxiliary tables for various game systems:

Combining and upgrading (Item Combination Table)

Recipes record used item × equipped target × result, with additional constraints:

  • Required Mag level, weapon grind, character level and class
  • Example uses: converting Photon Drop into Photon Sphere, or upgrading a weapon with a specific tool

This table is not the attack combo table. PSO’s N-N-H / N-H-H sequence modifiers are hard-coded in the client. The only combo-related ItemPMT field is each weapon’s one-byte behavior_flags, whose bits include a combo prohibition flag (some weapons can attack only once per sequence).

Tech Boost Table

Technique damage or range bonuses on canes and related weapons. Examples include Psycho Wand, which gives Rafoie / Rabarta / Razonde +30% damage, and Glide Divine, which gives Jellen / Zalure +100% range. A weapon’s tech_boost field points to this table.

Special Data / Weapon Effect / Shield Effect

  • Special Data Table: parameters for all specials (Charge/Berserk/Hell/Demon’s…), as described above.
  • Weapon Effect Table: passive effects of equipped weapons, such as HP absorption or resistances.
  • Shield Effect Table: passive effects on barriers, such as regeneration and additional rare-barrier effects.
  • Ranged Special Table: ranged-weapon special behaviour; some specials behave differently on ranged weapons.

Stat Boost Table

Actual bonus data referenced by units. The unit stores a boost ID; this table supplies the stat and amount.

Max Tech Level Table

Technique level caps for each class. For example, Forces can learn Lv30 Rafoie while Hunters are described here as capped at Lv15. Disks above a class’s cap cannot be used.

Photon Color / Weapon Range / Star Value

  • Photon Color Table: photon blade colours, with an RGB combination for each photon type.
  • Weapon Range Table: weapon attack reach and hit-range parameters.
  • Star Value Table: maps item IDs to star ratings, determining the ☆ count beside item names.

Unsealable / Unwrap

  • Unsealable Table: the result of unsealing weapons such as Sealed J-Sword, Lame d'Argent .
  • Unwrap Table: possible contents of gift boxes such as Christmas Present and Easter Egg.

Sale Divisor / V1 Replacement

  • Weapon Sale Divisor / Non-Weapon Sale Divisor: item-specific divisors used to calculate shop sale prices.
  • V1 Replacement Table: replaces PSO v1 item IDs with their BB equivalents.

Data structures

The structures below describe PSOBB (V4) ItemPMT. V1/V2/V3 and DC/GC/XB layouts differ slightly but serve the same purposes. Offsets are hexadecimal byte offsets.

Top-level offset table TableOffsetsV3V4

At the top of the decompressed ItemPMT, each field is a four-byte offset to a subtable. The BB client reads it at startup to locate the other tables.

OffsetFieldTypeDescription
0x00weapon_tableu32Weapon table → [{count, offset → [WeaponV4]}] (0xED entries)
0x04armor_tableu32Frame/barrier tables (armors and shields)
0x08unit_tableu32Unit table → [UnitV4]
0x0Ctool_tableu32Tool table → [{count, offset → [ToolV4]}] (0x1A entries)
0x10mag_tableu32Mag table → [MagV4]
0x14v1_replacement_tableu32PSO v1 → BB item ID replacement table
0x18photon_color_tableu32Photon colours (0x20 types, 0x24 bytes each)
0x1Cweapon_range_tableu32Weapon range/hit-area table
0x20weapon_sale_divisor_tableu32Weapon sale price divisors → [float]
0x24sale_divisor_tableu32Non-weapon sale price divisors
0x28mag_feed_tableu32Mag feeding table
0x2Cstar_value_tableu32Item ID → star rating (☆ count), 0x330 entries
0x30special_data_tableu32Special definitions → [Special]
0x34weapon_effect_tableu32Weapon passive effects (0x10 bytes each)
0x38stat_boost_tableu32Unit bonus data → [StatBoost]
0x3Cshield_effect_tableu32Barrier passive effects (8 bytes each)
0x40max_tech_level_tableu32Technique level caps per class
0x44combination_tableu32Combination/upgrade recipes → [ItemCombination]
0x48unknown_a1u32Unknown
0x4Ctech_boost_tableu32Technique bonuses → [TechniqueBoost × 3]
0x50unwrap_tableu32Gift box contents
0x54unsealable_tableu32Unsealed weapon results
0x58ranged_special_tableu32Ranged special behaviour

Base item structure ItemBaseV4

The first 12 bytes of every weapon, frame, unit, Mag and tool entry form this shared header:

OffsetFieldTypeDescription
0x00idu32Item ID (also the name text string index)
0x04typeu16Model number (client .nj model ID)
0x06skinu16Texture number
0x08team_pointsu32Team point value

Weapons WeaponV4 (0x2C bytes)

OffsetFieldTypeDescription
0x00baseItemBaseV4Base header (0x0C bytes)
0x0Cclass_flagsu16Equip-class bitmap for 12 classes (default 0x00FF, all enabled)
0x0Eatp_minu16Minimum base ATP
0x10atp_maxu16Maximum base ATP (actual value varies between min and max)
0x12atp_requiredu16Minimum ATP required
0x14mst_requiredu16Minimum MST required
0x16ata_requiredu16Minimum ATA required
0x18mstu16Weapon MST bonus
0x1Amax_grindu8Maximum grind (+9 means 9)
0x1Bphotonu8Photon type (melee/ranged/Technique)
0x1Cspecialu8Default special ID (index into special_data_table)
0x1Datau8ATA bonus
0x1Estat_boost_entry_indexu8Index into stat_boost_table
0x1Fprojectileu8Ranged weapon projectile ID
0x20trail1_x / yi8×2Weapon trail start offset
0x22trail2_x / yi8×2Weapon trail end offset
0x24colori8Colour index into photon_color_table
0x25unknown_a1u8×3Unknown
0x2Atech_boostu8Technique boost index into tech_boost_table
0x2Bbehavior_flagsu8Behaviour bits: 0x01 no combos / 0x08 no attributes

Frames & barriers ArmorOrShieldV4 (0x20 bytes)

OffsetFieldTypeDescription
0x00baseItemBaseV4Base header
0x0Cdfpu16Base DFP
0x0Eevpu16Base EVP
0x10block_particleu8Block particle effect ID
0x11block_effectu8Block effect ID
0x12class_flagsu16Eligible-class bitmap
0x14required_levelu8Required level
0x15efru8Fire resistance
0x16ethu8Lightning resistance
0x17eicu8Ice resistance
0x18edku8Dark resistance
0x19eltu8Light resistance
0x1Adfp_rangeu8Maximum additional DFP (+N limit)
0x1Bevp_rangeu8Maximum additional EVP
0x1Cstat_boost_entry_indexu8stat_boost_table index
0x1Dtech_boostu8Technique bonus index (into tech_boost_table)
0x1Eflags_typeu8Behaviour flags (frame 0x01; barrier 0x01/0x02/0x03, etc.)

Units UnitV4 (0x14 bytes)

OffsetFieldTypeDescription
0x00baseItemBaseV4Base header
0x0Cstatu16Primary stat type (StatBoost codes 01–0F, e.g. 01=ATP)
0x0Estat_amountu16Primary stat bonus value
0x10modifier_amounti16Activation threshold or cooldown for units such as HP/Restorate
0x12unusedu8×2Padding

Mags MagV4 (0x1C bytes)

OffsetFieldTypeDescription
0x00baseItemBaseV4Base header
0x0Cfeed_tableu16Feeding response index into mag_feed_table
0x0Ephoton_blastu8Default Photon Blast ID
0x0Factivationu8Base event activation probability
0x10on_pb_fullu8Event ID when PB is full
0x11on_low_hpu8Event ID at low HP
0x12on_deathu8Event ID on death
0x13on_bossu8Event ID on entering a boss room
0x14on_pb_full_flagu80–4 selects the probability formula in combination with synchro
0x15on_low_hp_flagu8As above
0x16on_death_flagu8As above
0x17on_boss_flagu8As above
0x18class_flagsu16Eligible-class bitmap
0x1Aunusedu8×2Padding

Mag event chance: first convert synchro into step_synchro (tiers of 0/15/25/30/35…), then select the formula by flag: flag=0 uses activation; flag=1 uses activation + step_synchro; flag=2 uses step_synchro…

Consumables ToolV4 (0x18 bytes)

OffsetFieldTypeDescription
0x00baseItemBaseV4Base header
0x0Camountu16Amount/effect value (HP restored for mates, Technique level for disks)
0x0Etechu16Technique ID for Technique tools
0x10costi32Shop price
0x14item_flagsu32Bit flags: 0x01 usable / 0x08 android-usable / 0x10 usable in town / 0x20 usable in boss rooms / 0x40 usable in Challenge / 0x80 rare

Special attack Special (4 bytes)

OffsetFieldTypeDescription
0x00typeu16Special type ID (Charge/Spirit/Berserk/Hell…)
0x02amountu16Special strength (chance, extra damage, etc.)

Stat bonus StatBoost (6 bytes)

Units, weapons and frames reference an entry via stat_boost_entry_index . Each record can hold two stat bonuses, but Sega changed the loop after the November 2000 DC build to read only one, so only the first is effective.

OffsetFieldTypeDescription
0x00stats[0..1]u8×2Two stat type IDs (see below)
0x02amounts[0..1]u16×2Corresponding bonus values

Stat type IDs:

ValueMeaningValueMeaning
0x01ATP+0x09ATP−
0x02ATA+0x0AATA−
0x03EVP+0x0BEVP−
0x04DFP+0x0CDFP−
0x05MST+0x0DMST−
0x06HP+0x0EHP−
0x07LCK+0x0FLCK−
0x08All + (except HP)0x10All − (except HP)

Combination recipe ItemCombination (0x10 bytes)

OffsetFieldTypeDescription
0x00used_itemu8×3Used tool ID (data1[0..2])
0x03equipped_itemu8×3Equipped target item ID
0x06result_itemu8×3Resulting item ID
0x09mag_levelu8Required total Mag level
0x0Agrindu8Required target weapon grind
0x0Blevelu8Required character level
0x0Cchar_classu8Class restriction
0x0Dunusedu8×3Padding

Mag feeding result MagFeedResult (8 bytes)

Each of the 8 feeding tables lists the 11 foods. Each cell is a MagFeedResult:

OffsetFieldTypeDescription
0x00defi8DEF change
0x01powi8POW change
0x02dexi8DEX change
0x03mindi8MIND change
0x04iqi8IQ change
0x05synchroi8Synchro change
0x06unusedu8×2Padding

Related pages