Skip to content

The configuration file is located at:
้…็ฝฎๆ–‡ไปถไฝ็ฝฎ:
้…็ฝฎใƒ•ใ‚กใ‚คใƒซใฎไฝ็ฝฎ:
Elin/BepInEx/config/dk.elinplugins.customdialogloader.cfg

Logging.Verbose = false โ€‹

Verbose information that may be helpful(spamming) for debugging
Debug็”จ็š„ไฟกๆฏ่พ“ๅ‡บ
ใƒ‡ใƒใƒƒใ‚ฐ็”จใฎ่ฉณ็ดฐๆƒ…ๅ ฑใ‚’ๅ‡บๅŠ›(ๅคง้‡ใƒญใ‚ฐ็™บ็”Ÿใฎๅฏ่ƒฝๆ€งใ‚ใ‚Š)

Logging.Execution = true โ€‹

Measure the extra loading time added by CWL, this is displayed in Player.log
่ฎฐๅฝ•CWL่ฟ่กŒๆ—ถ้—ด
CWLใฎๅฎŸ่กŒๆ™‚้–“ใ‚’่จ˜้Œฒ

BGM.SeamlessStreaming = true โ€‹

When switching to a new playlist, if current playing BGM is included in the new playlist, seamlessly stream it
ๅฝ“ๅˆ‡ๆขๆ’ญๆ”พๅˆ—่กจๆ—ถ๏ผŒๅฆ‚ๆžœๅฝ“ๅ‰ๆ’ญๆ”พ็š„ๆ›ฒ็›ฎๅœจๆ–ฐๆ’ญๆ”พๅˆ—่กจไธญ๏ผŒๅˆ™ๅฐ่ฏ•ๆ— ็ผ่ก”ๆŽฅ
ๅ†็”Ÿใƒชใ‚นใƒˆๅˆ‡ใ‚Šๆ›ฟใˆๆ™‚ใซใ€็พๅœจๅ†็”Ÿไธญใฎๆ›ฒใŒๆ–ฐใ—ใ„ใƒชใ‚นใƒˆใซๅซใพใ‚Œใ‚‹ๅ ดๅˆใ€ใ‚ทใƒผใƒ ใƒฌใ‚นใช็ถ™็ถšๅ†็”Ÿใ‚’่ฉฆ่กŒ

Caching.Talks = true โ€‹

Cache GetDialog/HasTopic talks instead of loading & building map everytime
็ผ“ๅญ˜GetDialog/HasTopicๆž„ๅปบ็š„ๅฏน่ฏๆ–‡ๆœฌ่กจ่€Œไธๆ˜ฏๆฏๆฌก้ƒฝ้‡ๆ–ฐๅŠ ่ฝฝ+ๆž„ๅปบ
GetDialog/HasTopicใ‚’ไฝฟ็”จใ—ใฆๆง‹็ฏ‰ใ•ใ‚ŒใŸๅฏพ่ฉฑใƒ†ใ‚ญใ‚นใƒˆ่กจใ‚’ๆฏŽๅ›žๅ†่ชญใฟ่พผใฟใ—ใฆๆง‹็ฏ‰ใ™ใ‚‹ใฎใงใฏใชใใ€ใ‚ญใƒฃใƒƒใ‚ทใƒฅใ‚’ๅˆฉ็”จใ™ใ‚‹

Caching.Types = true โ€‹

Cache ClassCache types early instead of roundtrip lookup & querying all assemblies
ๆๅ‰ClassCache็š„็ฑป็ผ“ๅญ˜ไผ˜ๅ…ˆ็บง่€Œไธๆ˜ฏๆฏๆฌก้‡ๆ–ฐๆœ็ดข
ใ‚ฏใƒฉใ‚นใ‚ญใƒฃใƒƒใ‚ทใƒฅ๏ผˆClassCache๏ผ‰ใฎใ‚ฏใƒฉใ‚นใ‚ญใƒฃใƒƒใ‚ทใƒฅใฎๅ„ชๅ…ˆๅบฆใ‚’ๅ‰ใ‚‚ใฃใฆ่จญๅฎšใ—ใ€ๆฏŽๅ›žๅ†ๆคœ็ดขใ™ใ‚‹ใฎใงใฏใชใใ—ใพใ™

Caching.Paths = true โ€‹

