Git Product home page Git Product logo

cp2077-codeware's People

Contributors

djkovrik avatar jackhumbert avatar maximegmd avatar poirierlouis avatar psiberx avatar roms1383 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cp2077-codeware's Issues

Feature Request: Scriptable weather interface

This is the one thing no framework has undertaken: weather.

It would be very useful to be able to trigger weather at any time, it could lead to custom weather cycles that can be configured in real time i.e.

It would especially be useful for any quest mods to trigger a weather in a scriptable manner.

Cannot create entity with DynamicEntitySystem from a callback

I'm creating a NPC with DynamicEntitySystem and then a workspot entity using Cyberscript Core Archive.
To keep things synchronized and consistent I do the following:

  1. Spawn NPC
  2. Get ref to NPC in callback
  3. Spawn workspot (in above callback)
  4. Get ref to workspot in second callback

Issue is that spawning an entity within a callback function doesn't work. It executes from (1) to (3), but callback at (4) is never triggered. I also tried to listen for Entity/Attach and Entity/Attached events from CallbackSystem but it doesn't work either (no trigger).

A workaround I found is to execute (3) in a delay callback. Trying with a delay of 0.1s, it does trigger the second callback as expected.
Is calling CreateEntity in a callback function prohibited or can it be fixed somehow?

