Skip to content

Battlefield Data

BattleFieldData.xml defines PvP battlefields: instanced player-versus-player arenas with team composition rules, scheduling windows, reward structures, war point scoring, and mode-specific game logic (strongholds, gates, rounds, etc.).

VersionStatus
v92Full
v90-
v86-

Entity: battleFields Operations: create, update, delete, upsert


spec:
version: "1.0"
battleFields:
create:
- battleFieldId: 9001
type: "CaptureTheFlag"
name: 700001
guideText: 700002
commonData:
minTeamMember: 10
maxTeamMember: 15
minLevel: 65
maxLevel: 70
preCombatSec: 30
desertionAbnormalityId: 44440001
maxBattleMin: 20
forceExitSec: 60
continentId: 8001
bgm:
enter: "Music_PVP_Enter"
start: "Music_PVP_Start"
fadeTime: 1.5
enableTimes:
- day: "Mon"
openHour: 18
closeHour: 22
competitionPointReward: true
warPoint:
finalBlowWP: 50
finalBlowHelperWP: 25
minWarPointForRank: 100
reward:
minWarPointForReward: 50
rankingData:
- rank: 1
rewardId: 80001
rewardAmount: 10
availableItems:
items:
- id: 60001
combatItemTypes:
- id: "potion"
specificData:
autoReviveSec: 10
score:
victoryScore: 5000

Partial updates modify only specified attributes and children. Keyed children (enableTimes, rewardData, commanderSkillLists) are matched by their natural key on update — unmentioned entries are preserved.

spec:
version: "1.0"
battleFields:
update:
- battleFieldId: 9001
changes:
commonData:
maxBattleMin: 25
warPoint:
finalBlowWP: 60
enableTimes:
- day: "Mon"
openHour: 19
closeHour: 23

Only Monday’s schedule changes. Other days (Tue–Sun) remain as they were.

Use addItems and removeItems to modify the item list without restating all existing items:

spec:
version: "1.0"
battleFields:
update:
- battleFieldId: 9001
changes:
addItems:
- id: 60003
- id: 60004
removeItems:
- id: 60001

addItems is idempotent — adding an ID that already exists is a no-op. removeItems ignores IDs not present. These cannot be combined with availableItems in the same update (error E551).

spec:
version: "1.0"
battleFields:
delete:
- battleFieldId: 9001

Creates the battlefield if it does not exist, or replaces its children if it does. Applying the same upsert twice produces identical output.

spec:
version: "1.0"
battleFields:
upsert:
- battleFieldId: 9002
type: "DeathMatch"
name: 700010
commonData:
minTeamMember: 5
maxTeamMember: 5
minLevel: 65
maxLevel: 70
preCombatSec: 15
desertionAbnormalityId: 44440002
maxBattleMin: 15
forceExitSec: 30
continentId: 8002
bgm:
enter: "Music_DM_Enter"
start: "Music_DM_Start"
fadeTime: 2.0
enableTimes:
- day: "Sat"
openHour: 14
closeHour: 22
competitionPointReward: false
warPoint:
finalBlowWP: 30
minWarPointForRank: 50
reward:
minWarPointForReward: 30
availableItems:
items:
- id: 60002
specificData:
autoReviveSec: 5

PropertyTypeSinceRequiredDescription
battleFieldIdintv92YesUnique battlefield identifier (mapped from XSD id)
typestringv92YesBattlefield mode type (e.g. CaptureTheFlag, DeathMatch)
nameintv92YesString table ID for display name
guideTextintv92NoString table ID for guide description
helpDataIdintv92NoHelp system reference
blueTeamNameintv92NoString table ID for blue team name
redTeamNameintv92NoString table ID for red team name
enterLimitCountintv92NoMaximum daily entries
coolTimeMinintv92NoRe-entry cooldown in minutes
banRulestringv92NoBan rule identifier
listHideboolv92NoHide from matchmaking list
isNotOffboolv92NoPrevent disabling
commonDataCommonDatav92NoMatch rules, team spawns, level limits
bgmBGMv92NoBackground music tracks
rewardRewardv92NoReward configuration
enableTimeslist[EnableTime]v92NoWeekly schedule windows
warPointWarPointv92NoWar point scoring rules
availableItemsAvailableItemsv92NoAllowed items and combat item types
addItemslist[AvailableItem]v92NoAdd items to AvailableItems without removing existing (update only)
removeItemslist[AvailableItem]v92NoRemove items from AvailableItems by ID (update only)
specificDataSpecificDatav92NoMode-specific game logic
buffUIDataBuffUIDatav92NoBuff display configuration
commanderSkillListslist[CommanderSkillList]v92NoCommander skill sets per team
commonUIDataCommonUIDatav92NoUI display settings
competitionPointCompetitionPointv92NoCompetition point rewards
overrideSkillSetOverrideSkillSetv92NoSkill set override
rankAroundUIDataRankAroundUIDatav92NoRanking UI point weights
rankingCompetitionRankingCompetitionv92NoRanking competition class
resourceResourcev92NoVisual resource packages
resultCommentResultCommentv92NoResult screen messages
revisionRevisionv92NoLevel revision settings
riviveRivivev92NoRevive position overrides
ruleDataRuleDatav92NoRule reference
strongholdEffectStrongholdEffectv92NoStronghold capture effects
winConditionWinConditionv92NoWin condition parameters