Cache paths relocated by CWL instead of iterating new paths
็ผ“ๅญ˜CWL้‡ๅฎšๅ‘็š„่ทฏๅพ„่€Œไธๆ˜ฏๆฏๆฌก้‡ๆ–ฐๆœ็ดข
CWLใงๅ†้…็ฝฎใ•ใ‚ŒใŸใƒ‘ใ‚นใ‚’ใ‚ญใƒฃใƒƒใ‚ทใƒฅใ—ใ€ๆฏŽๅ›žใฎๅ†ๆคœ็ดขใ‚’็œ็•ฅ

Caching.Sprites = true โ€‹

Cache sprites created by CWL instead of creating new from textures
็ผ“ๅญ˜CWL็”Ÿๆˆ็š„่ดดๅ›พ่€Œไธๆ˜ฏๆฏๆฌก้‡ๆ–ฐๆž„ๅปบ
CWLใง็”Ÿๆˆใ—ใŸ็”ปๅƒใ‚’ๆฏŽๅ›žๅ†ๆง‹็ฏ‰ใ›ใšใ‚ญใƒฃใƒƒใ‚ทใƒฅ

Dialog.ExpandedActions = true โ€‹

Expand the actions table for drama sheets for mod authors to utilize
ไธบๅ‰งๆƒ…่กจๅฏ็”จactionๆ‹“ๅฑ•๏ผŒModไฝœ่€…่ƒฝๅคŸๅˆฉ็”จๆ›ดๅคšๅŠŸ่ƒฝ่ฎพ่ฎกๅ‰งๆƒ…่กจ
ๅฐๆœฌใ‚ทใƒผใƒˆใฎใ‚ขใ‚ฏใ‚ทใƒงใƒณใƒ†ใƒผใƒ–ใƒซใ‚’ๆ‹กๅผตใ—ใ€MODไฝœ่€…ใŒ่ฟฝๅŠ ๆฉŸ่ƒฝใ‚’ๅˆฉ็”จๅฏ่ƒฝใซ

Dialog.ExpandedActionsAllowExternal = true โ€‹

Allow invoking external methods from other assemblies within the drama sheet, this may be unstable
ไธบๅ‰งๆƒ…่กจๅฏ็”จactionๆ‹“ๅฑ•ๆ—ถๅŒๆ—ถๅ…่ฎธ่ฐƒ็”จๅค–้ƒจ็จ‹ๅบ้›†็š„ๆ–นๆณ•๏ผŒ่ฟ™ๅฏ่ƒฝไธ็จณๅฎš
ใ‚ขใ‚ฏใ‚ทใƒงใƒณๆ‹กๅผตๆ™‚ใซๅค–้ƒจใ‚ขใ‚ปใƒณใƒ–ใƒชใฎใƒกใ‚ฝใƒƒใƒ‰ๅ‘ผใณๅ‡บใ—ใ‚’่จฑๅฏ(ไธๅฎ‰ๅฎšๆ€งใ‚ใ‚Š)

Dialog.NoOverlappingSounds = true โ€‹

During dialogs, prevent sound actions from overlapping with each other by stopping previous sound first
ๅฏน่ฏไธญ็š„soundๅŠจไฝœไธไผšๅฝผๆญค้‡ๅ  - ไธŠไธ€ไธช้Ÿณๆบไผšๅ…ˆ่ขซๅœๆญข
ไผš่ฉฑไธญใฎsoundใ‚ขใ‚ฏใ‚ทใƒงใƒณใŒ้‡่ค‡ใ—ใชใ„ใ‚ˆใ†ใซใ€ๅ‰ๅ›ž้Ÿณๆบใ‚’ๅœๆญขใ—ใฆใ‹ใ‚‰ๅ†็”Ÿ

Dialog.VariableQuote = true โ€‹

