@gemwright/ai 0.0.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/Dockerfile +12 -0
  2. package/README.md +82 -1
  3. package/catalogs/aggressive-bodies.json +1 -0
  4. package/catalogs/crafts/alchemy.json +22 -0
  5. package/catalogs/crafts/blacksmith.json +110 -0
  6. package/catalogs/crafts/bowcraft.json +13 -0
  7. package/catalogs/crafts/carpentry.json +105 -0
  8. package/catalogs/crafts/inscription.json +67 -0
  9. package/catalogs/crafts/tailoring.json +72 -0
  10. package/catalogs/crafts/tinkering.json +61 -0
  11. package/catalogs/dungeons/covetous.json +1 -0
  12. package/catalogs/dungeons/deceit.json +1 -0
  13. package/catalogs/dungeons/despise.json +1 -0
  14. package/catalogs/dungeons/destard.json +1 -0
  15. package/catalogs/dungeons/fire.json +1 -0
  16. package/catalogs/dungeons/hythloth.json +1 -0
  17. package/catalogs/dungeons/ice.json +1 -0
  18. package/catalogs/dungeons/khaldun.json +1 -0
  19. package/catalogs/dungeons/misc-dungeons.json +1 -0
  20. package/catalogs/dungeons/orc-cave.json +1 -0
  21. package/catalogs/dungeons/shame.json +1 -0
  22. package/catalogs/dungeons/terathan-keep.json +1 -0
  23. package/catalogs/dungeons/wrong.json +1 -0
  24. package/catalogs/house-lots.json +86 -0
  25. package/catalogs/hunting-grounds.json +10071 -0
  26. package/catalogs/magery-spells.json +697 -0
  27. package/catalogs/monsters.json +1 -0
  28. package/catalogs/prices.json +466 -0
  29. package/catalogs/tamables.json +864 -0
  30. package/catalogs/taming-grounds.json +2198 -0
  31. package/dist/index.js +55289 -0
  32. package/dist/life-journal-worker.js +469 -0
  33. package/dist/load-test.js +55098 -0
  34. package/dist/path-worker.js +1384 -0
  35. package/dist/persistence-worker.js +16503 -0
  36. package/dist/progress-report.js +182 -0
  37. package/dist/report.js +163 -0
  38. package/dist/serve.js +62078 -0
  39. package/locations/ankhs.json +91 -0
  40. package/locations/areas.json +760 -0
  41. package/locations/cobblers.json +148 -0
  42. package/locations/escorts.json +115 -0
  43. package/locations/forges.json +18 -0
  44. package/locations/locations.json +1501 -0
  45. package/locations/new-haven.json +522 -0
  46. package/locations/route-corridors.json +1 -0
  47. package/locations/services-guide.json +1329 -0
  48. package/locations/services.json +144 -0
  49. package/locations/teleporters.json +38 -0
  50. package/locations/vendors.json +1503 -0
  51. package/package.json +39 -3
  52. package/railway.json +6 -0
  53. package/start.sh +36 -0
  54. package/templates/archetypes-new-haven.json +38 -0
  55. package/templates/archetypes.json +274 -0
  56. package/templates/population.example.json +123 -0
  57. package/tuning.json +17 -0
  58. package/world/names.json +4055 -0
  59. package/world/world.json +743 -0