Match rules, team spawn positions, and level restrictions.

PropertyTypeSinceRequiredDescription
minTeamMemberintv92NoMinimum players per team
maxTeamMemberintv92NoMaximum players per team
minLevelintv92NoMinimum character level
maxLevelintv92NoMaximum character level
preCombatSecintv92NoPre-combat countdown seconds
desertionAbnormalityIdintv92NoAbnormality applied on desertion
realTimeReviveboolv92NoAllow real-time revive
maxBattleMinintv92NoMaximum match duration in minutes
forceExitSecintv92NoSeconds before force exit after match end
banSecintv92NoBan duration in seconds for desertion
continentIdintv92NoMap continent reference
blueTeamSpawnPosstringv92NoBlue team spawn coordinates
redTeamSpawnPosstringv92NoRed team spawn coordinates
blueTeamSpawnDirintv92NoBlue team spawn facing direction
redTeamSpawnDirintv92NoRed team spawn facing direction
blueTeamDoorIdintv92NoBlue team entry door ID
redTeamDoorIdintv92NoRed team entry door ID
initCoolTimeSecintv92NoInitial cooldown seconds
blueTeamStringIdintv92NoBlue team string table ID
redTeamStringIdintv92NoRed team string table ID
despawnTerritoryIdsAfterCombatStartstringv92NoTerritory IDs to despawn when combat starts
useObserverModeboolv92NoEnable observer mode
observerViewDistancefloatv92NoObserver camera distance
isMultiKillBattleFieldboolv92NoTrack multi-kill statistics
minChatbanEnableMemberCountintv92NoMinimum members to enable chat ban
countOfMinFinalBlowintv92NoMinimum final blows threshold
teamslist[Team]v92NoTeam definitions (multi-team modes)

Per-team configuration within CommonData.

PropertyTypeSinceRequiredDescription
idintv92NoTeam identifier
spawnPosstringv92NoSpawn coordinates
bfTeamNamePlateColorIdintv92NoNameplate color ID
stringIdintv92NoTeam name string table ID
teamColorSetstringv92NoColor set identifier
teamMarkerImagePathstringv92NoMarker image path

Background music configuration.

PropertyTypeSinceRequiredDescription
fadeTimefloatv92NoFade transition time in seconds
enterstringv92NoMusic track on entering the battlefield
startstringv92NoMusic track when combat starts
finishstringv92NoMusic track when combat ends

Weekly scheduling window entries.

PropertyTypeSinceRequiredDescription
daystringv92NoDay of week (e.g. Mon, Tue, Sat)
openHourintv92NoOpening hour (0-23)
closeHourintv92NoClosing hour (0-23)
competitionPointRewardboolv92NoAward competition points during this window

Reward configuration with ranking and team reward sub-elements.

PropertyTypeSinceRequiredDescription
minWarPointForRewardintv92NoMinimum war points to qualify for rewards
expRewardGuildIdintv92NoGuild ID for experience reward
expRewardMultipleintv92NoExperience reward multiplier
rankingDatalist[RankingData]v92NoPer-rank reward entries
rewardDatalist[RewardData]v92NoContribution-based reward tiers
teamRewardDataTeamRewardDatav92NoTeam win/lose item rewards

Per-rank reward entry within Reward.

PropertyTypeSinceRequiredDescription
rankintv92NoRanking position
rewardIdintv92NoReward item ID
rewardAmountintv92NoReward quantity

