SROCodex
ironsro

Why this reference

Every drop rate and respawn timer you have seen for this game was a guess — someone killed a thing a few hundred times and posted a number. Those numbers are in the server's own tables. This page says which ones we read, which ones we worked out and how, and which ones we do not have.

Where the data comes from

The shard database

primary

A restored vSRO shard database: 211 tables, 2,177 columns, 395 stored procedures. It is richer than the client — 18,250 item rows against the client's 13 625 — and it is the only place drops, spawns, shops and sieges exist at all.

The client archives

names and pictures

Media.pk2 and Data.pk2, read directly. The database stores no readable name — only string ids — so every name, description, mastery and region name on this site comes from here, along with 5,789 icons and 2920 3D models.

db:IRONSRO_SHARD · client:IronSro v3.2 · pack v3 · baked 19 days ago · 40,367 English strings of 41,166

Read, not derived

13 kinds
WhatWhere it comes from
Item stats, ranges and requirements_RefObjItem joined on _RefObjCommon.Link
Monster HP, defences, experience_RefObjChar
Skill levels, timing, targets, raw params_RefSkill
Spawn points and radiiTab_RefNest
Respawn windowsTab_RefNest.dwDelayTimeMin / dwDelayTimeMax— milliseconds, straight from the row
Champion spawn chanceTab_RefNest.nChampionGenPercentage
Assigned drop chances_RefMonster_AssignedItemDrop.DropRatio— already a probability, 0..1
Gold drops by level_RefDropGold
Monster behaviourTab_RefTactics
Shop stock and prices_RefShopGoods → _RefPricePolicyOfItem
Experience and job curves_RefLevel
Names, descriptions, mastery names, region namesclient Media.pk2 textdata
Skill window layout_RefSkill.UI_SkillTab / Page / Column / Row

Computed — and by what

9 quantities

Each of these shows its formula on the page where it appears, not just its result. Where a number has not been checked against a live shard, it is labelled unverified there too.

QuantityFormulaBasis
Class drop chanceClassSel[monsterLevel][group] × Prob_Relative / Σ Prob_Relative in group_RefDropClassSel_* + _RefDropItemAssignunverified
Drop group for equipmentgroup = _RefObjItem.ItemClass (not AssignedGroup, which is −1)checked against _RefDropClassSel_Equip.ProbGroup1..31checked
Degreedegree = (ItemClass − 1) ÷ 3 + 12 415 of 2 416 equipment rows agree with their codenamechecked
Plus level statsstat = base + Inc × plus_RefObjItem.PDInc / PAttackInc / HRInc …checked
Magic Pop oddschance = Ratio ÷ Σ Ratio within the same set_RefGachaItemSetchecked
Opcode directionhigh nibble of the opcode; a declared direction always wins121 of 123 declared directions agree; the 2 that do not are shown as unsettledchecked
Skill param codesbig-endian four-letter code packed into 32 bits6 000 skills decoded both ways — one direction gives words, the other noisechecked
Training spot rankingΣ (spawn count × expToGive × 3 600 ÷ mean respawn seconds), shown relativeTab_RefNest + _RefObjCharunverified
Damagesee /mechanics/damage — read from SR_GameServer.exe with RVA referencesGhidra 11.2.1 headless over the 2013-09-11 binaryunverified

What is missing

AreaWhy
drops.verifiedClass drop chances are computed from ClassSel x SelectRatio and have not been checked against a live shard.
descriptions4107 of 18250 items carry a description — the client's string tables have no text for the rest.
  • · No live-shard check yet. Computed drop chances and respawn windows have not been compared against a running server. Until they are, they carry the unverified label wherever they appear.
  • · 518 icons do not exist in this client. The database describes 18,250 items; the client shipped far fewer. Those pages show a placeholder rather than a broken image.
  • · Most items have no description. The client's string tables carry English tooltip text for roughly one item in six. The rest have stats and nothing else, and inventing flavour text would be the one thing this site should not do.
  • · Byte layouts for opcodes. 514 opcodes are catalogued with direction and provenance, but the field-by-field layout lives inside parser code in each project and has not been transcribed.

How this is different

The scene infers these figures from watching the game. We read them out of the tables the server reads them from. Where we could not — where a number had to be worked out — the working is on the page next to the answer, and where the working has not been checked, the page says so instead of rounding the doubt away.

Found something wrong?

A wrong number here is worse than a missing one, because someone will use it. If you can show a figure on this site disagreeing with a live server, that is the most useful thing you can send — and the fix will appear in the changelog, not silently.