For talk texts, allow both JP quote ใ€Œใ€ and EN quote "" with current language quote to be used as Msg.colors.Talk identifier
ๅฏน่ฏๆ–‡ๆœฌๅ…่ฎธๆ—ฅ่ฏญๅผ•ๅทๅ’Œ่‹ฑ่ฏญๅผ•ๅทไปฅๅŠๅฝ“ๅ‰่ฏญ่จ€็š„ๅผ•ๅทๅŒๆ—ถไฝœไธบTalk้ขœ่‰ฒๆฃ€ๆต‹่ฏ
ๅฐๆœฌใƒ†ใ‚ญใ‚นใƒˆใงๆ—ฅๆœฌ่ชžๆ‹ฌๅผงใ€Œใ€ใจ่‹ฑ่ชžๅผ•็”จ็ฌฆ""ใ€ใŠใ‚ˆใณ็พๅœจ่จ€่ชžใฎๅผ•็”จ็ฌฆใ‚’Msg.colors.Talk่ญ˜ๅˆฅๅญใจใ—ใฆๅ…ฑ็”จๅฏ่ƒฝใซ

Exceptions.Analyze = true โ€‹

Analyze the unhandled exception during gameplay and log the results
ๅˆ†ๆžๆธธๆˆ่ฟ่กŒๆ—ถๆŠ›ๅ‡บ็š„ๅผ‚ๅธธ
ใ‚ฒใƒผใƒ ๅฎŸ่กŒๆ™‚ใซ็™บ็”Ÿใ—ใŸไพ‹ๅค–ใ‚’ๅˆ†ๆž่จ˜้Œฒ

Exceptions.Popup = true โ€‹

Display a popup for the analyzed unhandled exception
ๅœจๆธธๆˆไธญๆ˜พ็คบ่ฟ่กŒๆ—ถๆŠ›ๅ‡บ็š„ๅผ‚ๅธธ
ใ‚ฒใƒผใƒ ็”ป้ขใซ่งฃๆžๆธˆใฟไพ‹ๅค–ใฎใƒใƒƒใƒ—ใ‚ขใƒƒใƒ—ใ‚’่กจ็คบ

Patches.FixBaseGameAvatar = true โ€‹

When repositioning custom character icons, let CWL fix base game characters too
E.g. fairy icons are usually clipping through upper border
ๅœจ้‡ๆ–ฐ่ฐƒๆ•ด่‡ชๅฎšไน‰่ง’่‰ฒๅคดๅƒไฝ็ฝฎๆ—ถ๏ผŒ่ฎฉCWLไนŸไฟฎๅคๆธธๆˆๆœฌไฝ“่ง’่‰ฒๅคดๅƒไฝ็ฝฎใ€‚ไพ‹ๅฆ‚๏ผŒๅฆ–็ฒพ่ง’่‰ฒ็š„ๅคดๅƒ้€šๅธธไผš่ถ…ๅ‡บ่พน็•Œ
ใ‚ซใ‚นใ‚ฟใƒ ใ‚ญใƒฃใƒฉใ‚ฏใ‚ฟใƒผใ‚ขใ‚คใ‚ณใƒณไฝ็ฝฎ่ชฟๆ•ดๆ™‚ใ€ๆœฌไฝ“ใ‚ญใƒฃใƒฉใ‚ฏใ‚ฟใƒผใฎไฝ็ฝฎใ‚‚ไฟฎๆญฃ(ไพ‹๏ผšๅฆ–็ฒพใ‚ขใ‚คใ‚ณใƒณใŒๅขƒ็•Œใ‚’่ถ…ใˆใ‚‹ๅ•้กŒ)

Patches.FixBaseGamePopup = true โ€‹

When repositioning custom character pop ups, let CWL fix base game characters too
E.g. using custom skins will result the speech bubble and emote icons shown way above their heads
ๅœจ้‡ๆ–ฐ่ฐƒๆ•ด่‡ชๅฎšไน‰่ง’่‰ฒๆฐ”ๆณกไฝ็ฝฎๆ—ถ๏ผŒ่ฎฉCWLไนŸไฟฎๅคๆธธๆˆๆœฌไฝ“่ง’่‰ฒๆฐ”ๆณกไฝ็ฝฎใ€‚ไพ‹ๅฆ‚๏ผŒๆ›ดๆ”น่ดดๅ›พ็šฎ่‚ค็š„่ง’่‰ฒ็š„ๆฐ”ๆณกๆก†ไผšๆ˜พ็คบ็š„ๅพˆ้ซ˜
ใ‚ซใ‚นใ‚ฟใƒ ใ‚ญใƒฃใƒฉใ‚ฏใ‚ฟใƒผๅนใๅ‡บใ—ไฝ็ฝฎ่ชฟๆ•ดๆ™‚ใ€ๆœฌไฝ“ใ‚ญใƒฃใƒฉใ‚ฏใ‚ฟใƒผใฎไฝ็ฝฎใ‚‚ไฟฎๆญฃ(ไพ‹๏ผšใ‚นใ‚ญใƒณๅค‰ๆ›ดๆ™‚ใฎๅนใๅ‡บใ—ไฝ็ฝฎใ‚บใƒฌ)