Contribution-based reward tier within Reward.

PropertyTypeSinceRequiredDescription
maxContributeLimitintv92NoMaximum contribution cap
winPointintv92NoPoints awarded on win
losePointintv92NoPoints awarded on loss
bonusPointintv92NoBonus points
winCaptainPointintv92NoCaptain bonus on win
personalPointRatedecimalv92NoPersonal contribution rate multiplier
npcGuildIdintv92NoNPC guild reference for rewards
winExpintv92NoExperience on win
loseExpintv92NoExperience on loss

Item rewards mailed to winning/losing team members.

PropertyTypeSinceRequiredDescription
winTeamRewardItemintv92NoItem ID for winning team
winTeamRewardItemCountintv92NoItem count for winning team
loseTeamRewardItemintv92NoItem ID for losing team
loseTeamRewardItemCountintv92NoItem count for losing team
senderIdstringv92NoMail sender identifier
titlestringv92NoMail title
textstringv92NoMail body text

War point scoring rules for kills, assists, and objectives.

PropertyTypeSinceRequiredDescription
finalBlowWPintv92NoPoints for landing the killing blow
finalBlowHelperWPintv92NoPoints for assisting the killing blow
minWarPointForRankintv92NoMinimum war points to appear on rankings
killPointintv92NoPoints per kill
assistPointintv92NoPoints per assist
helperRangeintv92NoRange to qualify as assist
winWPintv92NoBonus points for winning
loseWPintv92NoPoints for losing
addWPintv92NoAdditional war points
perScoreintv92NoPoints per score increment
capturePointintv92NoPoints for capturing an objective
destroyedPointintv92NoPoints for destroying a structure
damageOnTargetintv92NoPoints for damage on objective target
attackStrongholdWPintv92NoPoints for attacking a stronghold
defenceStrongholdWPintv92NoPoints for defending a stronghold
captureStongholdWPintv92NoPoints for capturing a stronghold

Items and combat item types allowed in the battlefield.

PropertyTypeSinceRequiredDescription
itemslist[AvailableItem]v92NoAllowed item references
combatItemTypeslist[CombatItemType]v92NoAllowed combat item type categories
PropertyTypeSinceRequiredDescription
idintv92NoItem template ID
PropertyTypeSinceRequiredDescription
idstringv92NoCombat item type identifier

Mode-specific game logic. Properties and sub-elements vary by battlefield type. Only relevant sub-elements need to be specified for a given mode.

PropertyTypeSinceRequiredDescription
autoReviveSecintv92NoAuto-revive cooldown seconds
baseAttackShowIntervalfloatv92NoBase attack UI show interval
baseAttackShowSecfloatv92NoBase attack UI display duration
shareAlarmSecfloatv92NoShare alarm duration
toAttackSecintv92NoTime to begin attack phase
attackSocialMotionIdintv92NoSocial motion ID for attack action
toCaptureSecintv92NoTime to complete capture
autoRestoreGaugeintv92NoAuto-restore gauge rate
baseStepGaugeintv92NoBase step gauge value
captureTryLimitUserintv92NoMax concurrent capture attempts
oneUserCaptureGaugePerSecintv92NoCapture gauge rate per player
plusCaptureGaugePerAddUserintv92NoExtra gauge per additional player
toAutoRestoreChangeSecintv92NoSeconds before auto-restore activates
roundRoundv92NoRound-based mode settings
scoreScorev92NoScore-based mode settings
strongholdslist[Stronghold]v92NoStronghold definitions
nodePointslist[NodePoint]v92NoNode point positions
gateslist[Gate]v92NoGate definitions

Additional optional sub-elements available: aeroData, airShipRespawns, bfTreasureOfKumas, castleDoor, guardTower, guardTowerList, irregularRound, pveSkillList, systemMessage.

Round-based mode configuration.

PropertyTypeSinceRequiredDescription
maxRoundintv92NoTotal number of rounds
victoryRoundintv92NoRounds needed to win
roundMinCountDownintv92NoRound countdown in minutes
maxBatleFieldRoundMinintv92NoMaximum round duration in minutes
resultPrintTimeintv92NoResult display duration

Score-based mode configuration.

PropertyTypeSinceRequiredDescription
victoryScoreintv92NoScore needed to win
tensionScoreintv92NoScore threshold for tension state
blueTeamStartScoreintv92NoBlue team starting score
redTeamStartScoreintv92NoRed team starting score

