Guide: Adding Dragonium Equipment Set to Event Girl Yul NPC
Here's how I added the full Dragonium equipment set to the Event Girl Yul shop. This should work on any EP33/EP35 server using the same Docker setup.
Step 1: Understanding the EMS Event Shop encoding
The Event Management System (EMS) uses a different item encoding than Item2.scp:
EMS_ItemKindIdx = Item2_ItemKindIdx + 167936 (0x29000)
ItemOption varies by item type:
- Weapons: 805306612 (0x300000F4)
- Armor/Gloves/Boots/Helmets: 805306623 (0x300000FF)
- Epaulettes: 0
Step 2: Identify the active events
Check which events are active and how many items each has:
USE EventData;
SELECT EventID, COUNT(*) as Items
FROM cabal_ems_event_npcitemshop_table
GROUP BY EventID ORDER BY Items;
Important: each event has a limit of ~64 items. If exceeded, the event tab disappears from the NPC.
Step 3: Find available slots
Before inserting, check which slots are already used:
USE EventData;
SELECT SlotIdx FROM cabal_ems_event_npcitemshop_table
WHERE EventID = 554 ORDER BY SlotIdx;
Slots must be unique per EventID (primary key).
Step 4: Insert the items
Dragonium Item2.scp IDs range from 33557473 to 33557519. Split across multiple events to stay under the 64 item limit.
Weapons (Event 554 - Tab 7):
USE EventData;
INSERT INTO cabal_ems_event_npcitemshop_table
(EventID, WorldIdx, NpcIdx, SlotIdx, ItemKindIdx, ItemOption, ItemDurationIdx,
PriceAlz, PriceItemKindIdx_deleted, PriceItemOption_deleted, PriceItemCount_deleted,
PricePoint_deleted, PriceCash_deleted, ItemPriceID, PricePoint, ExpirationTime,
DailyLimit, WeeklyLimit) VALUES
(554, 1, 49, 43, 33725409, 805306612, 0, 0, 0, 0, 0, 0, 0, 0, 0, '1970-01-01', 0, 0),
(554, 1, 49, 44, 33725410, 805306612, 0, 0, 0, 0, 0, 0, 0, 0, 0, '1970-01-01', 0, 0),
(554, 1, 49, 45, 33725411, 805306612, 0, 0, 0, 0, 0, 0, 0, 0, 0, '1970-01-01', 0, 0),
(554, 1, 49, 46, 33725412, 805306612, 0, 0, 0, 0, 0, 0, 0, 0, 0, '1970-01-01', 0, 0),
(554, 1, 49, 47, 33725413, 805306612, 0, 0, 0, 0, 0, 0, 0, 0, 0, '1970-01-01', 0, 0),
(554, 1, 49, 48, 33725414, 805306612, 0, 0, 0, 0, 0, 0, 0, 0, 0, '1970-01-01', 0, 0),
(554, 1, 49, 49, 33725415, 805306612, 0, 0, 0, 0, 0, 0, 0, 0, 0, '1970-01-01', 0, 0);
Epaulettes (Event 554 - Tab 7):
INSERT INTO cabal_ems_event_npcitemshop_table VALUES
(554, 1, 49, 50, 33725452, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '1970-01-01', 0, 0),
(554, 1, 49, 51, 33725453, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '1970-01-01', 0, 0),
(554, 1, 49, 52, 33725454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '1970-01-01', 0, 0),
(554, 1, 49, 53, 33725455, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '1970-01-01', 0, 0);
Armor + Gloves (Event 552 - Tab 5):
INSERT INTO cabal_ems_event_npcitemshop_table VALUES
(552, 1, 49, 46, 33725416, 805306623, 0, 0, 0, 0, 0, 0, 0, 0, 0, '1970-01-01', 0, 0),
(552, 1, 49, 47, 33725417, 805306623, 0, 0, 0, 0, 0, 0, 0, 0, 0, '1970-01-01', 0, 0),
(552, 1, 49, 48, 33725418, 805306623, 0, 0, 0, 0, 0, 0, 0, 0, 0, '1970-01-01', 0, 0),
(552, 1, 49, 49, 33725419, 805306623, 0, 0, 0, 0, 0, 0, 0, 0, 0, '1970-01-01', 0, 0),
(552, 1, 49, 50, 33725420, 805306623, 0, 0, 0, 0, 0, 0, 0, 0, 0, '1970-01-01', 0, 0),
(552, 1, 49, 51, 33725421, 805306623, 0, 0, 0, 0, 0, 0, 0, 0, 0, '1970-01-01', 0, 0),
(552, 1, 49, 52, 33725422, 805306623, 0, 0, 0, 0, 0, 0, 0, 0, 0, '1970-01-01', 0, 0),
(552, 1, 49, 53, 33725423, 805306623, 0, 0, 0, 0, 0, 0, 0, 0, 0, '1970-01-01', 0, 0),
(552, 1, 49, 54, 33725424, 805306623, 0, 0, 0, 0, 0, 0, 0, 0, 0, '1970-01-01', 0, 0),
(552, 1, 49, 55, 33725425, 805306623, 0, 0, 0, 0, 0, 0, 0, 0, 0, '1970-01-01', 0, 0),
(552, 1, 49, 56, 33725426, 805306623, 0, 0, 0, 0, 0, 0, 0, 0, 0, '1970-01-01', 0, 0),
(552, 1, 49, 57, 33725427, 805306623, 0, 0, 0, 0, 0, 0, 0, 0, 0, '1970-01-01', 0, 0),
(552, 1, 49, 58, 33725428, 805306623, 0, 0, 0, 0, 0, 0, 0, 0, 0, '1970-01-01', 0, 0),
(552, 1, 49, 59, 33725429, 805306623, 0, 0, 0, 0, 0, 0, 0, 0, 0, '1970-01-01', 0, 0),
(552, 1, 49, 60, 33725430, 805306623, 0, 0, 0, 0, 0, 0, 0, 0, 0, '1970-01-01', 0, 0),
(552, 1, 49, 61, 33725431, 805306623, 0, 0, 0, 0, 0, 0, 0, 0, 0, '1970-01-01', 0, 0),
(552, 1, 49, 62, 33725432, 805306623, 0, 0, 0, 0, 0, 0, 0, 0, 0, '1970-01-01', 0, 0),
(552, 1, 49, 63, 33725433, 805306623, 0, 0, 0, 0, 0, 0, 0, 0, 0, '1970-01-01', 0, 0);
Boots + Helmets (Event 553 - Tab 6):
INSERT INTO cabal_ems_event_npcitemshop_table VALUES
(553, 1, 49, 88, 33725434, 805306623, 0, 0, 0, 0, 0, 0, 0, 0, 0, '1970-01-01', 0, 0),
(553, 1, 49, 89, 33725435, 805306623, 0, 0, 0, 0, 0, 0, 0, 0, 0, '1970-01-01', 0, 0),
(553, 1, 49, 90, 33725436, 805306623, 0, 0, 0, 0, 0, 0, 0, 0, 0, '1970-01-01', 0, 0),
(553, 1, 49, 91, 33725437, 805306623, 0, 0, 0, 0, 0, 0, 0, 0, 0, '1970-01-01', 0, 0),
(553, 1, 49, 92, 33725438, 805306623, 0, 0, 0, 0, 0, 0, 0, 0, 0, '1970-01-01', 0, 0),
(553, 1, 49, 93, 33725439, 805306623, 0, 0, 0, 0, 0, 0, 0, 0, 0, '1970-01-01', 0, 0),
(553, 1, 49, 94, 33725440, 805306623, 0, 0, 0, 0, 0, 0, 0, 0, 0, '1970-01-01', 0, 0),
(553, 1, 49, 95, 33725441, 805306623, 0, 0, 0, 0, 0, 0, 0, 0, 0, '1970-01-01', 0, 0),
(553, 1, 49, 96, 33725442, 805306623, 0, 0, 0, 0, 0, 0, 0, 0, 0, '1970-01-01', 0, 0),
(553, 1, 49, 97, 33725443, 805306623, 0, 0, 0, 0, 0, 0, 0, 0, 0, '1970-01-01', 0, 0),
(553, 1, 49, 98, 33725444, 805306623, 0, 0, 0, 0, 0, 0, 0, 0, 0, '1970-01-01', 0, 0),
(553, 1, 49, 99, 33725445, 805306623, 0, 0, 0, 0, 0, 0, 0, 0, 0, '1970-01-01', 0, 0),
(553, 1, 49, 100, 33725446, 805306623, 0, 0, 0, 0, 0, 0, 0, 0, 0, '1970-01-01', 0, 0),
(553, 1, 49, 101, 33725447, 805306623, 0, 0, 0, 0, 0, 0, 0, 0, 0, '1970-01-01', 0, 0),
(553, 1, 49, 102, 33725448, 805306623, 0, 0, 0, 0, 0, 0, 0, 0, 0, '1970-01-01', 0, 0),
(553, 1, 49, 103, 33725449, 805306623, 0, 0, 0, 0, 0, 0, 0, 0, 0, '1970-01-01', 0, 0),
(553, 1, 49, 104, 33725450, 805306623, 0, 0, 0, 0, 0, 0, 0, 0, 0, '1970-01-01', 0, 0),
(553, 1, 49, 105, 33725451, 805306623, 0, 0, 0, 0, 0, 0, 0, 0, 0, '1970-01-01', 0, 0);
Step 5: Restart the server
Restart the Cabal server for the EMS to reload event data.
EMS ItemKindIdx reference table:
┌───────────────────────┬──────────────┬──────────────────┬────────────┐
│ Item │ Item2.scp ID │ EMS ID (+167936) │ ItemOption │
├───────────────────────┼──────────────┼──────────────────┼────────────┤
│ Orbe │ 33557473 │ 33725409 │ 805306612 │
├───────────────────────┼──────────────┼──────────────────┼────────────┤
│ Crystal │ 33557474 │ 33725410 │ 805306612 │
├───────────────────────┼──────────────┼──────────────────┼────────────┤
│ Katana │ 33557475 │ 33725411 │ 805306612 │
├───────────────────────┼──────────────┼──────────────────┼────────────┤
│ Sword │ 33557476 │ 33725412 │ 805306612 │
├───────────────────────┼──────────────┼──────────────────┼────────────┤
│ Daikatana │ 33557477 │ 33725413 │ 805306612 │
├───────────────────────┼──────────────┼──────────────────┼────────────┤
│ Great Sword │ 33557478 │ 33725414 │ 805306612 │
├───────────────────────┼──────────────┼──────────────────┼────────────┤
│ Chakram │ 33557479 │ 33725415 │ 805306612 │
├───────────────────────┼──────────────┼──────────────────┼────────────┤
│ Armor (WA/GL/FG) │ 33557480-82 │ 33725416-18 │ 805306623 │
├───────────────────────┼──────────────┼──────────────────┼────────────┤
│ Suit (FA/FB/FS) │ 33557483-85 │ 33725419-21 │ 805306623 │
├───────────────────────┼──────────────┼──────────────────┼────────────┤
│ Battlesuit (BL/WI/DM) │ 33557486-88 │ 33725422-24 │ 805306623 │
├───────────────────────┼──────────────┼──────────────────┼────────────┤
│ Gloves (all classes) │ 33557489-97 │ 33725425-33 │ 805306623 │
├───────────────────────┼──────────────┼──────────────────┼────────────┤
│ Boots (all classes) │ 33557498-506 │ 33725434-42 │ 805306623 │
├───────────────────────┼──────────────┼──────────────────┼────────────┤
│ Helmets (all classes) │ 33557507-15 │ 33725443-51 │ 805306623 │
├───────────────────────┼──────────────┼──────────────────┼────────────┤
│ Epaulette Guardian │ 33557516 │ 33725452 │ 0 │
├───────────────────────┼──────────────┼──────────────────┼────────────┤
│ Epaulette Order │ 33557517 │ 33725453 │ 0 │
├───────────────────────┼──────────────┼──────────────────┼────────────┤
│ Epaulette Fighter │ 33557518 │ 33725454 │ 0 │
├───────────────────────┼──────────────┼──────────────────┼────────────┤
│ Epaulette Sage │ 33557519 │ 33725455 │ 0 │
└───────────────────────┴──────────────┴──────────────────┴────────────┘
Notes:
- No client modification needed - everything is database only
- ItemPriceID = 0 means the item is free
- ExpirationTime cannot be NULL, use '1970-01-01'
- Max ~64 items per event, split across multiple events if needed
- The encoding formula +167936 was discovered by comparing existing Demonite items in the EMS database vs Item2.scp
Tip: To find item names from IDs, check Data/language/<your_language>/cabal_msg.dec in the client. Items are mapped as <msg id="itemXXXX" cont="Item Name" />.