s2cfgtojson 4.1.1 → 4.1.2

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 (3) hide show
  1. package/enums.mts +3 -1
  2. package/package.json +1 -1
  3. package/types.mts +190 -25
package/enums.mts CHANGED
@@ -1152,7 +1152,7 @@ export type EMarkerType = `EMarkerType::${
1152
1152
  | "Bed"
1153
1153
  | "Guide"
1154
1154
  | "Hub"
1155
- | "Location"
1155
+ | "Location3Axis"
1156
1156
  | "Medic"
1157
1157
  | "None"
1158
1158
  | "PlayerStorage"
@@ -2096,3 +2096,5 @@ export type EObjBoolParams = `EObjBoolParams::${
2096
2096
  | "IsOffsetAimingEnabled"
2097
2097
  | "IsNightVisionEnabled"
2098
2098
  | "IsDetectorInHands"}`;
2099
+
2100
+ export type ECombatTactics = `ECombatTactics::${"Attack" | "None"}`;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "s2cfgtojson",
3
- "version": "4.1.1",
3
+ "version": "4.1.2",
4
4
  "description": "Converts Stalker 2 Cfg file into POJOs",
5
5
  "keywords": [
6
6
  "stalker",
package/types.mts CHANGED
@@ -110,6 +110,12 @@ import {
110
110
  ELairType,
111
111
  EAimAssistPresetType,
112
112
  ESaveSubType,
113
+ ETriggerShape,
114
+ EPillowAnomalyBiomeType,
115
+ EALifeGroupPriorityType,
116
+ ELairPreferredSpawnType,
117
+ ERadiationPreset,
118
+ ECombatTactics,
113
119
  } from "./enums.mts";
114
120
 
115
121
  import { Struct } from "./Struct.mjs";
@@ -1432,7 +1438,7 @@ export type QuestNodePrototype = GetStructType<{
1432
1438
  DialogChainPrototypeSID: string;
1433
1439
  DialogMembers: string[];
1434
1440
  TalkThroughRadio: boolean[];
1435
- DialogObjectLocation: Location[];
1441
+ DialogObjectLocation: Location3Axis[];
1436
1442
  NPCToStartDialog: number;
1437
1443
  StartForcedDialog: boolean;
1438
1444
  WaitAllDialogEndingsToFinish: boolean;
@@ -1546,7 +1552,7 @@ export type QuestNodePrototype = GetStructType<{
1546
1552
  EquipmentItemSID: string;
1547
1553
  TargetFaction: string;
1548
1554
  InteractableQuestGuid: string;
1549
- TargetLocations: Location[];
1555
+ TargetLocations: Location3Axis[];
1550
1556
  VolumeGuid: string;
1551
1557
  ShouldBeKilled: string;
1552
1558
  FullSquad: boolean;
@@ -1556,13 +1562,13 @@ export type QuestNodePrototype = GetStructType<{
1556
1562
  Location: string;
1557
1563
  NewTitle: number;
1558
1564
  NewDescription: number;
1559
- IdlePosition: Location;
1560
- LookAt: Location;
1565
+ IdlePosition: Location3Axis;
1566
+ LookAt: Location3Axis;
1561
1567
  MinimalReputationLevel: ERelationLevel;
1562
- EffectLocation: Location;
1568
+ EffectLocation: Location3Axis;
1563
1569
  EffectPath: string;
1564
1570
  Continue: boolean;
1565
- SoundLocation: Location;
1571
+ SoundLocation: Location3Axis;
1566
1572
  AKEventPath: string;
1567
1573
  MasterAKEventForLoad: string;
1568
1574
  FinishOnAKEvent: boolean;
@@ -1585,7 +1591,7 @@ export type QuestNodePrototype = GetStructType<{
1585
1591
  AbilityPrototypeSID: string;
1586
1592
  SequentialAbilityPriority: number;
1587
1593
  SequentialAbilityModificationMode: EModifyAbilitySequenceQuestNodeMode;
1588
- LookAtLocation: Location;
1594
+ LookAtLocation: Location3Axis;
1589
1595
  Duration: number;
1590
1596
  EnteringDuration: number;
1591
1597
  LookAtActorFName: string;
@@ -1625,8 +1631,8 @@ export type QuestNodePrototype = GetStructType<{
1625
1631
  PDATutorialNoteSID: string;
1626
1632
  TutorialSID: string;
1627
1633
  RequiredInputs: string[];
1628
- ShootingPosition: Location;
1629
- ShootTargetLocation: Location;
1634
+ ShootingPosition: Location3Axis;
1635
+ ShootTargetLocation: Location3Axis;
1630
1636
  ShotsQueueCount: number;
1631
1637
  PostEffectProcessorSID: string;
1632
1638
  PostProcessParamValue: number;
@@ -1646,7 +1652,7 @@ export type QuestNodePrototype = GetStructType<{
1646
1652
  AddToPlayerStash: boolean;
1647
1653
  MovementPose: EAIMovementPose;
1648
1654
  CustomRestPlaceSelection: boolean;
1649
- RestLocation: Location;
1655
+ RestLocation: Location3Axis;
1650
1656
  QuestItemGeneratorSID: string;
1651
1657
  LookAtPlaceholder: string;
1652
1658
  MoveFrom: string;
@@ -1666,7 +1672,7 @@ export type QuestNodePrototype = GetStructType<{
1666
1672
  LeaveAnomalyZoneComments: string;
1667
1673
  ReachPointComments: {
1668
1674
  ReachPointComment: string;
1669
- ReachPointLocation: Location;
1675
+ ReachPointLocation: Location3Axis;
1670
1676
  DialogMembers: string;
1671
1677
  }[];
1672
1678
  TargetMoneyAmount: number;
@@ -1711,7 +1717,7 @@ export type QuestNodePrototype = GetStructType<{
1711
1717
  RestrictedFaction: Record<Faction, ESpaceRestrictionType>;
1712
1718
  NameSID: string;
1713
1719
  MoveToPlayer: boolean;
1714
- TargetLocation: Location;
1720
+ TargetLocation: Location3Axis;
1715
1721
  CustomSleepPlaceSelection: boolean;
1716
1722
  }>;
1717
1723
 
@@ -1870,7 +1876,7 @@ interface IArtifactPrototype extends IItemPrototype {
1870
1876
  Blueprint: string;
1871
1877
  ParticleOnImpact: string;
1872
1878
  FakeArtifactHaloVFX: string;
1873
- ViewOffset: Location;
1879
+ ViewOffset: Location3Axis;
1874
1880
  LocalizationSID: string;
1875
1881
  DamageToStaminaCoefficient: number;
1876
1882
  DamageToWeightCoefficient: number;
@@ -2223,7 +2229,6 @@ export type SpawnActorPrototype = GetStructType<{
2223
2229
  CorpseStashSID: string;
2224
2230
  DeadPose: string;
2225
2231
  AmmoCount: number;
2226
- OverrideFaction: Faction;
2227
2232
  OverrideRank: boolean;
2228
2233
  HP: number;
2229
2234
  DamageMultiplier: number;
@@ -2239,6 +2244,161 @@ export type SpawnActorPrototype = GetStructType<{
2239
2244
  }[];
2240
2245
  RespawnMembers: boolean;
2241
2246
  IsLootedOnDifficulties: string;
2247
+ OverrideFaction: Faction;
2248
+ TriggerShape: ETriggerShape;
2249
+ ContextualActionSID: string;
2250
+ CanInteractWithPlayer: boolean;
2251
+ ContextualActionPreconditions: string;
2252
+ CompoundAnimationReferences: string;
2253
+ AttachReferences: string;
2254
+ InLocationRotation: {
2255
+ Vector: Location3Axis;
2256
+ Rotation: Rotation;
2257
+ }[][];
2258
+ CenterLocationRotation: {
2259
+ Vector: Location3Axis;
2260
+ Rotation: Rotation;
2261
+ }[];
2262
+ GeigerTriggerOffset: number;
2263
+ Radioactivity: ERadiationPreset;
2264
+ PostEffectProcessorSID: string;
2265
+ RadiationCycleSpeedPostEffectSID: string;
2266
+ NavModifierVolume: string;
2267
+ StartPresetID: number;
2268
+ AnomaliesPresets: string[][];
2269
+ EffectPrototypeSIDs: string[];
2270
+ LairPrototypeSID: string;
2271
+ LairType: ELairType;
2272
+ CanBeCaptured: boolean;
2273
+ CanAttack: boolean;
2274
+ CanDefend: boolean;
2275
+ InitialInhabitantFaction: string;
2276
+ ActiveLair: boolean;
2277
+ LairPreferredSpawnType: ELairPreferredSpawnType;
2278
+ Volumes: {
2279
+ Volume: string;
2280
+ ShowMarker: boolean;
2281
+ NumOfContextualActions: number;
2282
+ RestrictorVolume: string;
2283
+ SpaceRestrictorOffset: number;
2284
+ }[] & {
2285
+ LairCoreVolumes: string[];
2286
+ LairTerritoryVolumes: string[];
2287
+ NavModifierVolumes: string[];
2288
+ };
2289
+ RestrictionRadius: number;
2290
+ bRestrictorVolumeEnabled: boolean;
2291
+ MaxSpawnRank: ERank;
2292
+ MinSpawnRank: ERank;
2293
+ CorpsePrototypeSID: string;
2294
+ DecalsMaterialSID: string;
2295
+ ShouldTraceOnOverlap: boolean;
2296
+ BubbleInitialLocation: Location3Axis;
2297
+ ElectroBakedData: {
2298
+ ElectroTraceStartPoint: string;
2299
+ ElectroTraceEndPoint: string;
2300
+ ElectroNormalVector: string;
2301
+ }[];
2302
+ DisableSpawnAndStrafeInThisAnomaly: boolean;
2303
+ OverrideArtifactSpawnLocation: string;
2304
+ bUseCustomLocation: boolean;
2305
+ RestrictedFactions: string[];
2306
+ HubOwnerGuid: string;
2307
+ MarkerSID: string;
2308
+ LockReceivers: string[];
2309
+ UnlockReceivers: string[];
2310
+ CloseDoorRadius: number;
2311
+ UnlockDoorTime: number;
2312
+ PillowAnomalyBiomeType: EPillowAnomalyBiomeType;
2313
+ FreeformTriggerHeight: number;
2314
+ FreeformTriggerVertices: Location2Axis[];
2315
+ ContextualActionAccessibility: number;
2316
+ AllowedUserRestriction: string;
2317
+ IgnoreCollisionActors: string;
2318
+ VolumeSID: string;
2319
+ Priority: number;
2320
+ bForceWeather: boolean;
2321
+ bDisableTickForWeatherController: boolean;
2322
+ PostProcessConfig: string;
2323
+ ScenariosGroupPriority: EALifeGroupPriorityType;
2324
+ ALifeScenariosGroupSID: string;
2325
+ SimplifiedOverlap: boolean;
2326
+ PossibleInhabitantFactions: {
2327
+ Faction: string;
2328
+ SpawnSettingsPerPlayerRanks: {
2329
+ Newbie: {
2330
+ MaxSpawnQuantity: number;
2331
+ InitialSpawnQuantityPercent: number;
2332
+ InitialSpawnQuantityRespawnTimeSeconds: number;
2333
+ MaxSpawnQuantityRespawnTimeSeconds: number;
2334
+ WipeRespawnTimeoutSeconds: number;
2335
+ SpawnSettingsPerArchetypes: Record<
2336
+ Faction,
2337
+ { MinQuantityPerArchetype: number; SpawnWeight: number }
2338
+ >;
2339
+ };
2340
+ };
2341
+ }[];
2342
+ RadioactivityValue: number;
2343
+ RadiationPerSecondValue: number;
2344
+ GeigerRadiationIntensity: number;
2345
+ PostProcessRadiationIntensity: number;
2346
+ PostProcessRadiationCycleSpeed: number;
2347
+ ALifeLairsSearchRadius: number;
2348
+ CollisionSize: Location3Axis;
2349
+ LightningBallLiveBoxExtent: Location3Axis;
2350
+ LightningBallPathUsage: boolean;
2351
+ LightningBallNavigationPoints: {
2352
+ LightningBallLocation: string[];
2353
+ LightningBallPatrolPoint: boolean;
2354
+ LightningBallNeighborLocations: number[];
2355
+ }[];
2356
+ ClickerAnomalyArtifactJumpPositions: string;
2357
+ GeigerCurve: string;
2358
+ AllowSpawnInShelter: boolean;
2359
+ StartWaitTime: number;
2360
+ MaximumCount: number;
2361
+ MinPatrolNeed: number;
2362
+ AvrAgentDiameter: number;
2363
+ AllowFactions: string;
2364
+ PatrolPoints: {
2365
+ Location: string;
2366
+ StayTimeMin: number;
2367
+ StayTimeMax: number;
2368
+ bIsEndPoint: boolean;
2369
+ ContextualActionSearchRadius: number;
2370
+ PatrolPointLinks: { DestinationPointIndex: number; Weight: number }[];
2371
+ }[];
2372
+ OnlineModifierDistance: number;
2373
+ GlobalOnlineModifierDistance: number;
2374
+ GlobalOtherOnlineModifierDistance: number;
2375
+ FogDensity: number;
2376
+ FogDensitySecondFogData: number;
2377
+ FogDensitySecond: number;
2378
+ VolumeDailySchedulePresetSID: string;
2379
+ DisableRagdollForQuestProtection: boolean;
2380
+ Path: { Location: string }[];
2381
+ LocationSID: string;
2382
+ MaxRespawnCount: number;
2383
+ InfiniteRespawn: boolean;
2384
+ RespawnOnNPCCount: number;
2385
+ RespawnPoints: string[];
2386
+ NavModifierVolumes: string[];
2387
+ EnableSmartLootIfPossible: boolean;
2388
+ AllowNightVisionForQuestNPC: boolean;
2389
+ CombatTacticsOverride: ECombatTactics;
2390
+ MainInfoTopicOwner: string;
2391
+ KillRestrictedFactions: boolean;
2392
+ Items: {
2393
+ PrototypeSID: string;
2394
+ MinAmount: number;
2395
+ MaxAmount: number;
2396
+ DisablePhysicsAndCollision: boolean;
2397
+ }[];
2398
+ ShowOnMap: boolean;
2399
+ ShowOnCompass: boolean;
2400
+ VolumetricCoverRestrictions: { bEnabled: boolean; Volumes: string };
2401
+ TeleportGroupSID: string;
2242
2402
  }>;
2243
2403
 
2244
2404
  type Faction = string;
@@ -2376,7 +2536,7 @@ export type DialogPoolPrototype = GetStructType<{
2376
2536
  BlendExpForEaseInOut: number;
2377
2537
  NotePrototypeSID: string;
2378
2538
  PlayWhenReceived: boolean;
2379
- SoundLocation: Location;
2539
+ SoundLocation: Location3Axis;
2380
2540
  AKEventPath: string;
2381
2541
  MasterAKEventForLoad: string;
2382
2542
  FinishOnAKEvent: boolean;
@@ -2410,7 +2570,7 @@ export type DialogPoolPrototype = GetStructType<{
2410
2570
  RestrictDeadBodyMovementInteraction: boolean;
2411
2571
  RestrictDeadBodyLootInteraction: boolean;
2412
2572
  RestrictDeadBodyDespawn: boolean;
2413
- LookAtLocation: Location;
2573
+ LookAtLocation: Location3Axis;
2414
2574
  Duration: number;
2415
2575
  EnteringDuration: number;
2416
2576
  LookAtActorFName: string;
@@ -2423,8 +2583,8 @@ export type DialogPoolPrototype = GetStructType<{
2423
2583
  RotationFreemoveEdge: number;
2424
2584
  RotationStopEdge: number;
2425
2585
  PresetName: string;
2426
- ShootingPosition: Location;
2427
- ShootTargetLocation: Location;
2586
+ ShootingPosition: Location3Axis;
2587
+ ShootTargetLocation: Location3Axis;
2428
2588
  ShotsQueueCount: number;
2429
2589
  AIThreatState: number;
2430
2590
  AssetsToLoad: string[];
@@ -2450,7 +2610,7 @@ export type DialogPoolPrototype = GetStructType<{
2450
2610
  }[];
2451
2611
  DialogMembers: string[];
2452
2612
  TalkThroughRadio: boolean[];
2453
- DialogObjectLocation: Location[];
2613
+ DialogObjectLocation: Location3Axis[];
2454
2614
  Conditions: GetStructType<Condition[][]> & {
2455
2615
  ConditionCheckType: EConditionCheckType;
2456
2616
  };
@@ -2491,13 +2651,13 @@ export type Condition = GetStructType<{
2491
2651
  ReactType: ETriggerReact;
2492
2652
  RequiredSquadMembers: ERequiredSquadMembers;
2493
2653
  NumericValue: number;
2494
- TargetPoint: Location;
2654
+ TargetPoint: Location3Axis;
2495
2655
  ItemPrototypeSID: Param;
2496
2656
  ItemsCount: Param;
2497
2657
  WithEquipped: boolean;
2498
2658
  WithInventory: boolean;
2499
2659
  BoolValue: boolean;
2500
- PointToLookAt: Location;
2660
+ PointToLookAt: Location3Axis;
2501
2661
  JournalEntity: EJournalEntity;
2502
2662
  JournalState: EJournalState;
2503
2663
  JournalQuestSID: string;
@@ -2509,11 +2669,16 @@ export type Condition = GetStructType<{
2509
2669
  EmissionPrototypeSID: string;
2510
2670
  }>;
2511
2671
 
2512
- export type Location = GetStructType<{ X: number; Y: number; Z: number }>;
2672
+ export type Location2Axis = GetStructType<{ X: number; Y: number }>;
2513
2673
 
2514
- export type LocationAndRotation = GetStructType<
2515
- Location & { Pitch: number; Yaw: number; Roll: number }
2516
- >;
2674
+ export type Location3Axis = Location2Axis & GetStructType<{ Z: number }>;
2675
+
2676
+ export type Rotation = GetStructType<{
2677
+ Pitch: number;
2678
+ Yaw: number;
2679
+ Roll: number;
2680
+ }>;
2681
+ export type LocationAndRotation = Location3Axis & Rotation;
2517
2682
 
2518
2683
  export type Param = GetStructType<{
2519
2684
  VariableType: EGlobalVariableType;