Here an example that replicate my situation (haven't tried it in this exact form):

public class MySystem extends ScriptableSystem {
  private let m_entitySystem: wref<DynamicEntitySystem>;
  private let m_player: wref<PlayerPuppet>;
  private let m_puppet: wref<NPCPuppet>;
  private let m_workspot: wref<GameObject>;

  public func OnAttach() {
    this.m_entitySystem = GameInstance.GetDynamicEntitySystem();
    this.m_entitySystem.RegisterListener(n"MyMod.Puppet", this, n"OnPuppetUpdate");
    this.m_entitySystem.RegisterListener(n"MyMod.Workspot", this, n"OnWorkspotUpdate");
  }

  // (1)
  public func OnPlayerAttach(request: ref<PlayerAttachRequest>) {
    if GameInstance.GetSystemRequestsHandler().IsPreGame() {
      return;
    }
    this.m_player = GetPlayer(this.GetGameInstance());
	
    let spec = new DynamicEntitySpec();
	
    spec.recordID = t"Character.Judy";
    spec.position = this.m_player.GetWorldPosition();
    spec.orientation = this.m_player.GetWorldOrientation();
    spec.tags = [n"MyMod", n"MyMod.Puppet"];
    this.m_entitySystem.CreateEntity(spec);
    LogChannel(n"DEBUG", s"RequestPuppet");
  }

  private cb func OnPuppetUpdate(event: ref<DynamicEntityEvent>) {
    let type = event.GetEventType();
    let id = event.GetEntityID();

    LogChannel(n"DEBUG", s"OnPuppetUpdate(event: \(type))");
    if Equals(type, DynamicEntityEvent.Spawned) {
      // (2)
      this.m_puppet = this.m_entitySystem.GetEntity(id) as NPCPuppet;
      LogChannel(n"DEBUG", s"PuppetReady");
      // (3)
      this.CreateWorkspot();
    }
  }

  private func CreateWorkspot() {
    let spec = new DynamicEntitySpec();

    //spec.templatePath = r"base\\gameplay\\devices\\drop_points\\drop_point.ent";
    spec.templatePath = r"base\\cyberscript\\entity\\workspot_anim.ent";
    spec.position = this.m_player.GetWorldPosition();
    spec.orientation = this.m_player.GetWorldOrientation();
    spec.tags = [n"MyMod", n"MyMod.Workspot"];
    this.m_entitySystem.CreateEntity(spec);
    LogChannel(n"DEBUG", s"RequestWorkspot");
  }

  // (4)
  private cb func OnWorkspotUpdate(event: ref<DynamicEntityEvent>) {
    let type = event.GetEventType();
    let id = event.GetEntityID();

    LogChannel(n"DEBUG", s"OnWorkspotUpdate(event: \(type))");
    if Equals(type, DynamicEntityEvent.Spawned) {
      this.m_workspot = this.m_entitySystem.GetEntity(id) as GameObject;
      LogChannel(n"DEBUG", s"WorkspotReady");
    }
  }
}

Intro logo crash

As per instructed on nexusmods since I have no obvious errors in my logs and Codeware is indeed loaded:
red4ext.log:

[2023-03-22 23:02:38.358] [RED4ext] [info] RED4ext (v1.10.1) is initializing...
[2023-03-22 23:02:38.358] [RED4ext] [info] Game version is 1.61
[2023-03-22 23:02:38.358] [RED4ext] [info] File version is 3.0.68.49653
[2023-03-22 23:02:38.374] [RED4ext] [info] RED4ext has been successfully initialized
[2023-03-22 23:02:38.395] [RED4ext] [info] RED4ext is starting up...
[2023-03-22 23:02:38.442] [RED4ext] [info] ArchiveXL (version: 1.4.0, author(s): psiberx) has been loaded
[2023-03-22 23:02:38.487] [RED4ext] [info] Codeware (version: 1.0.0, author(s): psiberx) has been loaded
[2023-03-22 23:02:38.586] [RED4ext] [info] CTD Helper (version: 0.0.5, author(s): Jack Humbert) has been loaded
[2023-03-22 23:02:38.590] [RED4ext] [info] Input Loader (version: 0.0.8, author(s): Jack Humbert) has been loaded
[2023-03-22 23:02:38.618] [RED4ext] [info] Mod Settings (version: 0.0.12, author(s): Jack Humbert) has been loaded
[2023-03-22 23:02:38.644] [RED4ext] [info] TweakXL (version: 1.1.2, author(s): psiberx) has been loaded
[2023-03-22 23:02:38.644] [RED4ext] [info] 6 plugin(s) loaded
[2023-03-22 23:02:38.644] [RED4ext] [info] RED4ext has been started

redscript_rCURRENT.log:

[INFO - Wed, 22 Mar 2023 23:02:37 -0400] Using defaults for the script manifest (manifest not present)
[INFO - Wed, 22 Mar 2023 23:02:37 -0400] Custom cache directory provided: C:\GOG Games\Cyberpunk 2077\r6\cache\modded
[INFO - Wed, 22 Mar 2023 23:02:37 -0400] Redscript cache file is not ours, copying it to C:\GOG Games\Cyberpunk 2077\r6\cache\modded\final.redscripts.bk
[INFO - Wed, 22 Mar 2023 23:02:38 -0400] Compiling files: C:\GOG Games\Cyberpunk 2077\r6\scripts\AccurateSpeedometer.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\AccurateSpeedometerConfig.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\Alvarix Custom Store-atelier-store.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\Alvarix Hair Collection-atelier-store.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\alwaysFirstEquip.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\anotherPriceMod.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\anyRipperdoc.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\appearanceChangeUnlocker\mirrorUnlocker.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\ArchiveXL\ArchiveXL.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\clear_skill_checks.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\Codeware\Codeware.Global.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\Codeware\Codeware.Localization.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\Codeware\Codeware.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\Codeware\Codeware.UI.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\Codeware\Codeware.UI.TextInput.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\CustomMapMarkers\additions\BaseMappinBaseController.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\CustomMapMarkers\additions\GameplayRoleMappinData.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\CustomMapMarkers\additions\MenuScenario_HubMenu.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\CustomMapMarkers\additions\MinimapContainerController.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\CustomMapMarkers\additions\UIInGameNotification.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\CustomMapMarkers\additions\WorldMapMenuGameController.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\CustomMapMarkers\additions\WorldMapTooltipController.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\CustomMapMarkers\codeware\Localization\Data\EntryType.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\CustomMapMarkers\codeware\Localization\Data\GenderNeutralEntry.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\CustomMapMarkers\codeware\Localization\Data\GenderSensitiveEntry.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\CustomMapMarkers\codeware\Localization\Data\LocalizationEntry.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\CustomMapMarkers\codeware\Localization\Data\PlayerGender.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\CustomMapMarkers\codeware\Localization\LocalizationSystem.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\CustomMapMarkers\codeware\Localization\Module\ModLocalizationPackage.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\CustomMapMarkers\codeware\Localization\Module\ModLocalizationProvider.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\CustomMapMarkers\codeware\Localization\Requests\RegisterProviderRequest.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\CustomMapMarkers\codeware\Localization\Requests\UpdateGenderRequest.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\CustomMapMarkers\codeware\Localization\Requests\UpdateLocaleRequest.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\CustomMapMarkers\codeware\Localization\Requests\UpdateTranslationsRequest.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\CustomMapMarkers\codeware\Localization\Watchers\LanguageSettingsWatcher.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\CustomMapMarkers\codeware\Localization\Watchers\PlayerGenderWatcher.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\CustomMapMarkers\codeware\Natives\inkCharacterEvent.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\CustomMapMarkers\codeware\Natives\inkCharacterEventType.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\CustomMapMarkers\codeware\Natives\inkFitToContentDirection.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\CustomMapMarkers\codeware\Natives\inkImage.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\CustomMapMarkers\codeware\Natives\inkScrollArea.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\CustomMapMarkers\codeware\Natives\inkText.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\CustomMapMarkers\codeware\Natives\inkWidget.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\CustomMapMarkers\codeware\Natives\textJustificationType.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\CustomMapMarkers\codeware\Natives\textOverflowPolicy.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\CustomMapMarkers\codeware\Registry\RegistrySystem.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\CustomMapMarkers\codeware\UI\Buttons\CustomButton.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\CustomMapMarkers\codeware\UI\Buttons\SimpleButton.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\CustomMapMarkers\codeware\UI\Core\inkCustomController.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\CustomMapMarkers\codeware\UI\Core\inkCustomEvent.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\CustomMapMarkers\codeware\UI\Core\inkWidgetHelper.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\CustomMapMarkers\codeware\UI\Popups\CustomPopup.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\CustomMapMarkers\codeware\UI\Popups\Events\CustomPopupEvent.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\CustomMapMarkers\codeware\UI\Popups\Events\HideCustomPopupEvent.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\CustomMapMarkers\codeware\UI\Popups\Events\ShowCustomPopupEvent.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\CustomMapMarkers\codeware\UI\Popups\InGamePopup.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\CustomMapMarkers\codeware\UI\Popups\InGamePopupContent.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\CustomMapMarkers\codeware\UI\Popups\Manager\CustomPopupAttachCallback.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\CustomMapMarkers\codeware\UI\Popups\Manager\CustomPopupAttachRequest.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\CustomMapMarkers\codeware\UI\Popups\Manager\CustomPopupManager.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\CustomMapMarkers\codeware\UI\Popups\Manager\CustomPopupNotificationData.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\CustomMapMarkers\codeware\UI\Popups\Manager\ICustomPopupManager.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\CustomMapMarkers\codeware\UI\Styles\ThemeColors.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\CustomMapMarkers\codeware\UI\TextInput\HubTextInput.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\CustomMapMarkers\codeware\UI\TextInput\Parts\Caret.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\CustomMapMarkers\codeware\UI\TextInput\Parts\Selection.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\CustomMapMarkers\codeware\UI\TextInput\Parts\TextFlow.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\CustomMapMarkers\codeware\UI\TextInput\Parts\TextMeasurer.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\CustomMapMarkers\codeware\UI\TextInput\Parts\Viewport.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\CustomMapMarkers\codeware\UI\TextInput\TextInput.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\CustomMapMarkers\common\Colors.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\CustomMapMarkers\common\Events.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\CustomMapMarkers\common\Icons.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\CustomMapMarkers\common\Utils.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\CustomMapMarkers\config.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\CustomMapMarkers\localization\lang\English.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\CustomMapMarkers\localization\lang\Russian.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\CustomMapMarkers\localization\lang\SimplifiedChinese.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\CustomMapMarkers\localization\lang\TraditionalChinese.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\CustomMapMarkers\localization\LocalizationProvider.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\CustomMapMarkers\system\CustomMarkerSystem.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\CustomMapMarkers\ui\CustomMarkerPopup.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\CustomMapMarkers\ui\IconPreviewItem.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\CustomMapMarkers\ui\MakerPopupButton.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\Cyber Tights Store-atelier-store.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\CyberarmCycle\CyberarmCycle.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\CyberArms Collection Store-atelier-store.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\Drone Companions\Damage Floaters.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\Drone Companions\DoubleDeck.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\Drone Companions\Drone Core Crafting Reduction Removal.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\Drone Companions\Fix Friendly Fire.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\Drone Companions\Item Filtering.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\Drone Companions\Kill Rewards.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\Drone Companions\Mappins.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\Drone Companions\Multiple Follower Mount Vehicle Fix.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\Drone Companions\Threat Calculations.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\EnhancedCraft\codeware\Natives\inkCharacterEvent.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\EnhancedCraft\codeware\Natives\inkCharacterEventType.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\EnhancedCraft\codeware\Natives\inkFitToContentDirection.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\EnhancedCraft\codeware\Natives\inkImage.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\EnhancedCraft\codeware\Natives\inkScrollArea.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\EnhancedCraft\codeware\Natives\inkText.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\EnhancedCraft\codeware\Natives\inkWidget.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\EnhancedCraft\codeware\Natives\textJustificationType.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\EnhancedCraft\codeware\Natives\textOverflowPolicy.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\EnhancedCraft\codeware\UI\Buttons\CustomButton.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\EnhancedCraft\codeware\UI\Core\inkCustomController.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\EnhancedCraft\codeware\UI\Core\inkCustomEvent.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\EnhancedCraft\codeware\UI\Core\inkWidgetHelper.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\EnhancedCraft\codeware\UI\Styles\ThemeColors.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\EnhancedCraft\codeware\UI\TextInput\HubTextInput.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\EnhancedCraft\codeware\UI\TextInput\Parts\Caret.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\EnhancedCraft\codeware\UI\TextInput\Parts\Selection.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\EnhancedCraft\codeware\UI\TextInput\Parts\TextFlow.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\EnhancedCraft\codeware\UI\TextInput\Parts\TextMeasurer.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\EnhancedCraft\codeware\UI\TextInput\Parts\Viewport.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\EnhancedCraft\codeware\UI\TextInput\TextInput.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\EnhancedCraft\common\ArchiveXL-Checker.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\EnhancedCraft\common\EnhancedCraft-Classes.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\EnhancedCraft\common\EnhancedCraft-Enums.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\EnhancedCraft\common\EnhancedCraft-Events.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\EnhancedCraft\common\EnhancedCraft-Fields.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\EnhancedCraft\common\EnhancedCraft-Utils.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\EnhancedCraft\core\CraftingLogicController-Core.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\EnhancedCraft\core\CraftingLogicController-Helpers.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\EnhancedCraft\core\CraftingSystem-Core.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\EnhancedCraft\core\GarmentPreviewGameControllers-Core.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\EnhancedCraft\core\PlayerPuppet-Helpers.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\EnhancedCraft\core\Stash-Helpers.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\EnhancedCraft\damage\CraftingLogicController-Helpers.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\EnhancedCraft\damage\ItemTooltipRecipeDataModule-Layout.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\EnhancedCraft\EnhancedCraft-Config.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\EnhancedCraft\EnhancedCraft-GenerateItems.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\EnhancedCraft\EnhancedCraft-StreetStylePatch.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\EnhancedCraft\hotkeys\EnhancedCraft-HotkeyListener.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\EnhancedCraft\naming\CraftingLogicController-Events.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\EnhancedCraft\naming\CraftingMainGameController-Events.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\EnhancedCraft\naming\CraftingMainGameController-Layout.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\EnhancedCraft\naming\CustomNamesDisplaying.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\EnhancedCraft\naming\EnhancedCraft-System.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\EnhancedCraft\naming\InventoryManager-Helpers.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\EnhancedCraft\ui\CraftingLogicController-Hints.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\EnhancedCraft\ui\CraftingLogicController-Labels.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\EnhancedPoliceCrowd.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\EnhancedPoliceSystem.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\EnhancedPoliceTurret.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\EnhancedPoliceVehicles.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\EquipmentEx\EquipmentEx.Global.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\EquipmentEx\EquipmentEx.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\flib\DialerMenu-ByName.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\flib\IconicItems-PreventDisassembly.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\flib\Messages-CustomSort.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\flib\QuantityPicker-DefaultMax.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\flib\Quests-CustomSort.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\flib\RipperDoc-OnlyCountUnowned.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\flib\Shards-CustomSort.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\flib\shared\CodexUtils.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\flib\shared\JournalManager.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\flib\shared\MessengerUtils.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\flib\shared\SortingUtils.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\flib\shared\VirtualNestedList.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\flib\Vendor-FastSell.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\hideReadShards.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\holserByHold.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\ImmersiveTimeskip\base\HubTimeSkipController-added.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\ImmersiveTimeskip\base\HubTimeSkipController-wrapped.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\ImmersiveTimeskip\base\inkGameController-added.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\ImmersiveTimeskip\base\MenuHubGameController-wrapped.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\ImmersiveTimeskip\base\PhoneSystem-wrapped.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\ImmersiveTimeskip\base\PlayerPuppet-added.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\ImmersiveTimeskip\base\PlayerPuppet-wrapped.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\ImmersiveTimeskip\base\TimeskipGameController-added.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\ImmersiveTimeskip\base\TimeskipGameController-replaced.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\ImmersiveTimeskip\base\TimeskipGameController-wrapped.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\ImmersiveTimeskip\common\Events.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\ImmersiveTimeskip\common\Fields.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\ImmersiveTimeskip\Config.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\ImmersiveTimeskip\hotkey\CustomTimeSkipListener.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\ImmersiveTimeskip\Utils.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\ImprovedMinimapZoom\config.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\ImprovedMinimapZoom\gameuiCrosshairContainerController.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\ImprovedMinimapZoom\hudcarcontroller.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\ImprovedMinimapZoom\JournalNotificationQueue.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\ImprovedMinimapZoom\minimapcontainer.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\ImprovedMinimapZoom\playerpuppet.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\ImprovedMinimapZoom\scriptscompat.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\ImprovedMinimapZoom\utils.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\ImprovedMinimapZoom\vehiclecomponent.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\ImprovedMinimapZoom\VehicleSummonWidgetGameController.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\legendary-weapons-mods-eshop\WeaponsMods-atelier-store.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\legendary-weapons-mods-eshop\WeaponsMuzzleScope-atelier-store.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\lifepath_bonuses_and_gang_corp_traits\config_extra_features.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\lifepath_bonuses_and_gang_corp_traits\config_gang_corp_traits.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\lifepath_bonuses_and_gang_corp_traits\config_lifepaths.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\lifepath_bonuses_and_gang_corp_traits\damage_system.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\lifepath_bonuses_and_gang_corp_traits\misc.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\lifepath_bonuses_and_gang_corp_traits\modifier_classes.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\lifepath_bonuses_and_gang_corp_traits\quickhacks.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\lifepath_bonuses_and_gang_corp_traits\rewards.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\lifepath_bonuses_and_gang_corp_traits\scanner.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\lifepath_bonuses_and_gang_corp_traits\text.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\lifepath_bonuses_and_gang_corp_traits\utils.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\mod_settings\ModSettings.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\mod_settings\ModSettingsMainGameController.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\mod_settings\ModSettingsModule.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\mod_settings\ModSettingsNotificationListener.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\mod_settings\_deathMenu.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\mod_settings\_pauseMenu.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\mod_settings\_pauseScenario.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\mod_settings\_preGameScenarios.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\mod_settings\_SettingsCategoryController.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\mod_settings\_SettingsSelectorControllers.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\mod_settings\_singleplayerMenu.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\MONSTERaider\MONSTERaider-NCPD-store.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\Nola_and_Meluminary_feminine_atelier.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\noSpecialOutfitLock.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\PCLayoutPatch.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\PreemWeaponsmith\Adapters\ItemDataAdapter.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\PreemWeaponsmith\Adapters\PreemCraftingSystemAdapter.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\PreemWeaponsmith\Adapters\PreemInventoryAdapter.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\PreemWeaponsmith\Adapters\PreemWeaponAdapter.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\PreemWeaponsmith\codeware\Natives\inkCharacterEvent.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\PreemWeaponsmith\codeware\Natives\inkCharacterEventType.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\PreemWeaponsmith\codeware\Natives\inkFitToContentDirection.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\PreemWeaponsmith\codeware\Natives\inkImage.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\PreemWeaponsmith\codeware\Natives\inkScrollArea.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\PreemWeaponsmith\codeware\Natives\inkText.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\PreemWeaponsmith\codeware\Natives\inkWidget.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\PreemWeaponsmith\codeware\Natives\textJustificationType.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\PreemWeaponsmith\codeware\Natives\textOverflowPolicy.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\PreemWeaponsmith\codeware\UI\Buttons\CustomButton.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\PreemWeaponsmith\codeware\UI\Core\inkCustomController.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\PreemWeaponsmith\codeware\UI\Core\inkCustomEvent.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\PreemWeaponsmith\codeware\UI\Core\inkWidgetHelper.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\PreemWeaponsmith\codeware\UI\Styles\ThemeColors.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\PreemWeaponsmith\codeware\UI\TextInput\HubTextInput.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\PreemWeaponsmith\codeware\UI\TextInput\Parts\Caret.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\PreemWeaponsmith\codeware\UI\TextInput\Parts\Selection.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\PreemWeaponsmith\codeware\UI\TextInput\Parts\TextFlow.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\PreemWeaponsmith\codeware\UI\TextInput\Parts\TextMeasurer.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\PreemWeaponsmith\codeware\UI\TextInput\Parts\Viewport.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\PreemWeaponsmith\codeware\UI\TextInput\TextInput.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\PreemWeaponsmith\Core\BaseEnums.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\PreemWeaponsmith\Core\BaseItems.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\PreemWeaponsmith\CraftingSystem\PreemCraftingSystem.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\PreemWeaponsmith\CraftingSystem\PreemModMaker.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\PreemWeaponsmith\CraftingSystem\PreemModMapper.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\PreemWeaponsmith\CraftingSystem\PreemModSlotManager.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\PreemWeaponsmith\PreemMainUI\PreemUI\PreemGrid.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\PreemWeaponsmith\PreemMainUI\PreemUI\PreemModItem.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\PreemWeaponsmith\PreemMainUI\PreemUI\PreemModSelectorPopup.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\PreemWeaponsmith\PreemMainUI\PreemUI\PreemModSlot.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\PreemWeaponsmith\PreemMainUI\PreemUI\PreemSlotClassGroup.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\PreemWeaponsmith\PreemMainUI\PreemUIBase\BasePreemButton.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\PreemWeaponsmith\PreemMainUI\PreemUIBase\BasePreemGrid.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\PreemWeaponsmith\PreemMainUI\PreemUIBase\BasePreemMenuPopup.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\PreemWeaponsmith\PreemMainUI\PreemUIBase\BasePreemModItem.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\PreemWeaponsmith\PreemMainUI\PreemUIBase\BasePreemModSlot.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\PreemWeaponsmith\PreemMainUI\PreemUIBase\BasePreemSlotClassGroup.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\PreemWeaponsmith\PreemMainUI\PreemUIBase\PreemUIEnums.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\PreemWeaponsmith\PreemMainUI\PreemWeaponPreviewContainer.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\PreemWeaponsmith\Tweaking\PreemModCreation.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\PreemWeaponsmith\Tweaking\PreemWeaponAlteration.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\REALISTICCOMBATOVERHAUL.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\realVendorNames.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\SilentSilencersAndKnives.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\sleeves.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\SystemEx\Game\cyberpunk\devices\core\Device.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\SystemEx\Game\cyberpunk\player\PlayerPuppet.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\SystemEx\Game\cyberpunk\player\psm\TimeDilationFocusModeDecisions.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\SystemEx\Game\cyberpunk\systems\EquipmentSystem.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\SystemEx\Game\cyberpunk\systems\EquipmentSystemPlayerData.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\SystemEx\Game\cyberpunk\UI\fullscreen\ripperdoc\CyberwareInventoryMiniGrid.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\SystemEx\Game\cyberpunk\UI\fullscreen\ripperdoc\RipperDocGameController.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\SystemEx\Game\cyberpunk\UI\inventory\gameuiInventoryGameController.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\SystemEx\Game\cyberpunk\UI\inventory\InventoryCyberwareItemChooser.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\SystemEx\Game\cyberpunk\UI\Player\healthbarWidgetGameController.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\SystemEx\Mods\ModSettings.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\SystemEx\Settings.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\SystemEx\SystemEx.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\TweakXL\TweakXL.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\ultimate-clothing-mods-eshop\ClothingModsStore-atelier-store.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\ultimate-clothing-mods-eshop\UltimateClothingModsStore-atelier-store.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\uninstallMods.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\untrackQuestByRightClick.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\virtual-atelier\atelier\AtelierTextButton.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\virtual-atelier\atelier\Browser.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\virtual-atelier\atelier\codeware\inkCharacterEvent.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\virtual-atelier\atelier\codeware\inkCharacterEventType.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\virtual-atelier\atelier\codeware\inkCustomController.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\virtual-atelier\atelier\codeware\inkFitToContentDirection.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\virtual-atelier\atelier\codeware\inkImage.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\virtual-atelier\atelier\codeware\inkScrollArea.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\virtual-atelier\atelier\codeware\inkWidget.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\virtual-atelier\atelier\codeware\inkWidgetHelper.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\virtual-atelier\atelier\codeware\TextInput\HubTextInput.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\virtual-atelier\atelier\codeware\TextInput\Parts\Caret.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\virtual-atelier\atelier\codeware\TextInput\Parts\Selection.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\virtual-atelier\atelier\codeware\TextInput\Parts\TextFlow.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\virtual-atelier\atelier\codeware\TextInput\Parts\TextMeasurer.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\virtual-atelier\atelier\codeware\TextInput\Parts\Viewport.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\virtual-atelier\atelier\codeware\TextInput\TextInput.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\virtual-atelier\atelier\Computer.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\virtual-atelier\atelier\ItemTooltips.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\virtual-atelier\atelier\WebPage.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\virtual-atelier\compat.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\virtual-atelier\config.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\virtual-atelier\constants.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\virtual-atelier\declarations.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\virtual-atelier\fields.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\virtual-atelier\helpers\ButtonHintsHelper.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\virtual-atelier\helpers\InputHelper.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\virtual-atelier\helpers\NotificationHelper.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\virtual-atelier\helpers\WidgetsHelper.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\virtual-atelier\items-preview\Backpack.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\virtual-atelier\items-preview\ItemPreview.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\virtual-atelier\managers\CurrentPlayerZoneManager.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\virtual-atelier\managers\ItemPreviewManager.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\virtual-atelier\managers\StoresManager.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\virtual-atelier\texts.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\virtual-atelier\utils.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\virtual-atelier\vendor-preview\ButtonHints.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\virtual-atelier\vendor-preview\FullscreenVendor.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\virtual-atelier\vendor-preview\FullscreenVendorHelpers.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\virtual-atelier\vendor-preview\FullscreenVendorVirtual.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\virtual-atelier\vendor-preview\GarmentItemPreview.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\VirtualCarDealer\autofixer\AutofixerItemDataView.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\VirtualCarDealer\autofixer\AutofixerItemVirtualController.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\VirtualCarDealer\autofixer\AutofixerVirtualController.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\VirtualCarDealer\Cheat.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\VirtualCarDealer\codeware\Natives\inkFitToContentDirection.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\VirtualCarDealer\codeware\Natives\inkImage.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\VirtualCarDealer\codeware\Natives\inkText.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\VirtualCarDealer\codeware\Natives\inkWidget.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\VirtualCarDealer\codeware\Natives\textJustificationType.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\VirtualCarDealer\codeware\Natives\textOverflowPolicy.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\VirtualCarDealer\codeware\UI\Buttons\CustomButton.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\VirtualCarDealer\codeware\UI\Buttons\HubButton.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\VirtualCarDealer\codeware\UI\Buttons\SimpleButton.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\VirtualCarDealer\codeware\UI\Core\inkCustomController.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\VirtualCarDealer\codeware\UI\Core\inkCustomEvent.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\VirtualCarDealer\codeware\UI\Core\inkWidgetHelper.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\VirtualCarDealer\codeware\UI\Styles\ThemeColors.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\VirtualCarDealer\Config.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\VirtualCarDealer\core\CarDealer-Classes.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\VirtualCarDealer\core\CarDealer-Core.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\VirtualCarDealer\core\CarDealer-Fields.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\VirtualCarDealer\core\CarDealer-Helpers.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\VirtualCarDealer\core\CarDealer-ScriptableTweak.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\VirtualCarDealer\core\CarDealer-System.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\VirtualCarDealer\overrides\DeactivateVehicles.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\VirtualCarDealer\overrides\SetupNewTab.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\VirtualCarDealer\UI\HubButton.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\VirtualCarDealer\Utils.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\WannabeEdgerunner\Config.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\WannabeEdgerunner\core\Definitions.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\WannabeEdgerunner\core\EdgerunningSystem.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\WannabeEdgerunner\core\EdgerunningSystemCallbacks.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\WannabeEdgerunner\core\Layouts.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\WannabeEdgerunner\core\Misc.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\WannabeEdgerunner\core\Police.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\WannabeEdgerunner\core\TeleportHelper.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\WannabeEdgerunner\core\Tweaks.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\WannabeEdgerunner\track\CyberwareTracker.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\WannabeEdgerunner\track\EffectsTracker.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\WannabeEdgerunner\track\KillsTracker.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\WannabeEdgerunner\Utils.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\WannabeEdgerunnerRecovery\config.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\WannabeEdgerunnerRecovery\core\humanity_recovery.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\WannabeEdgerunnerRecovery\core\orphans.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\WannabeEdgerunnerRecovery\ext\dialogUI.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\WannabeEdgerunnerRecovery\ext\equipmentSystem.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\WannabeEdgerunnerRecovery\ext\orphans.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\WannabeEdgerunnerRecovery\ext\playerCombatController.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\WannabeEdgerunnerRecovery\ext\progression_notification.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\WannabeEdgerunnerRecovery\ext\ripperdoc.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\WannabeEdgerunnerRecovery\ext\scriptedPuppet.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\WannabeEdgerunnerRecovery\logging.reds, C:\GOG Games\Cyberpunk 2077\r6\scripts\WannabeEdgerunnerRecovery\math.reds
[WARN - Wed, 22 Mar 2023 23:02:38 -0400] At C:\GOG Games\Cyberpunk 2077\r6\scripts\Codeware\Codeware.Global.reds:138:1:
@addField(inkScrollArea)
^^^
field with this name is already defined in the class, this will have no effect

[INFO - Wed, 22 Mar 2023 23:02:38 -0400] Compilation complete
[INFO - Wed, 22 Mar 2023 23:02:38 -0400] Output successfully saved in C:\GOG Games\Cyberpunk 2077\r6\cache\modded

REDmodLog.txt (For the hell of it, since I got a weird error):

Copyright (c) 2022 CD Projekt Red. All Rights Reserved.
Created in collaboration with CD Projekt Vancouver and Yigsoft LLC

Continuing without global backend resource depot.
Core: App instance initialized in 0.00 ms


[DEPLOY] Stage 1/5 - Initialization
Folder Prime Edgerunners is not a valid mod: Missing info.json! Skipping...
Folder Prime Synthwave is not a valid mod: Missing info.json! Skipping...
Found mod "Build Based Missions" (v1) in folder "Build Based Missions" (enabled; not deployed; CUSTOMSOUNDS)
Found mod "cyberscript" (v) in folder "cyberscript" (enabled; not deployed; )
Found mod "ImmersiveRippers" (v1.1.1) in folder "ImmersiveRippers" (enabled; not deployed; )
Found mod "Jobs Of Night City MaxTac" (v1.0) in folder "Jobs Of Night City MaxTac" (enabled; not deployed; )
Found mod "Jobs Of Night City Trauma Team" (v1.0) in folder "Jobs Of Night City Trauma Team" (enabled; not deployed; )
Found mod "Material and Texture Override" (v1.1) in folder "Material and Texture Override" (enabled; not deployed; )
Found mod "MONSTERaider - NCPD ArchiveXL" (v) in folder "MONSTERaider - NCPD ArchiveXL" (enabled; not deployed; )
Found mod "MONSTERaider NCPD Store" (v) in folder "MONSTERaider NCPD Store" (enabled; not deployed; )
Found mod "PhoneMessageOVERHAUL" (v1.0) in folder "PhoneMessageOVERHAUL" (enabled; not deployed; )
Found mod "RealisticCarCrashes" (v1.1) in folder "RealisticCarCrashes" (enabled; not deployed; TWEAKS; )
Found mod "tg" (v1.0) in folder "tg" (enabled; not deployed; CUSTOMSOUNDS)
Found mod "Ti200_UnifiedModsDescriptions" (v1.0.0) in folder "Ti200_UnifiedModsDescriptions" (enabled; not deployed; )
Found mod "Transports Of Night City" (v1.0) in folder "Transports Of Night City" (enabled; not deployed; CUSTOMSOUNDS)
Found mod "V_combatvoices" (v2.0) in folder "V_combatvoices" (enabled; not deployed; CUSTOMSOUNDS)
Needs deployment: true
[DEPLOY] Stage 2/5 - Script Compilation
[DEPLOY] Stage 3/5 - TweakDB Compilation
Core: [IO]: Low level delete file failed: file='C:\GOG Games\Cyberpunk 2077\r6\cache\modded\tweakdb.bin', error code=0x2
File 'C:\GOG Games\Cyberpunk 2077\r6\cache\modded\tweakdb.str' (21754213 bytes) written.
[DEPLOY] Stage 4/5 - Audio
ValidateAudioFormat Error: RIFF chunk size ( 374274 bytes ) is not equal to the total file size( 524444 bytes ) minus 8 - does the file contain surplus chunks at the end?
ValidateAudioFormat Error: RIFF chunk size ( 340878 bytes ) is not equal to the total file size( 524444 bytes ) minus 8 - does the file contain surplus chunks at the end?
[DEPLOY] Stage 5/5 - Finalize
File 'C:\GOG Games\Cyberpunk 2077\r6\cache\modded\mods.json' (28645 bytes) written.

Commandlet deploy has succeeded.

(Not the ValidateAudioFormat error, that has been there since I installed some RadioExt channels and the game runs fine regardless, the odd Low level delete file error)

Crash report is a generic EXCEPTION_ACCESS_VIOLATION (0xC0000005)

Context:
I had just got done installing some new mods that recently transitioned from internal Codeware to using the dedicated mod as a dependency, I updated everything I could while chasing errors till I ended up with just one mod causing issues; Preem Weaponsmith, this mod relies on Enhanced Craft which just recently updated to use the dedicated Codeware mod.

So at this point the only errors in my redscript log were related to Preem Weaponsmith, I figure fine, I'll learn how Redscript works and bit by bit changed the imports and such so that it used the Codeware mod instead and stopped spitting out errors about missing classes and references. I then redeploy everything and launch the game but.. as the title states, double logo animation then a black screen and it crashes.

I've since removed my modified version of Preem Weaponsmith but still the same issue.

I run a script that updates a backup of my entire game directory every time I confirm that a set of mods is stable and that the game runs fine so at any time I can go back if I break something, I'm in the process now of spinning off a copy of that so I can do the minimum amount of changes to update my existing set of mods that use Codeware to the latest and adding Codeware itself in to make sure I didn't add something else that broke it as I wouldn't want to waste your time.

Crash on startup when using Reflection with LogChannel

Hello!

Since I constantly keep forgetting to comment logs out in my releases, I tried to leverage Codeware's Reflection as follow:

module MyMod

public static func E(str: String) -> Void {
  let fun = Reflection.GetGlobalFunction(n"LogChannel");
  if IsDefined(fun) {
    fun.Call([ToVariant(n"DEBUG"), ToVariant(s"[MyMod] \(str)")]);
  }
}

Which lead to a crash on game startup, right after the "Cyberpunk 2077" animated logo.

What is more disturbing is that there's no Cyberpunk stacktrace Report / no log found in Codeware / successful compilation in Redscript with no apparent error / no error in RED4ext.

As I've stumbled upon weird bugs with e.g. booleans / temporary array in Redscript in the past, I also tried cleaning up my script as follow, which didn't change the outcome:

module MyMod

public static func E(str: String) -> Void {
  let fun = Reflection.GetGlobalFunction(n"LogChannel");
  let exists = IsDefined(fun);
  if exists {
    let args: array<Variant> = [ToVariant(n"DEBUG"), ToVariant(s"[MyMod] \(str)")];
    let _ = fun.Call(args);
  }
}

Thanks for your time, as always.

Some warning in redscript log when launching cp2077

Some warning in redscript log when launching cp2077

[WARN - Sun, 10 Dec 2023 12:58:13 +0800] At E:\Cyberpunk 2077\r6\scripts\Codeware\Codeware.Global.reds:2007:1:
@addField(inkScrollArea)
^^^
field with this name is already defined in the class, this will have no effect

Compilation error: cannot Reparent an inkComponent

Hi,

I'm trying to play with your framework. Based on this section in wiki, I can create a custom inkComponent as a widget. When I want to add it in the tree using Reparent, the following error is shown in compilation logs:

[NO_MATCHING_OVERLOAD]
group.Reparent(other);
^^^^^^^^^^^^^^
arguments passed to Reparent do not match any of the overloads:
1st argument: expected wref<inkCompoundWidget>, given ref<MyOtherComponent>

Here parts of the code:

public class MyOtherComponent extends inkComponent {
  // ...
}

public class MyComponent extends inkComponent {
  // ...

  protected cb func OnCreate() -> ref<inkWidget> {
    let root = new inkCanvas();

    root.SetName(this.GetClassName());
    root.SetAnchor(inkEAnchor.Fill);
    let other = new MyOtherComponent();
    
    other.Reparent(root);
    let group = new inkVerticalPanel();

    group.SetName(n"group");
    group.SetAnchor(inkEAnchor.BottomCenter);
    group.SetAnchorPoint(new Vector2(0.5, 1.0));
    group.SetMargin(new inkMargin(8.0, 0.0, 8.0, 48.0));
    group.Reparent(other);  // <--- compilation error
    return root;
  }
}

According to the log, Reparent doesn't accept an inkComponent-like instance. Can I declare and how can I do so using inkComponent and reparent it among other widgets? Should I use the "old" inkCustomController approach I saw in your code and others?

Any guidance would be much appreciated :)

