Skip to main content

Overview

The sdev library is the game service component for Shaiya Episode 6. It implements all features based on client specifications with the goal of keeping everything as vanilla as possible.

Environment

Binaries

Binary files are available at: sdev/bin
NpcQuestMax Level
EP680

Changelog Highlights

Updated quest structure sizes to correct values:
TypeEP5EP6
QuestInfo0x1D00x260
QuestResult0x200x28
Removed instruction that overwrites ItemInfo.Drop to support synergy/item sets functionality.
Added level 80 support and changed exp location to prevent overlap with additional status values.

Configuration

Configuration files are located at: sdev/bin/data The library expects the following configuration files in the PSM_Client/Bin/Data directory:
  • BattleFieldMoveInfo.ini - Battlefield zone movement
  • OnlineTimePrize.ini - Reward item system
  • ChaoticSquare.ini - Chaotic Squares crafting
  • SetItem.ini - Synergy/item sets
  • Map.ini - Town move scroll settings

Major Features

Item Mall

Purchase and gift point items with included stored procedures for UsersMaster integration.

Battlefield Move

Instant zone movement with level range validation and debuff prevention.

Reward Item

Account-wide online time rewards with 20 item units and progress tracking.

Rune Combination

Support for vials (Effects 93-98) and recreation runes with configurable enable flags.

Skill Abilities

Episode 6 abilities 70, 87, and 35 including exp stones and buff effects.

Chaotic Squares

Crafting system with Fortune Money and Crafting Hammers with success rate modifiers.

Synergy

Item set bonuses using the Drop field for set IDs with vanilla configuration support.

Item Ability Move

Transfer CraftName and Gems between items with configurable success rates (30-90%).

Item Repair

Client endurance values will not match server endurance in real-time. Players must relog to see correct repair costs.

Episode 5

RepairCost = (Item.Buy / 30.0) * (Damage / 400.0)

Episode 6.4

RepairCost = (Item.Buy / 15.0) * (Damage / 400.0)

NpcQuest

The Episode 6 format supports 6 quest results, each containing up to 3 items. The ps_game binary has been modified to read this file format.
See the changelog in the bin directory for detailed quest structure information.

Revenge Mark

The library tracks kill counts up to 999 and renders different effects based on the count:
KillCountEffectNameEffectDataId
1RevengeMark_Loop_01.EFT265
2RevengeMark_Loop_02.EFT266
3RevengeMark_Loop_03.EFT267
4RevengeMark_Loop_04.EFT268
5RevengeMark_Loop_05.EFT269
6RevengeMark_Loop_06.EFT270
7RevengeMark_Loop_07.EFT271
8-999RevengeMark_Loop_08.EFT272
oddRevengeMark_Notice_01.EFT262
evenRevengeMark_Notice_02.EFT263
999RevengeMark_Notice_03.EFT264

System Messages

508  "Your revenge to <t> has succeeded!"
509  "<t> killed you <v> time(s)."

Skill Abilities

The library adds support for Episode 6 skill abilities:

Ability 35 (Exp Stones)

Modifies CUser::AddExpFromUser to support 6.4 ability values:
ItemIdSkillIdSkillLvAbilityValue
1000422221150
1000432231150
1011144262500
10111542631000
Ability values are expected to be greater than 100. The library divides the value by 100.

Ability 70

Effects are removed a few seconds after the skill is stopped.

Ability 87

Starter items:
ItemIdSkillIdSkillLv
1011124322
1011134323

Perfect Lapisian

Vanilla items define a perfect success rate (10000):
auto materialCount = 10;
auto reqRec = 10000;

auto rate = reqRec * 100; // 1000000
rate += materialCount;    // 1000010

Configuration

ColumnValueDescription
Level0:1Can use with Weapons
Country0:1Can use with Helmets
AttackFighter0:1Can use with Upper Armor
DefenseFighter0:1Can use with Lower Armor
PatrolRogue0:1Can use with Shields
ShootRogue0:1Can use with Gloves
AttackMage0:1Can use with Boots
ReqRec0:10000Success rate
Range0:19Minimum item enchant step
AttackTime1:20Maximum step
ReqVg0:1Needs item protection

Lapisian Remake

Use item 101101 to activate the window. The ReqLuc value determines the number of lapisians required for combination.
See system message 510 for more information about lapisian remake functionality.

Town Move Scrolls

The library reads TownMoveScroll keys from Map.ini to enable/disable item effects:
[SET_ZONE_0]
MapType          = F
WeatherState     = 0
TownMoveScroll   = 0
Movement is instant like the official server. Certain debuffs prevent movement. The ReqVg value is the NPC identifier:
ItemIdEffectReqVg (NPC ID)
101102104111
101103104112
101104104101
101105104102

Cooldowns

1000 ticks = ~1 second

Item Cooldowns

ReqIgTicks
00
115000
220000
325000
430000
560000
10600000

Monster Cooldowns

AttackSpecial3Ticks
05000
130000
260000
3180000
4300000
14604800000

Stored Procedures

Database stored procedures are available at: sdev-db/bin/sql

Item Mall Procedures

[dbo].[usp_Read_User_CashPoint_UsersMaster]
[dbo].[usp_Save_User_BuyPointItems2]
[dbo].[usp_Save_User_GiftPointItems2]
[dbo].[usp_Update_UserPoint]
If you receive an error during installation, change ALTER to CREATE and try again.

Build docs developers (and LLMs) love