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)
|
||||
- **Konzept:** Katana mit monomolekularer Kristallklinge
|
||||
- **Stats:** Hohes Damage, mittlere Angriffsgeschwindigkeit
|
||||
- **Spezial:** Ignoriert 100% Rüstung, 100% Blutung bei jedem Treffer
|
||||
- **Qualität:** Legendary
|
||||
## Weapons
|
||||
|
||||
### Phantom Splitter (Wurfdolch)
|
||||
- **Konzept:** Wurfdolch mit monomolekularer Kristallklinge
|
||||
- **Stats:** Schnell, geringer Schaden aber hoher Crit
|
||||
- **Spezial:** Ignoriert 100% Rüstung, 100% Blutung bei jedem Treffer
|
||||
- **Qualität:** Legendary
|
||||
### Kristallschneider (Crystal Cleaver) — Katana
|
||||
- **Base:** Satori (Items.Preset_Katana_Saburo_Legendary)
|
||||
- **Retains:** Bleeding on hit, all hidden GameplayLogicPackages
|
||||
- **New:** Custom name and description
|
||||
|
||||
### 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
|
||||
|
||||
### Benötigt:
|
||||
- ArchiveXL
|
||||
- TweakXL
|
||||
- Codeware
|
||||
- red4ext
|
||||
- redscript
|
||||
Copy the following folders to your Cyberpunk 2077 game directory:
|
||||
|
||||
### 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")
|
||||
Game.GetTarget():AddMod("Items.Preset_Crystal_ThrowingKnife")
|
||||
r6/tweaks/crystal_blades/crystal_blades.yaml → r6/tweaks/crystal_blades/
|
||||
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
|
||||
- [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
|
||||
## File Structure
|
||||
|
||||
## 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)
|
||||
2. **Blender:** Wurfdolch Mesh erstellen (kompakt, Kristallklinge)
|
||||
3. **WolvenKit:** Meshes ins CP2077 .mesh Format konvertieren
|
||||
4. **ComfyUI:** Texturen generieren (Kristall-Look, leuchtend)
|
||||
5. **ArchiveXL:** .xl Datei für das Item-Appearance
|
||||
6. **Testen:** Im Spiel prüfen ob Waffen funktionieren
|
||||
## How It Works
|
||||
|
||||
Instead of building weapons from scratch, this mod **clones** Satori and Nehan:
|
||||
|
||||
1. `$base: Items.Preset_Katana_Saburo_Legendary` copies the ENTIRE Satori record
|
||||
- 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
|
||||
# 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:
|
||||
$base: Items.Preset_Katana_Default
|
||||
$base: Items.Preset_Katana_Saburo_Legendary
|
||||
displayName: LocKey#crystal_katana_name
|
||||
localizedDescription: LocKey#crystal_katana_desc
|
||||
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:
|
||||
$base: Items.Preset_Knife_Default
|
||||
Items.Preset_Crystal_Knife:
|
||||
$base: Items.Preset_Tanto_Saburo_Retrofix
|
||||
displayName: LocKey#crystal_knife_name
|
||||
localizedDescription: LocKey#crystal_knife_desc
|
||||
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