Something wrong with the framework

Hello,

I'm trying to play with this framework but every time I launch the game it tells me that some scripts are missing or corrupted but my game has been freshly reinstalled, I've checked all the mods I've downloaded and apparently it seems to be this one.
If it can help all the mods I've tested with this framework are; cyber engine tweaks, red4ext (obviously) and redscript, and without codeware everything is working well, even with the latest release.
I don't know if there are any bugs or conflicts with these mods but i don't know if there's anything I can do to solve this problem, if there's anything i can do, please let me know.

Edit: it did the same for ArchiveXL and TweakXL, i checked for them too after codeware.

CTD on Linux under Proton

Shot in the dark, as I'm sure the mod isn't supposed to support Proton on Linux, (though Cyber Engine Tweaks has a guide for Linux, so I'd imagine that support may extend to other mods) but upon trying to launch the game with Codeware installed, the game crashes to desktop.

The part I think might help is here, but I've also got my crash dump along with CTD Helper's report (hosted on my web server since I can't send HTML files here) if those help.

[WARN - Sun, 20 Aug 2023 20:07:36 -0400] At S:\common\Cyberpunk 2077\r6\scripts\Codeware\Codeware.Global.reds:1852:1:
@addField(inkScrollArea)
^^^
field with this name is already defined in the class, this will have no effect

Fedora 38, running on an MSI Raider GE66 with an i7-12700H, 16GB of RAM, and an RTX 3070Ti laptop GPU.

Should also mention I know for a fact it's only loading once

GetFilteredInventoryItemsData list contains removed wardrobe items

After using wardrobeSystem.ForgetItemID on a specific item, the item is still on the list returned by wardrobeSystem.GetFilteredInventoryItemsData. GetStoredItemIDs and GetFilteredStoredItemIDs work correctly and don't have the item.

The consequences are visible to the user. Since WardrobeSetEditorUIController uses GetFilteredInventoryItemsData instead of GetFilteredStoredItemIDs, the removed item is still visible in the wardrobe outfit editor. It can even be equipped, but it isn't saved in the outfit.

The issue can be workarounded by saving the game after using ForgetItemID, and loading the new save.

Example CET snippet reproducing the issue:

local inventoryManager = Game.GetScriptableSystemsContainer():Get(CName.new('EquipmentSystem')):GetPlayerData(Game.GetPlayer()):GetInventoryManager()
local wardrobeSystem = Game.GetWardrobeSystem()

local function printFilteredStoredItemIds ()
    local itemIds = wardrobeSystem:GetFilteredStoredItemIDs(gamedataEquipmentArea.OuterChest)
    for _,itemId in pairs(itemIds) do
        print("GetFilteredStoredItemIDs: "..ItemID.GetTDBID(itemId).value)
    end
end

local function printFilteredInventoryItemsData ()
    local itemDatas = wardrobeSystem:GetFilteredInventoryItemsData(gamedataEquipmentArea.OuterChest, inventoryManager)
    for _,itemData in pairs(itemDatas) do
        print("GetFilteredInventoryItemsData: "..ItemID.GetTDBID(itemData:GetID()).value)
    end
end

local itemId = ItemID.FromTDBID("Items.MQ049_martinez_jacket")

printFilteredStoredItemIds() -- the item is not present
printFilteredInventoryItemsData() -- the item is not present

wardrobeSystem:StoreUniqueItemID(itemId)

printFilteredStoredItemIds() -- the added item is present [OK]
printFilteredInventoryItemsData() -- the added item is present [OK]

wardrobeSystem:ForgetItemID(itemId)

printFilteredStoredItemIds() -- the removed item is not present [OK]
printFilteredInventoryItemsData() -- the removed item is present [NOT OK]

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.