You are viewing a potentially older version of this package. View all versions.
Inas07-ExtraChainedPuzzleCustomization-1.5.2 icon

ExtraChainedPuzzleCustomization

Customize your security scan

By Inas07
Date uploaded 9 months ago
Version 1.5.2
Download link Inas07-ExtraChainedPuzzleCustomization-1.5.2.zip
Downloads 2689
Dependency string Inas07-ExtraChainedPuzzleCustomization-1.5.2

This mod requires the following mods to function

BepInEx-BepInExPack_GTFO-3.2.0 icon
BepInEx-BepInExPack_GTFO

BepInEx pack for GTFO. Preconfigured and includes Unity Base DLLs.

Preferred version: 3.2.0
dakkhuza-MTFO-4.4.4 icon
dakkhuza-MTFO

The premier in GTFO DataBlock editing ;^)

Preferred version: 4.4.4

README

This is an updated version of Dex.OverrideScanPosition, with much stuff added.

Feature:

  • Custom static bioscan points (for both single scan, cluster scan and cluster position).
  • Custom T-scan configuration.
  • Cluster T-scan (i.e. concurrent multiple T-scans).
  • EventsOnPuzzleSolved: Execute warden events upon individual puzzle being solved.
  • RequiredItemsIndices: Add 'required items to scan' to your puzzle, using BigpickItem index defined in this plugin.

Template (copy-paste one if you need it):

{
  "MainLevelLayout": 0,
  "ConcurrentCluster": false,
  "Puzzles": [
    {
      "Index": 0,
      "ConcurrentCluster": false,
      "HideSpline": false,
      "Position": {
        "x": 0,
        "y": 0,
        "z": 0
      },
      "Rotation": {
        "x": 0,
        "y": 0,
        "z": 0
      },
      "TPositions": [
        {
          "x": 0,
          "y": 0,
          "z": 0
        }
      ],
      "TMoveSpeedMulti": -1.0,
      "EventsOnPuzzleSolved": [],
      "RequiredItemsIndices": []
    }
  ]
}

Template with detailed usage explanation:

{
  // Main level layout ID, Supports PartialData GUID
  // Used to identify your level.
  "MainLevelLayout": 0, 

  // Puzzles to override
  // There're 2 types of puzzles you can override: CP_Bioscan_Core, CP_Cluster_Core

  // CP_Bioscan_Core: refers to the actual scan, this includes: 
  //     -> non-cluster (single) scan, 
  //     -> child scan of a cluster scan, 
  //     -> T-Scan.

  // CP_Cluster_Core: refers to the cluster position, from which child puzzles extend.
  //     -> changing position of CP_Cluster_Core would change the clustering position.

  // Make sure you understand the 2 concepts above. Now let's proceed to the following.
  "Puzzles": [
    {
      // The `PuzzleOverrideIndex`, specifies which puzzles to override.
      // Check the Bep Logs to find the index.
      // Puzzle index starts from 1, which means "Index": 0 here doesn't specify any of the puzzles.
      "Index": 0, 

      // Beta testing feature. All scan must satisfy the scan requirement to progress, simultaneously.
      "ConcurrentCluster": false,

      // Conspicuous as the name :)
      "HideSpline": false,

      // Position and rotation of your puzzle.
      // Use the CConsole (press F2), or Unity Explorer,
      // to find you desired position / rotation for this scan.
      // If you don't want to change position / rotation of this puzzle
      // You can remove the "Position" and "Rotation" here, or simply left all "x", "y", "z" value to 0
      "Position": {
        "x": 0,
        "y": 0,
        "z": 0
      },
      "Rotation": {
        "x": 0,
        "y": 0,
        "z": 0
      },

      // T-scan moving speed multiplier, make T scan moving speed faster / slower
      // Set a positive value to this field to use it.
      "TMoveSpeedMulti": -1.0,

      // T-scan path. 
      // Use the CConsole (press F2), or Unity Explorer,
      // to find you desired path.
      // Can also be safely removed if this scan is not a T-scan
      "TPositions": [
        {
          "x": 0,
          "y": 0,
          "z": 0
        }
      ],

      // Execute warden events upon this puzzle being solved.
      //     -> If applied to CP_Bioscan_Core (non-cluster single scan & cluster child scan), 
      //        events here would be executed upon puzzle being completed
      //     -> If applied to CP_Cluster_Core, 
      //        events here would be executed 
      //        upon the cluster scan (all child scans of this cluster scan) being completed.
      // NOTE: Untested with AWO, so probably you won't be able to use AWO events here.
      "EventsOnPuzzleSolved": [],

      // Add Required Items to this scan.
      // The big pickup item index can also be found in the Bep Log.
      // Index here also starts from 1.
      //     -> If applied to CP_Bioscan_Core, 
      //        the required item would be added to the scan as is straightforward.
      //        Adding required item only to one of the child scan of a cluster scan is also possible.
      //     -> If applied to CP_Cluster_Core, 
      //        the required item would be added to all child scan.

      // However, when adding required item to cluster scan, there won't be any "Required Items To Scan" text on the scan hud. 
      // This is a vanilla bug that for now cannot resolve. You'll have to add additional hint text to your level somewhere else.
      "RequiredItemsIndices": [
         0
      ]
    }
  ]
}

Additional Usage Notes:

  • For T-Scan: The T-scan path must be sufficiently long, or would otherwise result in an system Exception, causing some known issues.
  • If you don't want the first scan of the chained puzzle to show spline (especially if you are setting up a zone scan), in your ChainedPuzzleDatablock, set WantedDistanceFromStartPos to 0.0.
  • Since level layout, number of chained puzzles in the level may vary before level design being finalized, it's recommended that you deem overriding scan positions as one of the last steps of finalizing your level.

Other Notes:

  • Puzzle Override data location: BepInEx\plugins\YOUR_RUNDOWN\Custom\ScanPositionOverrides
  • All players must have the mod installed and the position files, otherwise desync will occur.
  • Do not use Dex.OverrideScanPosition when using this plugin.
  • Restart is NOT required in most cases to reload the Puzzle Override data. View the BepInEx log to confirm the change being applied.

CHANGELOG

1.6.4 ~ 1.6.5

  • Fixed: EventsOnPuzzleSolved will be executed on checkpoint-restore.

1.6.3

  • Minor Bug Fix: Incorrect Oxygen system configuration (from Rundown Legacy) could make Concurrent cluster not functional.

1.6.2

  • Added feature PrevPosOverrideIndex
  • Updated documentation accordingly.

1.6.1

  • Fixed: PrevPosOverride does not work properly.

1.6.0

  • Massive update on documentation.
  • My-huge-clusterfuck trashy code optimization :)
  • Added feature EventsOnBioscanProgress, EventsOnClusterProgress.
  • Complete documentation for ConcurrentCluster.
  • Added in-game HUD support for ConcurrentCluster.

1.5.3

  • Bug fix: Position field of events in EventsOnPuzzleSolved is not parsed properly.