Patches.QualifyTypeName = true โ€‹

When importing custom classes for class cache, let CWL qualify its type name
Element, BaseCondition, Trait, Zone, Quest
ๅฝ“ไธบ็ฑป็ผ“ๅญ˜ๅฏผๅ…ฅ่‡ชๅฎšไน‰็ฑปๆ—ถ๏ผŒ่ฎฉCWLไธบๅ…ถ็”Ÿๆˆ้™ๅฎš็ฑปๅž‹ๅ
ใ‚ฏใƒฉใ‚นใ‚ญใƒฃใƒƒใ‚ทใƒฅใธใฎใ‚ซใ‚นใ‚ฟใƒ ใ‚ฏใƒฉใ‚นใ‚คใƒณใƒใƒผใƒˆๆ™‚ใ€CWLใซๅฎŒๅ…จไฟฎ้ฃพๅž‹ๅใ‚’็”Ÿๆˆใ•ใ›ใ‚‹

Patches.SafeCreateClass = true โ€‹

When custom classes fail to create from save, let CWL replace it with a safety cone and keep the game going
ๅฝ“่‡ชๅฎšไน‰็ฑปๆ— ๆณ•ๅŠ ่ฝฝๆ—ถ๏ผŒ่ฎฉCWLๅฐ†ๅ…ถๆ›ฟๆขไธบๅฎ‰ๅ…จ้”ฅไปฅไฟๆŒๆธธๆˆ่ฟ›่กŒ
ใ‚ซใ‚นใ‚ฟใƒ ใ‚ฏใƒฉใ‚นใฎใƒญใƒผใƒ‰ๅคฑๆ•—ๆ™‚ใ€ๅฎ‰ๅ…จใ‚ณใƒผใƒณใงไปฃๆ›ฟใ—ใฆใ‚ฒใƒผใƒ ใ‚’็ถ™็ถš

Source.AllowProcessors = true โ€‹

Allow CWL to run pre/post processors for workbook, sheet, and cells.
ๅ…่ฎธCWLไธบๅทฅไฝœ็ฐฟใ€ๅทฅไฝœ่กจใ€ๅ•ๅ…ƒๆ ผๆ‰ง่กŒ้ข„/ๅŽๅค„็†
ใƒฏใƒผใ‚ฏใƒ–ใƒƒใ‚ฏใƒปใƒฏใƒผใ‚ฏใ‚ทใƒผใƒˆใƒปใ‚ปใƒซใซๅฏพใ™ใ‚‹ๅ‰ๅ‡ฆ็†/ๅพŒๅ‡ฆ็†ใฎๅฎŸ่กŒใ‚’่จฑๅฏ

Source.NamedImport = true โ€‹

When importing incompatible source sheets, try importing via column name instead of order
ๅฝ“ๅฏผๅ…ฅๅฏ่ƒฝไธๅ…ผๅฎน็š„ๆบ่กจๆ—ถ๏ผŒๅ…่ฎธCWLไฝฟ็”จๅˆ—ๅไปฃๆ›ฟๅˆ—ๅบๅฏผๅ…ฅ
ไบ’ๆ›ๆ€งใฎใชใ„ใ‚ฝใƒผใ‚นใ‚ทใƒผใƒˆใ‚คใƒณใƒใƒผใƒˆๆ™‚ใ€ๅˆ—็•ชๅทใงใฏใชใๅˆ—ๅใ‚’ไฝฟ็”จใ—ใŸใ‚คใƒณใƒใƒผใƒˆใ‚’่จฑๅฏ

Source.OverrideSameId = true โ€‹