Capturable stronghold position within SpecificData.

PropertyTypeSinceRequiredDescription
idintv92NoStronghold identifier
nameintv92NoString table ID for stronghold name
posstringv92NoPosition coordinates
posDirintv92NoFacing direction
tombPosstringv92NoTombstone position coordinates
tombDirintv92NoTombstone facing direction
guideEffectIdintv92NoGuide effect reference
reviveSelectableboolv92NoAllow selecting this stronghold as revive point

Destructible gate within SpecificData.

PropertyTypeSinceRequiredDescription
idintv92NoGate identifier
continentIdintv92NoMap continent reference
posstringv92NoPosition coordinates
posDirintv92NoFacing direction
templateIdintv92NoNPC template reference
alarmCoolTimefloatv92NoAlarm cooldown time
alarmWhenHpBelowstringv92NoHP threshold for alarm trigger

Capture node position within SpecificData.

PropertyTypeSinceRequiredDescription
idintv92NoNode point identifier
posstringv92NoPosition coordinates

BattleFieldData
├── BattleField (id, type, name, guideText?, blueTeamName?, redTeamName?, helpDataId?)
│ ├── CommonData (minTeamMember, maxTeamMember, minLevel, maxLevel, ...)
│ │ └── Team* (id, spawnPos, stringId?, teamColorSet?, ...)
│ ├── BGM (enter, start, finish?, fadeTime)
│ ├── EnableTimeList
│ │ └── EnableTime* (day, openHour, closeHour, competitionPointReward)
│ ├── Reward (minWarPointForReward?)
│ │ ├── RankingData* (rank, rewardId?, rewardAmount?)
│ │ ├── RewardData* (maxContributeLimit, winPoint, losePoint, ...)
│ │ └── TeamRewardData? (winTeamRewardItem, loseTeamRewardItem, ...)
│ ├── WarPoint (finalBlowWP?, finalBlowHelperWP?, minWarPointForRank?)
│ ├── AvailableItems
│ │ ├── Item* (id)
│ │ └── CombatItemType* (id)
│ ├── SpecificData (autoReviveSec?, ...)
│ │ ├── Round? (maxRound?, victoryRound?, roundMinCountDown)
│ │ ├── Score? (victoryScore, tensionScore?, ...)
│ │ ├── StrongholdList?
│ │ │ └── Stronghold* (id, name, pos, posDir, ...)
│ │ ├── NodePointList?
│ │ │ └── NodePoint* (id, pos)
│ │ ├── GateList?
│ │ │ └── Gate* (id, continentId, pos, posDir, templateId, ...)
│ │ └── ... (AeroData, AirShipRespawn, CastleDoor, GuardTower, etc.)
│ ├── BuffUIData?
│ ├── CommanderSkillList* (team)
│ ├── CommonUIData?
│ ├── CompetitionPoint?
│ ├── OverrideSkillSet?
│ ├── RankAroundUIData?
│ ├── RankingCompetition?
│ ├── Resource?
│ ├── ResultComment?
│ ├── Revision?
│ ├── Rivive?
│ ├── RuleData?
│ ├── StrongholdEffect?
│ └── WinCondition?
└── BattleFieldGlobalData (server-only, not modifiable via DSL)

  • Update semantics for keyed children: On update, enableTimes (keyed by day), rewardData (keyed by npcGuildId), and commanderSkillLists (keyed by team) use keyed merge — only specified entries are modified; unmentioned entries are preserved. On create and upsert, these children use clear-and-replace as usual.
  • Incremental item operations: addItems and removeItems are update-only properties for targeted changes to the item list. They cannot be combined with availableItems in the same update (error E551). addItems/removeItems only affect <Item> children; <AvailableCombatItemType> entries are untouched.
  • SpecificData is polymorphic: different battlefield type values use different subsets of SpecificData sub-elements. Only relevant sub-elements need to be specified.
  • BattleFieldGlobalData is a separate sibling element in the XML and is not modifiable via the DSL.
  • The name, guideText, blueTeamName, and redTeamName root attributes are string table IDs (int), not text strings.
  • The rivive spelling (not “revive”) matches the original data format and must be used as-is.
  • Position attributes (e.g. pos, blueTeamSpawnPos) use a string-encoded coordinate format.