package/Dockerfile ADDED
@@ -0,0 +1,12 @@
1
+ FROM oven/bun:1.4.3
2
+ WORKDIR /app
3
+ COPY dist/ ./dist/
4
+ COPY catalogs/ ./catalogs/
5
+ COPY locations/ ./locations/
6
+ COPY templates/ ./templates/
7
+ COPY world/ ./world/
8
+ COPY tuning.json start.sh ./
9
+ ENV NODE_ENV=production
10
+ ENV AI_DATA=/app/data
11
+ RUN chmod +x /app/start.sh
12
+ CMD ["/app/start.sh"]
package/README.md CHANGED
@@ -1 +1,82 @@
1
- # @gemwright/ai
1
+ # <img src="https://cdn.jsdelivr.net/npm/gemwright@latest/.github/small-forge.png" align="left" alt="Forge your own shard" width="50" height="50" /> Gemwright — Forge your own shard
2
+
3
+ ## The loop
4
+
5
+ ```txt
6
+ perception → goal/planning → profession loops → action arbiter → network
7
+ ```
8
+
9
+ ## Usage
10
+
11
+ Requires Bun 1.4.3 or newer.
12
+
13
+ ```sh
14
+ npm install @gemwright/ai
15
+ cd node_modules/@gemwright/ai
16
+ bun dist/index.js --help
17
+ ```
18
+
19
+ ```text
20
+ Gemwright AI runtime and headless player sessions
21
+
22
+ Run from the AI package directory after building:
23
+ bun dist/index.js archetypes
24
+ bun dist/index.js validate --config templates/population.example.json
25
+ bun dist/index.js plan --config templates/population.example.json
26
+ bun dist/index.js reconcile --config templates/population.example.json
27
+ bun dist/index.js residents --config templates/population.example.json
28
+ bun dist/index.js decisions --config <population.json>
29
+ bun dist/index.js skills --config <population.json>
30
+ bun dist/index.js dungeons --config <population.json>
31
+ bun dist/index.js session --config <population.json> --connection <connection.json>
32
+ bun dist/index.js population --config <population.json> --connection <connection.json> --assets <dir> --duration <s>
33
+
34
+ Options:
35
+ --config <path> Required, explicit population configuration
36
+ --db <path> Default: data/<shardId>/residents.sqlite (relative to this module)
37
+ --help Show this help
38
+
39
+ Session options:
40
+ --connection <path> Required endpoint/profile configuration
41
+ --resident <id> Default: first desired active resident
42
+ --create-character Explicitly allow local credentials and normal account/character creation
43
+ --shard <path> The shard's gemwright.json (expansion, account settings); ServUO only
44
+ --speech claude Replies in each resident's own voice (Claude Haiku 5.5; needs ANTHROPIC_API_KEY)
45
+ --exercise Walk, speak, open the backpack, and target with a miner's tool
46
+ --reconnect Disconnect and verify the same character can reconnect
47
+ --reconnect-attempts Recovery budget during observation, default 3, maximum 10
48
+ --duration <seconds> Observe after entry/exercise, default 5, maximum 3600
49
+ --decisions <path> Optional Jev/local decision configuration (behavior sessions only)
50
+ --fighter-assets <path> Run the Britain graveyard swordsman using public Trammel client assets
51
+ --miner-assets <path> Run the Minoc miner behavior using public Trammel client assets
52
+
53
+ Population options (all desired-active residents in one process, one shard lease):
54
+ --assets <path> Public Trammel client assets; each template's activities pick miner or fighter
55
+ --stagger <seconds> Delay between resident logins, default 20
56
+ --limit <count> Run only the first N desired-active residents
57
+ (also --connection, --create-character, --reconnect-attempts, --duration, --decisions)
58
+
59
+ reconcile persists desired residents; it does not create accounts or log anyone in.
60
+ residents displays local intentions, not actual online population.
61
+ decisions summarizes each resident's provider choices against the deterministic baseline.
62
+ dungeons summarizes recorded dungeon runs: solo runs, parties assembled or abandoned, and how they ended.
63
+ ```
64
+
65
+ Resident service:
66
+
67
+ ```sh
68
+ AI_DATA=/path/to/data UO_HOST=127.0.0.1 GEMWRIGHT_SHARD="$(cat /path/to/gemwright.json)" bun dist/serve.js
69
+ ```
70
+
71
+ ```text
72
+ AI_DATA Persistent directory, including assets/ (default: /app/data)
73
+ UO_HOST ServUO endpoint (required)
74
+ UO_PORT Server port (default: 2593)
75
+ GEMWRIGHT_SHARD Shard configuration JSON (required)
76
+ TYPESAFE_API_KEY Required when ai.decisions is jev
77
+ ANTHROPIC_API_KEY Required when ai.speech is claude
78
+ ```
79
+
80
+ ## License
81
+
82
+ MIT
@@ -0,0 +1 @@
1
+ {"schemaVersion":1,"source":"ServUO Scripts/Mobiles FightMode","bodies":[1,7,8,9,11,12,13,14,15,16,17,18,20,21,22,23,24,28,30,31,35,36,39,40,42,43,46,47,48,51,52,53,54,55,57,59,60,61,62,66,67,70,71,72,73,75,76,77,78,79,80,83,85,86,87,89,90,92,94,98,104,106,107,108,109,110,111,112,113,122,123,124,125,126,127,129,130,131,135,138,140,142,143,146,148,149,150,152,153,154,155,157,158,159,161,162,163,166,175,176,181,182,184,185,186,189,196,197,199,202,206,215,240,241,244,245,246,247,249,251,253,255,256,257,258,259,260,261,262,263,264,265,266,267,273,280,281,287,293,300,303,304,306,307,308,309,310,311,312,313,314,315,316,317,318,319,334,637,692,714,717,718,719,720,721,722,723,724,726,728,729,730,732,733,734,735,736,737,738,740,741,752,753,754,756,757,764,765,766,767,768,773,775,776,777,778,779,780,781,782,783,784,785,787,789,790,792,805,806,807,826,829,970,1415,1417,1419,1422,1423,1424,1425,1426,1511],"shared":{"3":{"names":["a zombie"],"hostile":true},"4":{"names":["a gargoyle","a gargoyle shade","an effete putrid gargoyle"],"hostile":true},"5":{"names":["vicious macaw"],"hostile":true},"26":{"names":["a shade","a spectre","a wraith"],"hostile":true},"50":{"names":["a skeleton"],"hostile":true},"56":{"names":["a skeleton"],"hostile":true},"58":{"names":["ortanord"],"hostile":true},"74":{"names":["an anzuanord","an imp"],"hostile":true},"101":{"names":["sagittarri"],"hostile":true},"103":{"names":["a serpentine dragon"],"hostile":true},"128":{"names":[],"hostile":true},"147":{"names":["a skeletal knight","drelgor the impaler"],"hostile":true},"165":{"names":["a wisp"],"hostile":true},"201":{"names":["a hell cat"],"hostile":false},"212":{"names":["ursadane"],"hostile":true},"220":{"names":["an energy vortex"],"hostile":true},"238":{"names":["a sewer rat"],"hostile":false},"250":{"names":["a tsuki wolf"],"hostile":true},"252":{"names":["a lady of the snow","a wight"],"hostile":true},"271":{"names":["silenii"],"hostile":true},"301":{"names":["a treefellow","a treefellow guardian","dendrite"],"hostile":true},"305":{"names":["a gore fiend"],"hostile":true},"574":{"names":["a blade spirit"],"hostile":true},"739":{"names":["a leather wolf"],"hostile":true},"755":{"names":["gargoyle destroyer"],"hostile":true}}}
@@ -0,0 +1,22 @@
1
+ {"schemaVersion":1,"source":"ServUO DefAlchemy.cs and the Alchemist's SB* sell lists","skill":"Alchemy","material":"Reagent","graphic":3973,"vendor":"alchemist","recipes":[
2
+ {"name":"refresh potion","group":1116348,"label":1044538,"min":-25,"max":25,"amount":1,"pays":7,"material":3962,"extra":[{"graphic":3854,"amount":1}]},
3
+ {"name":"night sight potion","group":1116349,"label":1044542,"min":-25,"max":25,"amount":1,"pays":7,"material":3981,"extra":[{"graphic":3854,"amount":1}]},
4
+ {"name":"lesser heal potion","group":1116348,"label":1044543,"min":-25,"max":25,"amount":1,"pays":7,"material":3973,"extra":[{"graphic":3854,"amount":1}]},
5
+ {"name":"lesser cure potion","group":1116348,"label":1044552,"min":-10,"max":40,"amount":1,"pays":7,"material":3972,"extra":[{"graphic":3854,"amount":1}]},
6
+ {"name":"lesser poison potion","group":1116350,"label":1044548,"min":-5,"max":45,"amount":1,"pays":7,"material":3976,"extra":[{"graphic":3854,"amount":1}]},
7
+ {"name":"lesser explosion potion","group":1116351,"label":1044555,"min":5,"max":55,"amount":3,"pays":10,"material":3980,"extra":[{"graphic":3854,"amount":1}]},
8
+ {"name":"agility potion","group":1116349,"label":1044540,"min":15,"max":65,"amount":1,"pays":7,"material":3963,"extra":[{"graphic":3854,"amount":1}]},
9
+ {"name":"heal potion","group":1116348,"label":1044544,"min":15,"max":65,"amount":3,"pays":11,"material":3973,"extra":[{"graphic":3854,"amount":1}]},
10
+ {"name":"poison potion","group":1116350,"label":1044549,"min":15,"max":65,"amount":2,"pays":9,"material":3976,"extra":[{"graphic":3854,"amount":1}]},
11
+ {"name":"total refresh potion","group":1116348,"label":1044539,"min":25,"max":75,"amount":5,"pays":0,"material":3962,"extra":[{"graphic":3854,"amount":1}]},
12
+ {"name":"strength potion","group":1116349,"label":1044546,"min":25,"max":75,"amount":2,"pays":7,"material":3974,"extra":[{"graphic":3854,"amount":1}]},
13
+ {"name":"cure potion","group":1116348,"label":1044553,"min":25,"max":75,"amount":3,"pays":11,"material":3972,"extra":[{"graphic":3854,"amount":1}]},
14
+ {"name":"greater agility potion","group":1116349,"label":1044541,"min":35,"max":85,"amount":3,"pays":0,"material":3963,"extra":[{"graphic":3854,"amount":1}]},
15
+ {"name":"explosion potion","group":1116351,"label":1044556,"min":35,"max":85,"amount":5,"pays":15,"material":3980,"extra":[{"graphic":3854,"amount":1}]},
16
+ {"name":"greater strength potion","group":1116349,"label":1044547,"min":45,"max":95,"amount":5,"pays":0,"material":3974,"extra":[{"graphic":3854,"amount":1}]},
17
+ {"name":"greater heal potion","group":1116348,"label":1044545,"min":55,"max":105,"amount":7,"pays":15,"material":3973,"extra":[{"graphic":3854,"amount":1}]},
18
+ {"name":"greater poison potion","group":1116350,"label":1044550,"min":55,"max":105,"amount":4,"pays":13,"material":3976,"extra":[{"graphic":3854,"amount":1}]},
19
+ {"name":"greater cure potion","group":1116348,"label":1044554,"min":65,"max":115,"amount":6,"pays":15,"material":3972,"extra":[{"graphic":3854,"amount":1}]},
20
+ {"name":"greater explosion potion","group":1116351,"label":1044557,"min":65,"max":115,"amount":10,"pays":25,"material":3980,"extra":[{"graphic":3854,"amount":1}]},
21
+ {"name":"deadly poison potion","group":1116350,"label":1044551,"min":90,"max":140,"amount":8,"pays":21,"material":3976,"extra":[{"graphic":3854,"amount":1}]}
22
+ ]}
@@ -0,0 +1,110 @@
1
+ {"schemaVersion":1,"source":"ServUO DefBlacksmithy.cs and the Blacksmith's SB* sell lists","skill":"Blacksmith","material":"IronIngot","graphic":7154,"vendor":"blacksmith","recipes":[
2
+ {"name":"buckler","group":1011080,"label":1027027,"min":-25,"max":25,"amount":10,"pays":25},
3
+ {"name":"small plate shield","group":1011080,"label":1095770,"min":-25,"max":25,"amount":12,"pays":0},
4
+ {"name":"bronze shield","group":1011080,"label":1027026,"min":-15.2,"max":34.8,"amount":12,"pays":33},
5
+ {"name":"wooden kite shield","group":1011080,"label":1027032,"min":-15.2,"max":34.8,"amount":8,"pays":35},
6
+ {"name":"metal shield","group":1011080,"label":1027035,"min":-10.2,"max":39.8,"amount":14,"pays":60},
7
+ {"name":"medium plate shield","group":1011080,"label":1095771,"min":-10.2,"max":39.8,"amount":14,"pays":0},
8
+ {"name":"dagger","group":1011081,"label":1023921,"min":-0.4,"max":49.6,"amount":3,"pays":10},
9
+ {"name":"light cannonball","group":1116354,"label":1116266,"min":0,"max":50,"amount":6,"pays":0},
10
+ {"name":"metal kite shield","group":1011080,"label":1027028,"min":4.6,"max":54.6,"amount":16,"pays":62},
11
+ {"name":"bascinet","group":1011079,"label":1025132,"min":8.3,"max":58.3,"amount":15,"pays":9},
12
+ {"name":"cannonball","group":1116354,"label":1116029,"min":10,"max":60,"amount":12,"pays":0},
13
+ {"name":"heavy cannonball","group":1116354,"label":1116267,"min":10,"max":60,"amount":12,"pays":0},
14
+ {"name":"ringmail gloves","group":1111704,"label":1025099,"min":12,"max":62,"amount":10,"pays":26},
15
+ {"name":"mace","group":1011084,"label":1023932,"min":14.5,"max":64.5,"amount":6,"pays":14},
16
+ {"name":"chain coif","group":1111704,"label":1025051,"min":14.5,"max":64.5,"amount":10,"pays":6},
17
+ {"name":"ringmail arms","group":1111704,"label":1025103,"min":16.9,"max":66.9,"amount":14,"pays":42},
18
+ {"name":"ringmail legs","group":1111704,"label":1025104,"min":19.4,"max":69.4,"amount":16,"pays":45},
19
+ {"name":"maul","group":1011084,"label":1025179,"min":19.4,"max":69.4,"amount":10,"pays":10},
20
+ {"name":"scepter","group":1011084,"label":1029916,"min":21.4,"max":71.4,"amount":10,"pays":18},
21
+ {"name":"ringmail chest","group":1111704,"label":1025100,"min":21.9,"max":71.9,"amount":18,"pays":60},
22
+ {"name":"viking sword","group":1011081,"label":1025049,"min":24.3,"max":74.3,"amount":14,"pays":27},
23
+ {"name":"cutlass","group":1011081,"label":1025185,"min":24.3,"max":74.3,"amount":8,"pays":12},
24
+ {"name":"heater shield","group":1011080,"label":1027030,"min":24.3,"max":74.3,"amount":18,"pays":115},
25
+ {"name":"large plate shield","group":1011080,"label":1095772,"min":24.3,"max":74.3,"amount":18,"pays":0},
26
+ {"name":"longsword","group":1011081,"label":1023937,"min":28,"max":78,"amount":12,"pays":27},
27
+ {"name":"large battle axe","group":1011082,"label":1025115,"min":28,"max":78,"amount":12,"pays":16},
28
+ {"name":"war mace","group":1011084,"label":1025127,"min":28,"max":78,"amount":14,"pays":15},
29
+ {"name":"shortblade","group":1011081,"label":1095374,"min":28,"max":100,"amount":12,"pays":28},
30
+ {"name":"double axe","group":1011082,"label":1023915,"min":29.3,"max":79.3,"amount":12,"pays":26},
31
+ {"name":"chain hatsuburi","group":1011079,"label":1030175,"min":30,"max":80,"amount":20,"pays":38},
32
+ {"name":"battle axe","group":1011082,"label":1023911,"min":30.5,"max":80.5,"amount":14,"pays":13},
33
+ {"name":"bardiche","group":1011083,"label":1023917,"min":31.7,"max":81.7,"amount":18,"pays":30},
34
+ {"name":"scimitar","group":1011081,"label":1025046,"min":31.7,"max":81.7,"amount":10,"pays":18},
35
+ {"name":"two handed axe","group":1011082,"label":1025187,"min":33,"max":83,"amount":16,"pays":16},
36
+ {"name":"bone harvester","group":1011081,"label":1029915,"min":33,"max":83,"amount":10,"pays":17},
37
+ {"name":"executioners axe","group":1011082,"label":1023909,"min":34.2,"max":84.2,"amount":14,"pays":15},
38
+ {"name":"axe","group":1011082,"label":1023913,"min":34.2,"max":84.2,"amount":14,"pays":20},
39
+ {"name":"war hammer","group":1011084,"label":1025177,"min":34.2,"max":84.2,"amount":16,"pays":12},
40
+ {"name":"hammer pick","group":1011084,"label":1025181,"min":34.2,"max":84.2,"amount":16,"pays":13},
41
+ {"name":"broadsword","group":1011081,"label":1023934,"min":35.4,"max":85.4,"amount":10,"pays":17},
42
+ {"name":"chain legs","group":1111704,"label":1025054,"min":36.7,"max":86.7,"amount":18,"pays":74},
43
+ {"name":"kryss","group":1011081,"label":1025121,"min":36.7,"max":86.7,"amount":8,"pays":16},
44
+ {"name":"close helm","group":1011079,"label":1025128,"min":37.9,"max":87.9,"amount":15,"pays":9},
45
+ {"name":"helmet","group":1011079,"label":1025130,"min":37.9,"max":87.9,"amount":15,"pays":9},
46
+ {"name":"norse helm","group":1011079,"label":1025134,"min":37.9,"max":87.9,"amount":15,"pays":9},
47
+ {"name":"scythe","group":1011083,"label":1029914,"min":39,"max":89,"amount":14,"pays":19},
48
+ {"name":"war axe","group":1011082,"label":1025040,"min":39.1,"max":89.1,"amount":16,"pays":14},
49
+ {"name":"chain chest","group":1111704,"label":1025055,"min":39.1,"max":89.1,"amount":20,"pays":71},
50
+ {"name":"halberd","group":1011083,"label":1025183,"min":39.1,"max":89.1,"amount":20,"pays":21},
51
+ {"name":"bladed staff","group":1011083,"label":1029917,"min":40,"max":90,"amount":12,"pays":16},
52
+ {"name":"kama","group":1011081,"label":1030232,"min":40,"max":90,"amount":14,"pays":30},
53
+ {"name":"war fork","group":1011083,"label":1025125,"min":42.9,"max":92.9,"amount":12,"pays":0},
54
+ {"name":"katana","group":1011081,"label":1025119,"min":44.1,"max":94.1,"amount":8,"pays":16},
55
+ {"name":"female plate chest","group":1111704,"label":1046430,"min":44.1,"max":94.1,"amount":20,"pays":113},
56
+ {"name":"blood blade","group":1011081,"label":1095370,"min":44.1,"max":125,"amount":8,"pays":23},
57
+ {"name":"double bladed staff","group":1011083,"label":1029919,"min":45,"max":95,"amount":16,"pays":17},
58
+ {"name":"crescent blade","group":1011081,"label":1029921,"min":45,"max":95,"amount":14,"pays":18},
59
+ {"name":"plate hatsuburi","group":1011079,"label":1030176,"min":45,"max":95,"amount":20,"pays":38},
60
+ {"name":"heavy plate jingasa","group":1011079,"label":1030178,"min":45,"max":95,"amount":20,"pays":38},
61
+ {"name":"light plate jingasa","group":1011079,"label":1030188,"min":45,"max":95,"amount":20,"pays":0},
62
+ {"name":"small plate jingasa","group":1011079,"label":1030191,"min":45,"max":95,"amount":20,"pays":0},
63
+ {"name":"shuriken","group":1011081,"label":1030231,"min":45,"max":95,"amount":5,"pays":9},
64
+ {"name":"short spear","group":1011083,"label":1025123,"min":45.3,"max":95.3,"amount":6,"pays":11},
65
+ {"name":"pike","group":1011083,"label":1029918,"min":47,"max":97,"amount":12,"pays":19},
66
+ {"name":"dual pointed spear","group":1011083,"label":1095365,"min":47,"max":97,"amount":16,"pays":0},
67
+ {"name":"lance","group":1011083,"label":1029920,"min":48,"max":98,"amount":20,"pays":17},
68
+ {"name":"spear","group":1011083,"label":1023938,"min":49,"max":99,"amount":12,"pays":15},
69
+ {"name":"wakizashi","group":1011081,"label":1030223,"min":50,"max":100,"amount":8,"pays":19},
70
+ {"name":"sai","group":1011081,"label":1030234,"min":50,"max":100,"amount":12,"pays":28},
71
+ {"name":"tekagi","group":1011081,"label":1030230,"min":55,"max":105,"amount":12,"pays":22},
72
+ {"name":"plate gorget","group":1111704,"label":1025139,"min":56.4,"max":106.4,"amount":10,"pays":52},
73
+ {"name":"plate gloves","group":1111704,"label":1025140,"min":58.9,"max":108.9,"amount":12,"pays":72},
74
+ {"name":"daisho","group":1011081,"label":1030228,"min":60,"max":110,"amount":15,"pays":33},
75
+ {"name":"circlet","group":1011079,"label":1032645,"min":62.1,"max":112.1,"amount":6,"pays":0},
76
+ {"name":"plate helm","group":1011079,"label":1025138,"min":62.6,"max":112.6,"amount":15,"pays":10},
77
+ {"name":"plate suneate","group":1111704,"label":1030195,"min":65,"max":115,"amount":20,"pays":112},
78
+ {"name":"plate haidate","group":1111704,"label":1030200,"min":65,"max":115,"amount":20,"pays":117},
79
+ {"name":"plate arms","group":1111704,"label":1025136,"min":66.3,"max":116.3,"amount":18,"pays":94},
80
+ {"name":"plate legs","group":1111704,"label":1025137,"min":68.8,"max":118.8,"amount":20,"pays":109},
81
+ {"name":"elven spellblade","group":1011081,"label":1031564,"min":70,"max":120,"amount":14,"pays":0},
82
+ {"name":"assassin spike","group":1011081,"label":1031565,"min":70,"max":120,"amount":9,"pays":0},
83
+ {"name":"leafblade","group":1011081,"label":1031566,"min":70,"max":120,"amount":12,"pays":0},
84
+ {"name":"war cleaver","group":1011081,"label":1031567,"min":70,"max":120,"amount":18,"pays":0},
85
+ {"name":"diamond mace","group":1011084,"label":1031568,"min":70,"max":120,"amount":20,"pays":0},
86
+ {"name":"rune blade","group":1011081,"label":1031570,"min":70,"max":120,"amount":15,"pays":0},
87
+ {"name":"ornate axe","group":1011082,"label":1031572,"min":70,"max":120,"amount":18,"pays":0},
88
+ {"name":"elven machete","group":1011081,"label":1031573,"min":70,"max":120,"amount":14,"pays":0},
89
+ {"name":"royal circlet","group":1011079,"label":1032646,"min":70,"max":120,"amount":6,"pays":0},
90
+ {"name":"disc mace","group":1011084,"label":1095366,"min":70,"max":120,"amount":20,"pays":31},
91
+ {"name":"dragon barding deed","group":1111704,"label":1053012,"min":72.5,"max":122.5,"amount":750,"pays":0},
92
+ {"name":"no dachi","group":1011081,"label":1030221,"min":75,"max":125,"amount":18,"pays":41},
93
+ {"name":"radiant scimitar","group":1011081,"label":1031571,"min":75,"max":125,"amount":15,"pays":0},
94
+ {"name":"plate chest","group":1111704,"label":1046431,"min":75,"max":125,"amount":25,"pays":121},
95
+ {"name":"boomerang","group":1079508,"label":1095359,"min":75,"max":125,"amount":5,"pays":14},
96
+ {"name":"dual short axes","group":1011082,"label":1095360,"min":75,"max":125,"amount":24,"pays":41},
97
+ {"name":"soul glaive","group":1079508,"label":1095363,"min":75,"max":125,"amount":9,"pays":34},
98
+ {"name":"cyclone","group":1079508,"label":1095364,"min":75,"max":125,"amount":9,"pays":23},
99
+ {"name":"dread sword","group":1011081,"label":1095372,"min":75,"max":125,"amount":14,"pays":0},
100
+ {"name":"plate mempo","group":1111704,"label":1030180,"min":80,"max":130,"amount":18,"pays":0},
101
+ {"name":"plate do","group":1111704,"label":1030184,"min":80,"max":130,"amount":28,"pays":155},
102
+ {"name":"plate hiro sode","group":1111704,"label":1030187,"min":80,"max":130,"amount":16,"pays":111},
103
+ {"name":"lajatang","group":1011081,"label":1030226,"min":80,"max":130,"amount":25,"pays":54},
104
+ {"name":"chaos shield","group":1011080,"label":1027107,"min":85,"max":135,"amount":25,"pays":0},
105
+ {"name":"order shield","group":1011080,"label":1027108,"min":85,"max":135,"amount":25,"pays":0},
106
+ {"name":"metal keg","group":1011173,"label":1150675,"min":85,"max":100,"amount":25,"pays":0},
107
+ {"name":"decorative plate kabuto","group":1011079,"label":1030179,"min":90,"max":140,"amount":25,"pays":47},
108
+ {"name":"plate battle kabuto","group":1011079,"label":1030192,"min":90,"max":140,"amount":25,"pays":0},
109
+ {"name":"standard plate kabuto","group":1011079,"label":1030196,"min":90,"max":140,"amount":25,"pays":0}
110
+ ]}
@@ -0,0 +1,13 @@
1
+ {"schemaVersion":1,"source":"ServUO DefBowFletching.cs and the Bowyer's SB* sell lists","skill":"Bowcraft","material":"Board","graphic":7127,"vendor":"bowyer","recipes":[
2
+ {"name":"kindling","group":1044457,"label":1023553,"min":0,"max":0,"amount":1,"pays":0},
3
+ {"name":"shaft","group":1044457,"label":1027124,"min":0,"max":40,"amount":1,"pays":1},
4
+ {"name":"bow","group":1044566,"label":1025042,"min":30,"max":70,"amount":7,"pays":17},
5
+ {"name":"fukiya darts","group":1044565,"label":1030246,"min":50,"max":73.8,"amount":1,"pays":1},
6
+ {"name":"crossbow","group":1044566,"label":1023919,"min":60,"max":100,"amount":7,"pays":25},
7
+ {"name":"composite bow","group":1044566,"label":1029922,"min":70,"max":110,"amount":7,"pays":23},
8
+ {"name":"heavy crossbow","group":1044566,"label":1025117,"min":80,"max":120,"amount":10,"pays":27},
9
+ {"name":"magical shortbow","group":1044566,"label":1031551,"min":85,"max":135,"amount":15,"pays":0},
10
+ {"name":"repeating crossbow","group":1044566,"label":1029923,"min":90,"max":130,"amount":10,"pays":22},
11
+ {"name":"yumi","group":1044566,"label":1030224,"min":90,"max":130,"amount":10,"pays":26},
12
+ {"name":"elven composite longbow","group":1044566,"label":1031562,"min":95,"max":145,"amount":20,"pays":0}
13
+ ]}
@@ -0,0 +1,105 @@
1
+ {"schemaVersion":1,"source":"ServUO DefCarpentry.cs and the Carpenter's SB* sell lists","skill":"Carpentry","material":"Board","graphic":7127,"vendor":"carpenter","recipes":[
2
+ {"name":"barrel staves","group":1044294,"label":1027857,"min":0,"max":25,"amount":5,"pays":0},
3
+ {"name":"arcanist statue south deed","group":1044294,"label":1072885,"min":0,"max":35,"amount":250,"pays":0},
4
+ {"name":"arcanist statue east deed","group":1044294,"label":1072886,"min":0,"max":35,"amount":250,"pays":0},
5
+ {"name":"small crate","group":1044292,"label":1044309,"min":10,"max":35,"amount":8,"pays":5},
6
+ {"name":"stool","group":1044291,"label":1022602,"min":11,"max":36,"amount":9,"pays":6},
7
+ {"name":"foot stool","group":1044291,"label":1022910,"min":11,"max":36,"amount":9,"pays":6},
8
+ {"name":"barrel lid","group":1044294,"label":1027608,"min":11,"max":36,"amount":4,"pays":0},
9
+ {"name":"dart board south deed","group":1044290,"label":1044325,"min":15.7,"max":40.7,"amount":5,"pays":0},
10
+ {"name":"dart board east deed","group":1044290,"label":1044326,"min":15.7,"max":40.7,"amount":5,"pays":0},
11
+ {"name":"wooden box","group":1044292,"label":1023709,"min":21,"max":46,"amount":10,"pays":7},
12
+ {"name":"bamboo chair","group":1044291,"label":1044300,"min":21,"max":46,"amount":13,"pays":6},
13
+ {"name":"wooden chair","group":1044291,"label":1044301,"min":21,"max":46,"amount":13,"pays":8},
14
+ {"name":"medium crate","group":1044292,"label":1044310,"min":31,"max":56,"amount":15,"pays":6},
15
+ {"name":"empty bookcase","group":1044292,"label":1022718,"min":31.5,"max":56.5,"amount":25,"pays":0},
16
+ {"name":"fancy wooden shelf south deed","group":1044290,"label":1154158,"min":40,"max":90,"amount":15,"pays":0},
17
+ {"name":"fancy wooden shelf east deed","group":1044290,"label":1154159,"min":40,"max":90,"amount":15,"pays":0},
18
+ {"name":"plain wooden shelf south deed","group":1044290,"label":1154160,"min":40,"max":90,"amount":15,"pays":0},
19
+ {"name":"plain wooden shelf east deed","group":1044290,"label":1154161,"min":40,"max":90,"amount":15,"pays":0},
20
+ {"name":"fancy wooden chair cushion","group":1044291,"label":1044302,"min":42.1,"max":67.1,"amount":15,"pays":12},
21
+ {"name":"wooden chair cushion","group":1044291,"label":1044303,"min":42.1,"max":67.1,"amount":13,"pays":10},
22
+ {"name":"nightstand","group":1044291,"label":1044306,"min":42.1,"max":67.1,"amount":17,"pays":7},
23
+ {"name":"craftable house item","group":1044294,"label":1155849,"min":42.1,"max":77.7,"amount":5,"pays":0},
24
+ {"name":"large crate","group":1044292,"label":1044311,"min":47.3,"max":72.3,"amount":18,"pays":7},
25
+ {"name":"ballot box deed","group":1044290,"label":1044327,"min":47.3,"max":72.3,"amount":5,"pays":0},
26
+ {"name":"parrot perch addon deed","group":1044290,"label":1072617,"min":50,"max":85,"amount":100,"pays":0},
27
+ {"name":"wooden bench","group":1044291,"label":1022860,"min":52.6,"max":77.6,"amount":17,"pays":6},
28
+ {"name":"wooden shield","group":1062760,"label":1027034,"min":52.6,"max":77.6,"amount":9,"pays":15},
29
+ {"name":"wooden throne","group":1044291,"label":1044304,"min":52.6,"max":77.6,"amount":17,"pays":6},
30
+ {"name":"fukiya","group":1044566,"label":1030229,"min":60,"max":85,"amount":6,"pays":10},
31
+ {"name":"liquor barrel","group":1044292,"label":1150816,"min":60,"max":90,"amount":50,"pays":0},
32
+ {"name":"writing table","group":1044291,"label":1022890,"min":63.1,"max":88.1,"amount":17,"pays":0},
33
+ {"name":"yew wood table","group":1044291,"label":1044307,"min":63.1,"max":88.1,"amount":23,"pays":10},
34
+ {"name":"wild staff","group":1044566,"label":1031557,"min":63.8,"max":113.8,"amount":16,"pays":0},
35
+ {"name":"club","group":1044566,"label":1025043,"min":65,"max":90,"amount":9,"pays":13},
36
+ {"name":"bokuto","group":1044566,"label":1030227,"min":70,"max":95,"amount":6,"pays":10},
37
+ {"name":"elven wash basin south with drawer deed","group":1044292,"label":1072865,"min":70,"max":95,"amount":40,"pays":0},
38
+ {"name":"elven wash basin east with drawer deed","group":1044292,"label":1073387,"min":70,"max":95,"amount":40,"pays":0},
39
+ {"name":"wooden chest","group":1044292,"label":1023650,"min":73.6,"max":98.6,"amount":20,"pays":15},
40
+ {"name":"quarter staff","group":1044566,"label":1023721,"min":73.6,"max":98.6,"amount":6,"pays":9},
41
+ {"name":"throne","group":1044291,"label":1044305,"min":73.6,"max":98.6,"amount":19,"pays":24},
42
+ {"name":"ter mur style table","group":1044291,"label":1095321,"min":75,"max":100,"amount":50,"pays":0},
43
+ {"name":"shepherds crook","group":1044566,"label":1023713,"min":78.9,"max":103.9,"amount":7,"pays":10},
44
+ {"name":"gnarled staff","group":1044566,"label":1025112,"min":78.9,"max":103.9,"amount":7,"pays":8},
45
+ {"name":"short music stand left","group":1044294,"label":1044313,"min":78.9,"max":103.9,"amount":15,"pays":0},
46
+ {"name":"short music stand right","group":1044294,"label":1044314,"min":78.9,"max":103.9,"amount":15,"pays":0},
47
+ {"name":"tetsubo","group":1044566,"label":1030225,"min":80,"max":105,"amount":10,"pays":21},
48
+ {"name":"elegant low table","group":1044291,"label":1030265,"min":80,"max":105,"amount":35,"pays":0},
49
+ {"name":"plain low table","group":1044291,"label":1030266,"min":80,"max":105,"amount":35,"pays":0},
50
+ {"name":"elven loveseat south deed","group":1044290,"label":1072867,"min":80,"max":105,"amount":50,"pays":0},
51
+ {"name":"elven reading chair","group":1044291,"label":1072873,"min":80,"max":105,"amount":30,"pays":0},
52
+ {"name":"giant replica acorn","group":1044294,"label":1072889,"min":80,"max":105,"amount":35,"pays":0},
53
+ {"name":"elven loveseat east deed","group":1044290,"label":1073372,"min":80,"max":105,"amount":50,"pays":0},
54
+ {"name":"fancy elven table south deed","group":1044291,"label":1073385,"min":80,"max":105,"amount":50,"pays":0},
55
+ {"name":"fancy elven table east deed","group":1044291,"label":1073386,"min":80,"max":105,"amount":50,"pays":0},
56
+ {"name":"elven podium","group":1044291,"label":1073399,"min":80,"max":105,"amount":20,"pays":0},
57
+ {"name":"simple elven armoire","group":1044292,"label":1073401,"min":80,"max":105,"amount":60,"pays":0},
58
+ {"name":"rarewood chest","group":1044292,"label":1073402,"min":80,"max":105,"amount":30,"pays":0},
59
+ {"name":"decorative box","group":1044292,"label":1073403,"min":80,"max":105,"amount":25,"pays":0},
60
+ {"name":"wooden table south deed","group":1044290,"label":1154156,"min":80,"max":105,"amount":20,"pays":0},
61
+ {"name":"wooden table east deed","group":1044290,"label":1154157,"min":80,"max":105,"amount":20,"pays":0},
62
+ {"name":"long wooden table south deed","group":1044290,"label":1154166,"min":80,"max":105,"amount":80,"pays":0},
63
+ {"name":"long wooden table east deed","group":1044290,"label":1154167,"min":80,"max":105,"amount":80,"pays":0},
64
+ {"name":"black staff","group":1044566,"label":1023568,"min":81.5,"max":106.5,"amount":9,"pays":11},
65
+ {"name":"tall music stand left","group":1044294,"label":1044315,"min":81.5,"max":106.5,"amount":20,"pays":0},
66
+ {"name":"tall music stand right","group":1044294,"label":1044316,"min":81.5,"max":106.5,"amount":20,"pays":0},
67
+ {"name":"armoire","group":1044292,"label":1022643,"min":84.2,"max":109.2,"amount":35,"pays":0},
68
+ {"name":"large table","group":1044291,"label":1044308,"min":84.2,"max":109.2,"amount":27,"pays":10},
69
+ {"name":"fancy armoire","group":1044292,"label":1044312,"min":84.2,"max":109.2,"amount":35,"pays":0},
70
+ {"name":"player bb east","group":1044290,"label":1062420,"min":85,"max":110,"amount":50,"pays":0},
71
+ {"name":"player bb south","group":1044290,"label":1062421,"min":85,"max":110,"amount":50,"pays":0},
72
+ {"name":"ornate elven table south deed","group":1044291,"label":1072869,"min":85,"max":110,"amount":60,"pays":0},
73
+ {"name":"big elven chair","group":1044291,"label":1072872,"min":85,"max":110,"amount":40,"pays":0},
74
+ {"name":"ornate elven table east deed","group":1044291,"label":1073384,"min":85,"max":110,"amount":60,"pays":0},
75
+ {"name":"elven stove south deed","group":1044298,"label":1073394,"min":85,"max":110,"amount":80,"pays":0},
76
+ {"name":"elven stove east deed","group":1044298,"label":1073395,"min":85,"max":110,"amount":80,"pays":0},
77
+ {"name":"alchemist table south deed","group":1044290,"label":1073396,"min":85,"max":110,"amount":70,"pays":0},
78
+ {"name":"alchemist table east deed","group":1044290,"label":1073397,"min":85,"max":110,"amount":70,"pays":0},
79
+ {"name":"ter mur style chair","group":1044291,"label":1095291,"min":85,"max":110,"amount":40,"pays":0},
80
+ {"name":"easle south","group":1044294,"label":1044317,"min":86.8,"max":111.8,"amount":20,"pays":0},
81
+ {"name":"easle east","group":1044294,"label":1044318,"min":86.8,"max":111.8,"amount":20,"pays":0},
82
+ {"name":"easle north","group":1044294,"label":1044319,"min":86.8,"max":111.8,"amount":20,"pays":0},
83
+ {"name":"plain wooden chest","group":1044292,"label":1030251,"min":90,"max":115,"amount":30,"pays":0},
84
+ {"name":"ornate wooden chest","group":1044292,"label":1030253,"min":90,"max":115,"amount":30,"pays":0},
85
+ {"name":"gilded wooden chest","group":1044292,"label":1030255,"min":90,"max":115,"amount":30,"pays":0},
86
+ {"name":"wooden foot locker","group":1044292,"label":1030257,"min":90,"max":115,"amount":30,"pays":0},
87
+ {"name":"finished wooden chest","group":1044292,"label":1030259,"min":90,"max":115,"amount":30,"pays":0},
88
+ {"name":"tall cabinet","group":1044292,"label":1030261,"min":90,"max":115,"amount":35,"pays":0},
89
+ {"name":"short cabinet","group":1044292,"label":1030263,"min":90,"max":115,"amount":35,"pays":0},
90
+ {"name":"red armoire","group":1044292,"label":1030328,"min":90,"max":115,"amount":40,"pays":0},
91
+ {"name":"elegant armoire","group":1044292,"label":1030330,"min":90,"max":115,"amount":40,"pays":0},
92
+ {"name":"maple armoire","group":1044292,"label":1030332,"min":90,"max":115,"amount":40,"pays":0},
93
+ {"name":"cherry armoire","group":1044292,"label":1030334,"min":90,"max":115,"amount":40,"pays":0},
94
+ {"name":"long table south deed","group":1044290,"label":1111781,"min":90,"max":115,"amount":80,"pays":0},
95
+ {"name":"long table east deed","group":1044290,"label":1111782,"min":90,"max":115,"amount":80,"pays":0},
96
+ {"name":"ter mur dresser south deed","group":1044290,"label":1111783,"min":90,"max":115,"amount":60,"pays":0},
97
+ {"name":"ter mur dresser east deed","group":1044290,"label":1111784,"min":90,"max":115,"amount":60,"pays":0},
98
+ {"name":"incubator","group":1044294,"label":1112479,"min":90,"max":115,"amount":100,"pays":0},
99
+ {"name":"chicken coop","group":1044294,"label":1112570,"min":90,"max":115,"amount":150,"pays":0},
100
+ {"name":"water trough east deed","group":1044298,"label":1044349,"min":94.7,"max":119.7,"amount":150,"pays":0},
101
+ {"name":"water trough south deed","group":1044298,"label":1044350,"min":94.7,"max":119.7,"amount":150,"pays":0},
102
+ {"name":"elven forge deed","group":1111809,"label":1072875,"min":94.7,"max":119.7,"amount":200,"pays":0},
103
+ {"name":"rustic bench south deed","group":1044290,"label":1150593,"min":94.7,"max":119.8,"amount":35,"pays":0},
104
+ {"name":"rustic bench east deed","group":1044290,"label":1150594,"min":94.7,"max":119.8,"amount":35,"pays":0}
105
+ ]}
@@ -0,0 +1,67 @@
1
+ {"schemaVersion":1,"source":"ServUO DefInscription.cs","skill":"Inscription","material":"BlankScroll","graphic":3636,"vendor":"mage","recipes":[
2
+ {"name":"reactive armor scroll","spell":7,"graphic":7981,"group":1111691,"label":1044381,"min":-25,"max":25,"amount":1,"pays":0,"material":3972,"extra":[{"graphic":3981,"amount":1},{"graphic":3980,"amount":1},{"graphic":3636,"amount":1}]},
3
+ {"name":"clumsy scroll","spell":1,"graphic":7982,"group":1111691,"label":1044382,"min":-25,"max":25,"amount":1,"pays":0,"material":3963,"extra":[{"graphic":3976,"amount":1},{"graphic":3636,"amount":1}]},
4
+ {"name":"create food scroll","spell":2,"graphic":7983,"group":1111691,"label":1044383,"min":-25,"max":25,"amount":1,"pays":0,"material":3972,"extra":[{"graphic":3973,"amount":1},{"graphic":3974,"amount":1},{"graphic":3636,"amount":1}]},
5
+ {"name":"feeblemind scroll","spell":3,"graphic":7984,"group":1111691,"label":1044384,"min":-25,"max":25,"amount":1,"pays":0,"material":3976,"extra":[{"graphic":3973,"amount":1},{"graphic":3636,"amount":1}]},
6
+ {"name":"heal scroll","spell":4,"graphic":7985,"group":1111691,"label":1044385,"min":-25,"max":25,"amount":1,"pays":0,"material":3972,"extra":[{"graphic":3973,"amount":1},{"graphic":3981,"amount":1},{"graphic":3636,"amount":1}]},
7
+ {"name":"magic arrow scroll","spell":5,"graphic":7986,"group":1111691,"label":1044386,"min":-25,"max":25,"amount":1,"pays":0,"material":3980,"extra":[{"graphic":3636,"amount":1}]},
8
+ {"name":"night sight scroll","spell":6,"graphic":7987,"group":1111691,"label":1044387,"min":-25,"max":25,"amount":1,"pays":0,"material":3981,"extra":[{"graphic":3980,"amount":1},{"graphic":3636,"amount":1}]},
9
+ {"name":"weaken scroll","spell":8,"graphic":7988,"group":1111691,"label":1044388,"min":-25,"max":25,"amount":1,"pays":0,"material":3972,"extra":[{"graphic":3976,"amount":1},{"graphic":3636,"amount":1}]},
10
+ {"name":"agility scroll","spell":9,"graphic":7989,"group":1111691,"label":1044389,"min":-10.8,"max":39.2,"amount":1,"pays":0,"material":3963,"extra":[{"graphic":3974,"amount":1},{"graphic":3636,"amount":1}]},
11
+ {"name":"cunning scroll","spell":10,"graphic":7990,"group":1111691,"label":1044390,"min":-10.8,"max":39.2,"amount":1,"pays":0,"material":3976,"extra":[{"graphic":3974,"amount":1},{"graphic":3636,"amount":1}]},
12
+ {"name":"cure scroll","spell":11,"graphic":7991,"group":1111691,"label":1044391,"min":-10.8,"max":39.2,"amount":1,"pays":0,"material":3972,"extra":[{"graphic":3973,"amount":1},{"graphic":3636,"amount":1}]},
13
+ {"name":"harm scroll","spell":12,"graphic":7992,"group":1111691,"label":1044392,"min":-10.8,"max":39.2,"amount":1,"pays":0,"material":3976,"extra":[{"graphic":3981,"amount":1},{"graphic":3636,"amount":1}]},
14
+ {"name":"magic trap scroll","spell":13,"graphic":7993,"group":1111691,"label":1044393,"min":-10.8,"max":39.2,"amount":1,"pays":0,"material":3972,"extra":[{"graphic":3981,"amount":1},{"graphic":3980,"amount":1},{"graphic":3636,"amount":1}]},
15
+ {"name":"magic un trap scroll","spell":14,"graphic":7994,"group":1111691,"label":1044394,"min":-10.8,"max":39.2,"amount":1,"pays":0,"material":3963,"extra":[{"graphic":3980,"amount":1},{"graphic":3636,"amount":1}]},
16
+ {"name":"protection scroll","spell":15,"graphic":7995,"group":1111691,"label":1044395,"min":-10.8,"max":39.2,"amount":1,"pays":0,"material":3972,"extra":[{"graphic":3973,"amount":1},{"graphic":3980,"amount":1},{"graphic":3636,"amount":1}]},
17
+ {"name":"strength scroll","spell":16,"graphic":7996,"group":1111691,"label":1044396,"min":-10.8,"max":39.2,"amount":1,"pays":0,"material":3976,"extra":[{"graphic":3974,"amount":1},{"graphic":3636,"amount":1}]},
18
+ {"name":"bless scroll","spell":17,"graphic":7997,"group":1111692,"label":1044397,"min":3.5,"max":53.5,"amount":1,"pays":0,"material":3972,"extra":[{"graphic":3974,"amount":1},{"graphic":3636,"amount":1}]},
19
+ {"name":"fireball scroll","spell":18,"graphic":7998,"group":1111692,"label":1044398,"min":3.5,"max":53.5,"amount":1,"pays":0,"material":3962,"extra":[{"graphic":3636,"amount":1}]},
20
+ {"name":"magic lock scroll","spell":19,"graphic":7999,"group":1111692,"label":1044399,"min":3.5,"max":53.5,"amount":1,"pays":0,"material":3963,"extra":[{"graphic":3972,"amount":1},{"graphic":3980,"amount":1},{"graphic":3636,"amount":1}]},
21
+ {"name":"poison scroll","spell":20,"graphic":8000,"group":1111692,"label":1044400,"min":3.5,"max":53.5,"amount":1,"pays":0,"material":3976,"extra":[{"graphic":3636,"amount":1}]},
22
+ {"name":"telekinisis scroll","spell":21,"graphic":8001,"group":1111692,"label":1044401,"min":3.5,"max":53.5,"amount":1,"pays":0,"material":3963,"extra":[{"graphic":3974,"amount":1},{"graphic":3636,"amount":1}]},
23
+ {"name":"teleport scroll","spell":22,"graphic":8002,"group":1111692,"label":1044402,"min":3.5,"max":53.5,"amount":1,"pays":0,"material":3963,"extra":[{"graphic":3974,"amount":1},{"graphic":3636,"amount":1}]},
24
+ {"name":"unlock scroll","spell":23,"graphic":8003,"group":1111692,"label":1044403,"min":3.5,"max":53.5,"amount":1,"pays":0,"material":3963,"extra":[{"graphic":3980,"amount":1},{"graphic":3636,"amount":1}]},
25
+ {"name":"wall of stone scroll","spell":24,"graphic":8004,"group":1111692,"label":1044404,"min":3.5,"max":53.5,"amount":1,"pays":0,"material":3963,"extra":[{"graphic":3972,"amount":1},{"graphic":3636,"amount":1}]},
26
+ {"name":"arch cure scroll","spell":25,"graphic":8005,"group":1111692,"label":1044405,"min":17.8,"max":67.8,"amount":1,"pays":0,"material":3972,"extra":[{"graphic":3973,"amount":1},{"graphic":3974,"amount":1},{"graphic":3636,"amount":1}]},
27
+ {"name":"arch protection scroll","spell":26,"graphic":8006,"group":1111692,"label":1044406,"min":17.8,"max":67.8,"amount":1,"pays":0,"material":3972,"extra":[{"graphic":3973,"amount":1},{"graphic":3974,"amount":1},{"graphic":3980,"amount":1},{"graphic":3636,"amount":1}]},
28
+ {"name":"curse scroll","spell":27,"graphic":8007,"group":1111692,"label":1044407,"min":17.8,"max":67.8,"amount":1,"pays":0,"material":3972,"extra":[{"graphic":3976,"amount":1},{"graphic":3980,"amount":1},{"graphic":3636,"amount":1}]},
29
+ {"name":"fire field scroll","spell":28,"graphic":8008,"group":1111692,"label":1044408,"min":17.8,"max":67.8,"amount":1,"pays":0,"material":3962,"extra":[{"graphic":3981,"amount":1},{"graphic":3980,"amount":1},{"graphic":3636,"amount":1}]},
30
+ {"name":"greater heal scroll","spell":29,"graphic":8009,"group":1111692,"label":1044409,"min":17.8,"max":67.8,"amount":1,"pays":0,"material":3972,"extra":[{"graphic":3981,"amount":1},{"graphic":3974,"amount":1},{"graphic":3973,"amount":1},{"graphic":3636,"amount":1}]},
31
+ {"name":"lightning scroll","spell":30,"graphic":8010,"group":1111692,"label":1044410,"min":17.8,"max":67.8,"amount":1,"pays":0,"material":3974,"extra":[{"graphic":3980,"amount":1},{"graphic":3636,"amount":1}]},
32
+ {"name":"mana drain scroll","spell":31,"graphic":8011,"group":1111692,"label":1044411,"min":17.8,"max":67.8,"amount":1,"pays":0,"material":3962,"extra":[{"graphic":3981,"amount":1},{"graphic":3974,"amount":1},{"graphic":3636,"amount":1}]},
33
+ {"name":"recall scroll","spell":32,"graphic":8012,"group":1111692,"label":1044412,"min":17.8,"max":67.8,"amount":1,"pays":0,"material":3962,"extra":[{"graphic":3963,"amount":1},{"graphic":3974,"amount":1},{"graphic":3636,"amount":1}]},
34
+ {"name":"blade spirits scroll","spell":33,"graphic":8013,"group":1111693,"label":1044413,"min":32.1,"max":82.1,"amount":1,"pays":0,"material":3962,"extra":[{"graphic":3976,"amount":1},{"graphic":3974,"amount":1},{"graphic":3636,"amount":1}]},
35
+ {"name":"dispel field scroll","spell":34,"graphic":8014,"group":1111693,"label":1044414,"min":32.1,"max":82.1,"amount":1,"pays":0,"material":3962,"extra":[{"graphic":3972,"amount":1},{"graphic":3981,"amount":1},{"graphic":3980,"amount":1},{"graphic":3636,"amount":1}]},
36
+ {"name":"incognito scroll","spell":35,"graphic":8015,"group":1111693,"label":1044415,"min":32.1,"max":82.1,"amount":1,"pays":0,"material":3963,"extra":[{"graphic":3972,"amount":1},{"graphic":3976,"amount":1},{"graphic":3636,"amount":1}]},
37
+ {"name":"magic reflect scroll","spell":36,"graphic":8016,"group":1111693,"label":1044416,"min":32.1,"max":82.1,"amount":1,"pays":0,"material":3972,"extra":[{"graphic":3974,"amount":1},{"graphic":3981,"amount":1},{"graphic":3636,"amount":1}]},
38
+ {"name":"mind blast scroll","spell":37,"graphic":8017,"group":1111693,"label":1044417,"min":32.1,"max":82.1,"amount":1,"pays":0,"material":3962,"extra":[{"graphic":3974,"amount":1},{"graphic":3976,"amount":1},{"graphic":3980,"amount":1},{"graphic":3636,"amount":1}]},
39
+ {"name":"paralyze scroll","spell":38,"graphic":8018,"group":1111693,"label":1044418,"min":32.1,"max":82.1,"amount":1,"pays":0,"material":3972,"extra":[{"graphic":3974,"amount":1},{"graphic":3981,"amount":1},{"graphic":3636,"amount":1}]},
40
+ {"name":"poison field scroll","spell":39,"graphic":8019,"group":1111693,"label":1044419,"min":32.1,"max":82.1,"amount":1,"pays":0,"material":3962,"extra":[{"graphic":3976,"amount":1},{"graphic":3981,"amount":1},{"graphic":3636,"amount":1}]},
41
+ {"name":"summon creature scroll","spell":40,"graphic":8020,"group":1111693,"label":1044420,"min":32.1,"max":82.1,"amount":1,"pays":0,"material":3963,"extra":[{"graphic":3974,"amount":1},{"graphic":3981,"amount":1},{"graphic":3636,"amount":1}]},
42
+ {"name":"dispel scroll","spell":41,"graphic":8021,"group":1111693,"label":1044421,"min":46.4,"max":96.4,"amount":1,"pays":0,"material":3972,"extra":[{"graphic":3974,"amount":1},{"graphic":3980,"amount":1},{"graphic":3636,"amount":1}]},
43
+ {"name":"energy bolt scroll","spell":42,"graphic":8022,"group":1111693,"label":1044422,"min":46.4,"max":96.4,"amount":1,"pays":0,"material":3962,"extra":[{"graphic":3976,"amount":1},{"graphic":3636,"amount":1}]},
44
+ {"name":"explosion scroll","spell":43,"graphic":8023,"group":1111693,"label":1044423,"min":46.4,"max":96.4,"amount":1,"pays":0,"material":3963,"extra":[{"graphic":3974,"amount":1},{"graphic":3636,"amount":1}]},
45
+ {"name":"invisibility scroll","spell":44,"graphic":8024,"group":1111693,"label":1044424,"min":46.4,"max":96.4,"amount":1,"pays":0,"material":3963,"extra":[{"graphic":3976,"amount":1},{"graphic":3636,"amount":1}]},
46
+ {"name":"mark scroll","spell":45,"graphic":8025,"group":1111693,"label":1044425,"min":46.4,"max":96.4,"amount":1,"pays":0,"material":3963,"extra":[{"graphic":3962,"amount":1},{"graphic":3974,"amount":1},{"graphic":3636,"amount":1}]},
47
+ {"name":"mass curse scroll","spell":46,"graphic":8026,"group":1111693,"label":1044426,"min":46.4,"max":96.4,"amount":1,"pays":0,"material":3972,"extra":[{"graphic":3974,"amount":1},{"graphic":3976,"amount":1},{"graphic":3980,"amount":1},{"graphic":3636,"amount":1}]},
48
+ {"name":"paralyze field scroll","spell":47,"graphic":8027,"group":1111693,"label":1044427,"min":46.4,"max":96.4,"amount":1,"pays":0,"material":3962,"extra":[{"graphic":3973,"amount":1},{"graphic":3981,"amount":1},{"graphic":3636,"amount":1}]},
49
+ {"name":"reveal scroll","spell":48,"graphic":8028,"group":1111693,"label":1044428,"min":46.4,"max":96.4,"amount":1,"pays":0,"material":3963,"extra":[{"graphic":3980,"amount":1},{"graphic":3636,"amount":1}]},
50
+ {"name":"chain lightning scroll","spell":49,"graphic":8029,"group":1111694,"label":1044429,"min":60.7,"max":110.7,"amount":1,"pays":0,"material":3962,"extra":[{"graphic":3963,"amount":1},{"graphic":3974,"amount":1},{"graphic":3980,"amount":1},{"graphic":3636,"amount":1}]},
51
+ {"name":"energy field scroll","spell":50,"graphic":8030,"group":1111694,"label":1044430,"min":60.7,"max":110.7,"amount":1,"pays":0,"material":3962,"extra":[{"graphic":3974,"amount":1},{"graphic":3981,"amount":1},{"graphic":3980,"amount":1},{"graphic":3636,"amount":1}]},
52
+ {"name":"flamestrike scroll","spell":51,"graphic":8031,"group":1111694,"label":1044431,"min":60.7,"max":110.7,"amount":1,"pays":0,"material":3981,"extra":[{"graphic":3980,"amount":1},{"graphic":3636,"amount":1}]},
53
+ {"name":"gate travel scroll","spell":52,"graphic":8032,"group":1111694,"label":1044432,"min":60.7,"max":110.7,"amount":1,"pays":0,"material":3962,"extra":[{"graphic":3974,"amount":1},{"graphic":3980,"amount":1},{"graphic":3636,"amount":1}]},
54
+ {"name":"mana vampire scroll","spell":53,"graphic":8033,"group":1111694,"label":1044433,"min":60.7,"max":110.7,"amount":1,"pays":0,"material":3962,"extra":[{"graphic":3963,"amount":1},{"graphic":3974,"amount":1},{"graphic":3981,"amount":1},{"graphic":3636,"amount":1}]},
55
+ {"name":"mass dispel scroll","spell":54,"graphic":8034,"group":1111694,"label":1044434,"min":60.7,"max":110.7,"amount":1,"pays":0,"material":3962,"extra":[{"graphic":3972,"amount":1},{"graphic":3974,"amount":1},{"graphic":3980,"amount":1},{"graphic":3636,"amount":1}]},
56
+ {"name":"meteor swarm scroll","spell":55,"graphic":8035,"group":1111694,"label":1044435,"min":60.7,"max":110.7,"amount":1,"pays":0,"material":3963,"extra":[{"graphic":3974,"amount":1},{"graphic":3980,"amount":1},{"graphic":3981,"amount":1},{"graphic":3636,"amount":1}]},
57
+ {"name":"polymorph scroll","spell":56,"graphic":8036,"group":1111694,"label":1044436,"min":60.7,"max":110.7,"amount":1,"pays":0,"material":3963,"extra":[{"graphic":3974,"amount":1},{"graphic":3981,"amount":1},{"graphic":3636,"amount":1}]},
58
+ {"name":"earthquake scroll","spell":57,"graphic":8037,"group":1111694,"label":1044437,"min":75,"max":125,"amount":1,"pays":0,"material":3963,"extra":[{"graphic":3974,"amount":1},{"graphic":3973,"amount":1},{"graphic":3980,"amount":1},{"graphic":3636,"amount":1}]},
59
+ {"name":"energy vortex scroll","spell":58,"graphic":8038,"group":1111694,"label":1044438,"min":75,"max":125,"amount":1,"pays":0,"material":3962,"extra":[{"graphic":3963,"amount":1},{"graphic":3974,"amount":1},{"graphic":3976,"amount":1},{"graphic":3636,"amount":1}]},
60
+ {"name":"resurrection scroll","spell":59,"graphic":8039,"group":1111694,"label":1044439,"min":75,"max":125,"amount":1,"pays":0,"material":3963,"extra":[{"graphic":3972,"amount":1},{"graphic":3973,"amount":1},{"graphic":3636,"amount":1}]},
61
+ {"name":"summon air elemental scroll","spell":60,"graphic":8040,"group":1111694,"label":1044440,"min":75,"max":125,"amount":1,"pays":0,"material":3963,"extra":[{"graphic":3974,"amount":1},{"graphic":3981,"amount":1},{"graphic":3636,"amount":1}]},
62
+ {"name":"summon daemon scroll","spell":61,"graphic":8041,"group":1111694,"label":1044441,"min":75,"max":125,"amount":1,"pays":0,"material":3963,"extra":[{"graphic":3974,"amount":1},{"graphic":3981,"amount":1},{"graphic":3980,"amount":1},{"graphic":3636,"amount":1}]},
63
+ {"name":"summon earth elemental scroll","spell":62,"graphic":8042,"group":1111694,"label":1044442,"min":75,"max":125,"amount":1,"pays":0,"material":3963,"extra":[{"graphic":3974,"amount":1},{"graphic":3981,"amount":1},{"graphic":3636,"amount":1}]},
64
+ {"name":"summon fire elemental scroll","spell":63,"graphic":8043,"group":1111694,"label":1044443,"min":75,"max":125,"amount":1,"pays":0,"material":3963,"extra":[{"graphic":3974,"amount":1},{"graphic":3981,"amount":1},{"graphic":3980,"amount":1},{"graphic":3636,"amount":1}]},
65
+ {"name":"summon water elemental scroll","spell":64,"graphic":8044,"group":1111694,"label":1044444,"min":75,"max":125,"amount":1,"pays":0,"material":3963,"extra":[{"graphic":3974,"amount":1},{"graphic":3981,"amount":1},{"graphic":3636,"amount":1}]},
66
+ {"name":"runebook","graphic":8901,"group":1044294,"label":1041267,"min":45,"max":95,"amount":8,"pays":0,"material":3636,"extra":[{"graphic":8012,"amount":1},{"graphic":8032,"amount":1}]}
67
+ ]}