v2.0 — Complete rewrite: Clone Satori + Nehan instead of building from scratch
Key changes: - Katana: Items.Preset_Katana_Saburo_Legendary (Satori clone) → Retains all bleeding, hemorrhaging, hidden GameplayLogicPackages - Knife: Items.Preset_Tanto_Saburo_Retrofix (Nehan clone) → Retains thrown bleeding, hemorrhaging, health restoration - Only displayName/localizedDescription overridden - Localization in r6/loc/en-us/ and r6/loc/de-de/ (proper LocKey resolution) - Removed all custom statModifiers (they were ignored anyway) - Removed IconicWeaponModAbilityBase approach - Removed LocalizationOverride block - Clean file structure matching CDPR conventions Thanks to ChatGPT for the correct approach: - Stats via statModifiers were being ignored - HealOnKill/HealthRegen don't exist as BaseStats - Nehan heals via GameplayLogicPackage, not stats - ArmorPenetration is not the right stat name post-2.0 - Cloning existing Iconics preserves all hidden behavior
This commit is contained in:
@@ -1,58 +1,77 @@
|
|||||||
# Crystal Blades — README
|
# Crystal Blades — Kristallklingen
|
||||||
|
|
||||||
## Waffen
|
Two new Iconic weapons for Cyberpunk 2077, cloned from Satori and Nehan.
|
||||||
|
|
||||||
### Kristallschneider (Katana)
|
## Weapons
|
||||||
- **Konzept:** Katana mit monomolekularer Kristallklinge
|
|
||||||
- **Stats:** Hohes Damage, mittlere Angriffsgeschwindigkeit
|
|
||||||
- **Spezial:** Ignoriert 100% Rüstung, 100% Blutung bei jedem Treffer
|
|
||||||
- **Qualität:** Legendary
|
|
||||||
|
|
||||||
### Phantom Splitter (Wurfdolch)
|
### Kristallschneider (Crystal Cleaver) — Katana
|
||||||
- **Konzept:** Wurfdolch mit monomolekularer Kristallklinge
|
- **Base:** Satori (Items.Preset_Katana_Saburo_Legendary)
|
||||||
- **Stats:** Schnell, geringer Schaden aber hoher Crit
|
- **Retains:** Bleeding on hit, all hidden GameplayLogicPackages
|
||||||
- **Spezial:** Ignoriert 100% Rüstung, 100% Blutung bei jedem Treffer
|
- **New:** Custom name and description
|
||||||
- **Qualität:** Legendary
|
|
||||||
|
### Phantom Splitter — Wurfdolch
|
||||||
|
- **Base:** Nehan (Items.Preset_Tanto_Saburo_Retrofix)
|
||||||
|
- **Retains:** Thrown hits apply Bleeding, hemorrhaging on already-bleeding targets, health restoration
|
||||||
|
- **New:** Custom name and description
|
||||||
|
|
||||||
|
## Requirements
|
||||||
|
- TweakXL
|
||||||
|
- ArchiveXL (for LocKey resolution)
|
||||||
|
- RED4ext
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
### Benötigt:
|
Copy the following folders to your Cyberpunk 2077 game directory:
|
||||||
- ArchiveXL
|
|
||||||
- TweakXL
|
|
||||||
- Codeware
|
|
||||||
- red4ext
|
|
||||||
- redscript
|
|
||||||
|
|
||||||
### Installation:
|
|
||||||
1. Kopiere den `r6/tweaks/crystal_blades/` Ordner nach `r6/tweaks/crystal_blades/` im Spielordner
|
|
||||||
2. Kopiere die `localization/crystal_blades.json` nach `r6/config/settings/` (oder ins localization Verzeichnis)
|
|
||||||
3. Starte das Spiel — TweakXL lädt die Waffen-Definitionen automatisch
|
|
||||||
|
|
||||||
### Waffen erhalten:
|
|
||||||
Im Spiel die CET-Konsole öffnen und eingeben:
|
|
||||||
```
|
```
|
||||||
Game.GetTarget():AddMod("Items.Preset_Crystal_Katana")
|
r6/tweaks/crystal_blades/crystal_blades.yaml → r6/tweaks/crystal_blades/
|
||||||
Game.GetTarget():AddMod("Items.Preset_Crystal_ThrowingKnife")
|
r6/loc/en-us/crystal_blades.json → r6/loc/en-us/
|
||||||
|
r6/loc/de-de/crystal_blades.json → r6/loc/de-de/
|
||||||
```
|
```
|
||||||
|
|
||||||
Oder über ArchiveXL/Virtual Atelier als Shop-Item hinzufügen.
|
## Spawn Commands (CET Console)
|
||||||
|
|
||||||
## Status
|
```
|
||||||
|
Game.AddToInventory("Items.Preset_Crystal_Katana", 1)
|
||||||
|
Game.AddToInventory("Items.Preset_Crystal_Knife", 1)
|
||||||
|
```
|
||||||
|
|
||||||
- [x] TweakXL Stats definiert
|
## File Structure
|
||||||
- [x] Lokalisierung (EN + DE)
|
|
||||||
- [x] Status Effects (Bleed + Armor Pierce)
|
|
||||||
- [ ] 3D Mesh (Blender → WolvenKit)
|
|
||||||
- [ ] Texturen (ComfyUI)
|
|
||||||
- [ ] Icon
|
|
||||||
- [ ] ArchiveXL Item-Definition (.xl)
|
|
||||||
- [ ] Virtual Atelier Shop-Eintrag
|
|
||||||
|
|
||||||
## Nächste Schritte
|
```
|
||||||
|
cp2077-crystal-blades/
|
||||||
|
├── r6/
|
||||||
|
│ ├── tweaks/
|
||||||
|
│ │ └── crystal_blades/
|
||||||
|
│ │ └── crystal_blades.yaml ← Weapon definitions (clone Satori + Nehan)
|
||||||
|
│ └── loc/
|
||||||
|
│ ├── en-us/
|
||||||
|
│ │ └── crystal_blades.json ← English names/descriptions
|
||||||
|
│ └── de-de/
|
||||||
|
│ └── crystal_blades.json ← German names/descriptions
|
||||||
|
├── archive/
|
||||||
|
│ └── pc/
|
||||||
|
│ └── mod/ ← (future: custom meshes/textures)
|
||||||
|
└── README.md
|
||||||
|
```
|
||||||
|
|
||||||
1. **Blender:** Kristall-Katana Mesh erstellen (transparente Klinge, leuchtende Schneide)
|
## How It Works
|
||||||
2. **Blender:** Wurfdolch Mesh erstellen (kompakt, Kristallklinge)
|
|
||||||
3. **WolvenKit:** Meshes ins CP2077 .mesh Format konvertieren
|
Instead of building weapons from scratch, this mod **clones** Satori and Nehan:
|
||||||
4. **ComfyUI:** Texturen generieren (Kristall-Look, leuchtend)
|
|
||||||
5. **ArchiveXL:** .xl Datei für das Item-Appearance
|
1. `$base: Items.Preset_Katana_Saburo_Legendary` copies the ENTIRE Satori record
|
||||||
6. **Testen:** Im Spiel prüfen ob Waffen funktionieren
|
- All hidden GameplayLogicPackages (bleeding, hemorrhaging)
|
||||||
|
- All statModifiers from the base weapon
|
||||||
|
- All scripts and effectors
|
||||||
|
|
||||||
|
2. Only `displayName` and `localizedDescription` are overridden
|
||||||
|
|
||||||
|
3. LocKeys are resolved via `r6/loc/` JSON files (not ArchiveXL)
|
||||||
|
|
||||||
|
## TODO
|
||||||
|
|
||||||
|
- [ ] Custom 3D mesh (Blender → WolvenKit)
|
||||||
|
- [ ] Custom textures (ComfyUI — crystal look)
|
||||||
|
- [ ] Custom inventory icons
|
||||||
|
- [ ] ArchiveXL appearance definition (.xl)
|
||||||
|
- [ ] Virtual Atelier store entry
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"crystal_katana_name": "Kristallschneider",
|
||||||
|
"crystal_katana_desc": "Ein Katana mit monomolekularer Kristallklinge. Geschmiedet in den Tiefen des schwarzen Marktes von Night City. Jeder Treffer verursacht unkontrollierbare Blutung — Rüstung ist bedeutungslos.",
|
||||||
|
"crystal_knife_name": "Phantom Splitter",
|
||||||
|
"crystal_knife_desc": "Ein Wurfdolch mit monomolekularer Kristallklinge. Geworfene Treffer garantieren Blutung. Wenn das Ziel bereits blutet, verursacht der Dolch innere Blutungen und heilt den Träger."
|
||||||
|
}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"crystal_katana_name": "Crystal Cleaver",
|
||||||
|
"crystal_katana_desc": "A katana with a monomolecular crystal blade. Forged in the depths of Night City's black market. Every strike causes uncontrollable bleeding — armor is meaningless.",
|
||||||
|
"crystal_knife_name": "Phantom Splitter",
|
||||||
|
"crystal_knife_desc": "A throwing knife with a monomolecular crystal edge. Thrown hits guarantee bleeding. If the target is already bleeding, the knife causes hemorrhaging and heals the wielder."
|
||||||
|
}
|
||||||
@@ -1,109 +1,28 @@
|
|||||||
# Crystal Blades — Kristallklingen
|
# Crystal Blades — Kristallklingen
|
||||||
# Direkte Waffen-Definition ohne Hidden Mod Umweg
|
# Klon von Satori (Katana) und Nehan (Wurfdolch)
|
||||||
|
# Behält alle versteckten GameplayLogicPackages, Scripte und Effekte
|
||||||
|
# Nur Name, Beschreibung und zusätzliche Stats werden überschrieben
|
||||||
|
|
||||||
# ============================================================
|
# ============================================================
|
||||||
# WAFFE 1: Kristallschneider (Katana)
|
# WAFFE 1: Kristallschneider — Klon von Satori
|
||||||
|
# Satori = Items.Preset_Katana_Saburo_Legendary
|
||||||
|
# Behält: Bleeding, Hemorrhaging, alle Hidden Packages
|
||||||
# ============================================================
|
# ============================================================
|
||||||
|
|
||||||
Items.Preset_Crystal_Katana:
|
Items.Preset_Crystal_Katana:
|
||||||
$base: Items.Preset_Katana_Default
|
$base: Items.Preset_Katana_Saburo_Legendary
|
||||||
displayName: LocKey#crystal_katana_name
|
displayName: LocKey#crystal_katana_name
|
||||||
localizedDescription: LocKey#crystal_katana_desc
|
localizedDescription: LocKey#crystal_katana_desc
|
||||||
quality: Quality.Legendary
|
quality: Quality.Legendary
|
||||||
|
|
||||||
# Direkte Stat-Überschreibungen auf der Waffe
|
|
||||||
statModifiers:
|
|
||||||
- $type: gamedataConstantStatModifier_Record
|
|
||||||
modifierType: Additive
|
|
||||||
statType: BaseStats.DPS
|
|
||||||
value: 200.0
|
|
||||||
- $type: gamedataConstantStatModifier_Record
|
|
||||||
modifierType: Additive
|
|
||||||
statType: BaseStats.AttackSpeed
|
|
||||||
value: 0.2
|
|
||||||
- $type: gamedataConstantStatModifier_Record
|
|
||||||
modifierType: Additive
|
|
||||||
statType: BaseStats.CritChance
|
|
||||||
value: 15.0
|
|
||||||
- $type: gamedataConstantStatModifier_Record
|
|
||||||
modifierType: Additive
|
|
||||||
statType: BaseStats.CritDamage
|
|
||||||
value: 30.0
|
|
||||||
- $type: gamedataConstantStatModifier_Record
|
|
||||||
modifierType: Additive
|
|
||||||
statType: BaseStats.BleedingApplicationRate
|
|
||||||
value: 1.0
|
|
||||||
- $type: gamedataConstantStatModifier_Record
|
|
||||||
modifierType: Additive
|
|
||||||
statType: BaseStats.ArmorPenetration
|
|
||||||
value: 1.0
|
|
||||||
# Kopfschuss bleibt extrem tödlich — monomolekular durchtrennt alles
|
|
||||||
- $type: gamedataConstantStatModifier_Record
|
|
||||||
modifierType: Additive
|
|
||||||
statType: BaseStats.HeadshotDamageMultiplier
|
|
||||||
value: 4.0
|
|
||||||
# Lifesteal — Leben zurück bei Kill (wie Nehan)
|
|
||||||
- $type: gamedataConstantStatModifier_Record
|
|
||||||
modifierType: Additive
|
|
||||||
statType: BaseStats.HealOnKill
|
|
||||||
value: 50.0
|
|
||||||
# Heilung bei Treffer
|
|
||||||
- $type: gamedataConstantStatModifier_Record
|
|
||||||
modifierType: Additive
|
|
||||||
statType: BaseStats.HealthRegen
|
|
||||||
value: 10.0
|
|
||||||
|
|
||||||
# ============================================================
|
# ============================================================
|
||||||
# WAFFE 2: Phantom Splitter (Wurfdolch)
|
# WAFFE 2: Phantom Splitter — Klon von Nehan
|
||||||
|
# Nehan = Items.Preset_Tanto_Saburo_Retrofix
|
||||||
|
# Behält: Thrown hits apply Bleeding, Hemorrhaging, Healing
|
||||||
# ============================================================
|
# ============================================================
|
||||||
|
|
||||||
Items.Preset_Crystal_ThrowingKnife:
|
Items.Preset_Crystal_Knife:
|
||||||
$base: Items.Preset_Knife_Default
|
$base: Items.Preset_Tanto_Saburo_Retrofix
|
||||||
displayName: LocKey#crystal_knife_name
|
displayName: LocKey#crystal_knife_name
|
||||||
localizedDescription: LocKey#crystal_knife_desc
|
localizedDescription: LocKey#crystal_knife_desc
|
||||||
quality: Quality.Legendary
|
quality: Quality.Legendary
|
||||||
|
|
||||||
statModifiers:
|
|
||||||
- $type: gamedataConstantStatModifier_Record
|
|
||||||
modifierType: Additive
|
|
||||||
statType: BaseStats.DPS
|
|
||||||
value: 150.0
|
|
||||||
- $type: gamedataConstantStatModifier_Record
|
|
||||||
modifierType: Additive
|
|
||||||
statType: BaseStats.AttackSpeed
|
|
||||||
value: 0.5
|
|
||||||
- $type: gamedataConstantStatModifier_Record
|
|
||||||
modifierType: Additive
|
|
||||||
statType: BaseStats.CritChance
|
|
||||||
value: 25.0
|
|
||||||
- $type: gamedataConstantStatModifier_Record
|
|
||||||
modifierType: Additive
|
|
||||||
statType: BaseStats.CritDamage
|
|
||||||
value: 50.0
|
|
||||||
- $type: gamedataConstantStatModifier_Record
|
|
||||||
modifierType: Additive
|
|
||||||
statType: BaseStats.BleedingApplicationRate
|
|
||||||
value: 1.0
|
|
||||||
- $type: gamedataConstantStatModifier_Record
|
|
||||||
modifierType: Additive
|
|
||||||
statType: BaseStats.ArmorPenetration
|
|
||||||
value: 1.0
|
|
||||||
# Kopfschuss bleibt extrem tödlich
|
|
||||||
- $type: gamedataConstantStatModifier_Record
|
|
||||||
modifierType: Additive
|
|
||||||
statType: BaseStats.HeadshotDamageMultiplier
|
|
||||||
value: 4.0
|
|
||||||
# Lifesteal — Leben zurück bei Kill (wie Nehan)
|
|
||||||
- $type: gamedataConstantStatModifier_Record
|
|
||||||
modifierType: Additive
|
|
||||||
statType: BaseStats.HealOnKill
|
|
||||||
value: 50.0
|
|
||||||
# Heilung bei Treffer
|
|
||||||
- $type: gamedataConstantStatModifier_Record
|
|
||||||
modifierType: Additive
|
|
||||||
statType: BaseStats.HealthRegen
|
|
||||||
value: 10.0
|
|
||||||
|
|
||||||
# ============================================================
|
|
||||||
# Localization — als JSON im localization Ordner
|
|
||||||
# ============================================================
|
|
||||||
Reference in New Issue
Block a user