When importing rows with an existing ID, replace it instead of adding duplicate rows
ๅฝ“ๅฏผๅ…ฅ้‡ๅคID็š„ๅ•ๅ…ƒ่กŒๆ—ถ๏ผŒ่ฆ†็›–ๆ—ง่กŒ่€Œไธๆ˜ฏๆทปๅŠ ๆ–ฐ่กŒ
้‡่ค‡IDใฎ่กŒใ‚’ใ‚คใƒณใƒใƒผใƒˆๆ™‚ใ€ๆ–ฐ่ฆ่ฟฝๅŠ ใ›ใšๆ—ขๅญ˜่กŒใ‚’ไธŠๆ›ธใ

Source.RethrowException = true โ€‹

Rethrow the excel exception as SourceParseException with more details attached
ๅฝ“ๆ•่ŽทExcel่งฃๆžๅผ‚ๅธธๆ—ถ๏ผŒ็”Ÿๆˆๅฝ“ๅ‰ๅ•ๅ…ƒๆ ผ่ฏฆ็ป†ไฟกๆฏๅนถ้‡ๆŠ›ไธบSourceParseException
Excel่งฃๆžไพ‹ๅค–็™บ็”Ÿๆ™‚ใ€ใ‚ปใƒซ่ฉณ็ดฐๆƒ…ๅ ฑใ‚’ไป˜ๅŠ ใ—ใŸSourceParseExceptionใจใ—ใฆๅ†้€ๅ‡บ

Source.SheetInspection = true โ€‹

When importing incompatible source sheets, dump headers for debugging purposes
ๅฝ“ๅฏผๅ…ฅๅฏ่ƒฝไธๅ…ผๅฎน็š„ๆบ่กจๆ—ถ๏ผŒๅๅ‡บ่ฏฅ่กจ็š„่ฏฆ็ป†ไฟกๆฏ
ไบ’ๆ›ๆ€งใฎใชใ„ใ‚ฝใƒผใ‚นใ‚ทใƒผใƒˆใ‚คใƒณใƒใƒผใƒˆๆ™‚ใ€ใƒ‡ใƒใƒƒใ‚ฐ็”จใซ่ฉณ็ดฐๆƒ…ๅ ฑใ‚’ๅ‡บๅŠ›

Source.SheetMigrate = false โ€‹

(Experimental, disabled due to frequent game update)
When importing incompatible source sheets, generate migrated file in the same directory
(ๅฎž้ชŒๆ€ง, ๆธธๆˆๆ›ดๆ–ฐ้ข‘็นๆš‚ๆ—ถ็ฆ็”จ)
ๅฝ“ๅฏผๅ…ฅๅฏ่ƒฝไธๅ…ผๅฎน็š„ๆบ่กจๆ—ถ๏ผŒๅœจๅŒไธ€็›ฎๅฝ•็”Ÿๆˆๅฝ“ๅ‰็‰ˆๆœฌ็š„ๅ‡็บง่กจ
(ๅฎŸ้จ“็š„ๆฉŸ่ƒฝใ€ใ‚ฒใƒผใƒ ๆ›ดๆ–ฐ้ ปๅบฆใซใ‚ˆใ‚Šไธ€ๆ™‚็š„ใซ็„กๅŠนๅŒ–)
ไบ’ๆ›ๆ€งใฎใชใ„ใ‚ฝใƒผใ‚นใ‚ทใƒผใƒˆใ‚คใƒณใƒใƒผใƒˆๆ™‚ใ€ๅŒใƒ‡ใ‚ฃใƒฌใ‚ฏใƒˆใƒชใซ็งป่กŒๆธˆใฟใƒ•ใ‚กใ‚คใƒซใ‚’็”Ÿๆˆ

Source.TrimSpaces = true โ€‹

Trim all leading and trailing spaces from cell value
Requires Source.AllowProcessors set to true
็งป้™คๅ•ๅ…ƒๆ ผๆ•ฐๆฎ็š„ๅ‰ๅŽ็ฉบๆ ผๆ–‡ๆœฌ๏ผŒ้œ€่ฆๅ…่ฎธๆ‰ง่กŒๅ•ๅ…ƒๆ ผๅŽๅค„็†
ใ‚ปใƒซใƒ‡ใƒผใ‚ฟใฎๅ‰ๅพŒ็ฉบ็™ฝๆ–‡ๅญ—ใ‚’ๅ‰Š้™ค(ใ‚ปใƒซๅพŒๅ‡ฆ็†ใฎๅฎŸ่กŒ่จฑๅฏใŒๅฟ…่ฆ)