diff --git a/.kilo/agent/lyndas_mod.md b/.kilo/agent/lyndas_mod.md new file mode 100644 index 0000000..6feb1f6 --- /dev/null +++ b/.kilo/agent/lyndas_mod.md @@ -0,0 +1,79 @@ +# Lynda's 7D2D Mod Agent + +## Project Context + +This repository is for Lynda to build 7 Days to Die mods. The current target game version is **3.x**. + +## Environment Summary + +- **Username**: lynda +- **IDE**: VS Code (installed, with Kilo Code extension) +- **Git**: Installed and configured +- **Repo**: `lyndas_mod` with origin remote pointing to Gitea server +- **Game**: 7 Days to Die (Steam App ID: 251570) +- **Mod Launcher**: 7D2DModLauncherV5 v5.1.8.2 + +## Paths + +| Component | Path | +|-----------|------| +| Repo root | `C:\Users\lynda\Git\lyndas_mod` | +| Steam install | `C:\Steam\steamapps\common\7 Days To Die` | +| Mod launcher install | `C:\Program Files (x86)\7D2DModLauncherV5` | +| Mod launcher config | `C:\Users\lynda\AppData\Roaming\7D2DModLauncher\ModLauncher.txt` | +| Mod staging root | `C:\7D2D` | + +## Existing Mods in Mod Launcher + +### v1 Mods (installed under `C:\7D2D\v1\`) +- Darkness Falls (v6.0.0.20) — `C:\7D2D\v1\Darkness_Falls\Darkness_Falls` +- War of the Walkers (v1.x.x.x Stable) — `C:\7D2D\v1\War_of_the_Walkers\War_of_the_Walkers_v1.x.x.x_Stable` + +### v2 Mods (installed under `C:\7D2D\v2\`) +- Echoes from the Afterlife +- Forsaken Trail +- Greys Prophecy V1 Experimental +- NordArmy XMAS UPDATE +- Old West Migration (V1) +- Ravenhearst (v10.4.1b1) +- Tongo 2.0 +- VIKINGSMOD +- War3zuk FarmLife 5.6 +- Welcome to Purgatory +- Winterween +- 5thDay +- Asia Mod V1.1 Stable +- Experimental Recipes v1.0+ +- The Wasteland +- The Wasteland(Testing) + +### Custom Mod +- Asylum 2.5.4 — `C:\7D2D\Custom\Asylum_2.5.4` + +## Available v3 Mods + +The following v3 mods are available in the mod launcher (under `C:\7D2D\v3\`): +- 7DVR +- Aircraft Carrier Challenge High Seas V.3 +- Area 7 Challenge +- Backpacker Challenge +- Black Forrest +- Destroyer of Dreams High Seas +- Dishong Tower 2.5 +- District Zero +- EndZ Remastered +- NordArmy +- Old West Migration +- Outback Roadies +- Preppocalypse +- Project Praxis +- VIKINGSMOD +- Welcome to Purgatory +- Wild West Mod + +## Notes + +- v3 mods are now available in the mod launcher. +- The ModLauncher config has stale `SteamPaths` pointing to `e:\steam\steamapps\common\7 Days To Die\` but the actual Steam install is at `C:\Steam\steamapps\common\7 Days To Die`. +- Game saves are stored in `C:\Users\lynda\AppData\Roaming\7DaysToDie\Saves\` for vanilla and within each mod's directory for modded play. +- Mod backups are stored in `C:\7D2D\Saves\Backups\`. diff --git a/.kilo/command/7d2d.md b/.kilo/command/7d2d.md new file mode 100644 index 0000000..5a124d9 --- /dev/null +++ b/.kilo/command/7d2d.md @@ -0,0 +1,33 @@ +# 7D2D Modding Commands + +## Game Paths +- Steam install: `C:\Steam\steamapps\common\7 Days To Die` +- Mod staging: `C:\7D2D` +- Mod launcher: `C:\Program Files (x86)\7D2DModLauncherV5\ModLauncherV5.exe` +- Mod launcher config: `C:\Users\lynda\AppData\Roaming\7D2DModLauncher\ModLauncher.txt` + +## Launching the Game +1. Open `7D2DModLauncherV5` from Start Menu or run `C:\Program Files (x86)\7D2DModLauncherV5\ModLauncherV5.exe` +2. Select desired mod/profile +3. Click Play + +## Mod Development Workflow + +### Simple Modlets (vanilla folder) +1. Create/update modlet files in `mods/` in this repo +2. Run `.kilo/scripts/modlet.ps1 -Action enable` to copy modlets to the Steam `Mods` folder +3. Launch the game and start a new save to test +4. Run `.kilo/scripts/modlet.ps1 -Action disable` to remove modlets when done +5. Run `.kilo/scripts/modlet.ps1 -Action sync` to update already-enabled modlets after making changes + +### Full Mods (mod launcher) +1. Create/update mod files in this repo +2. Copy or sync modified files to the mod launcher's game copy under `C:\7D2D\v3\\` +3. Launch via Mod Launcher to test + +## Current Installed Mods +See `ENVIRONMENT.md` for the full list of installed mods and their paths. + +## Notes +- Current target version is 3.x +- v3 mods are available in the mod launcher under `C:\7D2D\v3\` diff --git a/.kilo/scripts/modlet.ps1 b/.kilo/scripts/modlet.ps1 new file mode 100644 index 0000000..00ae52f --- /dev/null +++ b/.kilo/scripts/modlet.ps1 @@ -0,0 +1,111 @@ +# Enable/disable modlets for vanilla 7 Days to Die testing +# Copies modlets to/from the Steam Mods folder + +param( + [Parameter(Mandatory=$true)] + [ValidateSet("enable", "disable", "status", "sync")] + [string]$Action +) + +$steamModsPath = "C:\Steam\steamapps\common\7 Days To Die\Mods" +$repoModsPath = "C:\Users\lynda\Git\lyndas_mod\mods" + +if (-not (Test-Path $steamModsPath)) { + Write-Error "Steam Mods folder not found: $steamModsPath" + exit 1 +} + +if (-not (Test-Path $repoModsPath)) { + Write-Error "Repo mods folder not found: $repoModsPath" + exit 1 +} + +function Get-Modlets { + Get-ChildItem -Path $repoModsPath -Directory | Where-Object { $_.Name -ne "README.md" } +} + +function Enable-Modlets { + $modlets = Get-Modlets + if ($modlets.Count -eq 0) { + Write-Host "No modlets found in $repoModsPath" + return + } + + foreach ($modlet in $modlets) { + $targetPath = Join-Path $steamModsPath $modlet.Name + $sourcePath = $modlet.FullName + + if (Test-Path $targetPath) { + Write-Warning "Already exists (skipping): $targetPath" + continue + } + + Copy-Item -Path $sourcePath -Destination $targetPath -Recurse -Force + Write-Host "Enabled: $($modlet.Name)" + } +} + +function Disable-Modlets { + $modlets = Get-Modlets + if ($modlets.Count -eq 0) { + Write-Host "No modlets found in $repoModsPath" + return + } + + foreach ($modlet in $modlets) { + $targetPath = Join-Path $steamModsPath $modlet.Name + + if (-not (Test-Path $targetPath)) { + Write-Warning "Not found (skipping): $targetPath" + continue + } + + Remove-Item -LiteralPath $targetPath -Recurse -Force + Write-Host "Disabled: $($modlet.Name)" + } +} + +function Sync-Modlets { + $modlets = Get-Modlets + if ($modlets.Count -eq 0) { + Write-Host "No modlets found in $repoModsPath" + return + } + + foreach ($modlet in $modlets) { + $targetPath = Join-Path $steamModsPath $modlet.Name + $sourcePath = $modlet.FullName + + if (-not (Test-Path $targetPath)) { + Write-Host "Not enabled, skipping: $($modlet.Name)" + continue + } + + Copy-Item -Path $sourcePath -Destination $targetPath -Recurse -Force + Write-Host "Synced: $($modlet.Name)" + } +} + +function Show-Status { + $modlets = Get-Modlets + if ($modlets.Count -eq 0) { + Write-Host "No modlets found in $repoModsPath" + return + } + + Write-Host "`nModlet Status:" + Write-Host "--------------" + foreach ($modlet in $modlets) { + $targetPath = Join-Path $steamModsPath $modlet.Name + $status = if (Test-Path $targetPath) { "ENABLED" } else { "disabled" } + Write-Host "$($modlet.Name): $status" + } + Write-Host "" +} + +switch ($Action) { + "enable" { Enable-Modlets } + "disable" { Disable-Modlets } + "status" { Show-Status } + "sync" { Sync-Modlets } +} diff --git a/ENVIRONMENT.md b/ENVIRONMENT.md new file mode 100644 index 0000000..8663c89 --- /dev/null +++ b/ENVIRONMENT.md @@ -0,0 +1,103 @@ +# Environment Documentation + +Last updated: 2026-08-20 + +## Setup Overview + +This machine was set up for Lynda to build 7 Days to Die mods using: +- VS Code +- Git +- Kilo Code +- Gitea server as origin remote for version control + +## Installed Software + +| Software | Version / Path | +|----------|---------------| +| 7 Days to Die | `C:\Steam\steamapps\common\7 Days To Die` (Steam App ID: 251570) | +| 7D2DModLauncherV5 | v5.1.8.2 (`C:\Program Files (x86)\7D2DModLauncherV5`) | +| Git | Installed | +| VS Code | Installed | +| Kilo Code | Installed | + +## Key Paths + +| Purpose | Path | +|---------|------| +| Mod repository | `C:\Users\lynda\Git\lyndas_mod` | +| Steam game install | `C:\Steam\steamapps\common\7 Days To Die` | +| Mod launcher install | `C:\Program Files (x86)\7D2DModLauncherV5` | +| Mod launcher config | `C:\Users\lynda\AppData\Roaming\7D2DModLauncher\ModLauncher.txt` | +| Mod staging root | `C:\7D2D` | +| Vanilla saves | `C:\Users\lynda\AppData\Roaming\7DaysToDie\Saves\` | +| Mod backups | `C:\7D2D\Saves\Backups\` | + +## Mod Launcher Config + +File: `C:\Users\lynda\AppData\Roaming\7D2DModLauncher\ModLauncher.txt` + +```ini +[Global] +Location=C:\7D2D +SteamPaths="e:\steam\steamapps\common\7 Days To Die\" +LocalCopy="e:\steam\steamapps\common\7 Days To Die\" +LocalSaves=True +``` + +> Note: The `SteamPaths` and `LocalCopy` values contain stale drive letters pointing to `E:\`. The actual Steam install is on `C:\Steam`. + +## Installed Mods + +### v1 Mods +- **Darkness Falls** v6.0.0.20 — `C:\7D2D\v1\Darkness_Falls\Darkness_Falls` +- **War of the Walkers** v1.x.x.x Stable — `C:\7D2D\v1\War_of_the_Walkers\War_of_the_Walkers_v1.x.x.x_Stable` + +### v2 Mods +- Echoes from the Afterlife +- Forsaken Trail +- Greys Prophecy V1 Experimental +- NordArmy XMAS UPDATE +- Old West Migration (V1) +- Ravenhearst (v10.4.1b1) +- Tongo 2.0 +- VIKINGSMOD +- War3zuk FarmLife 5.6 +- Welcome to Purgatory +- Winterween +- 5thDay +- Asia Mod V1.1 Stable +- Experimental Recipes v1.0+ +- The Wasteland +- The Wasteland(Testing) + +### Custom Mods +- **Asylum** 2.5.4 — `C:\7D2D\Custom\Asylum_2.5.4` + +## Available v3 Mods + +The following v3 mods are available in the mod launcher (under `C:\7D2D\v3\`): +- 7DVR +- Aircraft Carrier Challenge High Seas V.3 +- Area 7 Challenge +- Backpacker Challenge +- Black Forrest +- Destroyer of Dreams High Seas +- Dishong Tower 2.5 +- District Zero +- EndZ Remastered +- NordArmy +- Old West Migration +- Outback Roadies +- Preppocalypse +- Project Praxis +- VIKINGSMOD +- Welcome to Purgatory +- Wild West Mod + +## Development Notes + +- Current target game version for new mods: **3.x** +- v3 mods are available in the mod launcher under `C:\7D2D\v3\` +- The repo `lyndas_mod` is intended for custom mod development +- For simple modlets, use `.kilo/scripts/modlet.ps1` to copy/delete mods in the Steam `Mods` folder +- For full conversions, use the mod launcher under `C:\7D2D\v3\\` diff --git a/README.md b/README.md index a106e30..f57dd0f 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,33 @@ # lyndas_mod +7 Days to Die mods and modlets for Lynda. + +## Quick Start + +### Simple Modlets (Vanilla) +```powershell +# Enable all modlets in the Steam Mods folder +.kilo\scripts\modlet.ps1 -Action enable + +# Sync changes after editing +.kilo\scripts\modlet.ps1 -Action sync + +# Disable all modlets +.kilo\scripts\modlet.ps1 -Action disable +``` + +### Full Mods (Mod Launcher) +Use 7D2DModLauncherV5 to manage v3 mods under `C:\7D2D\v3\`. + +## Repository Structure + +- `mods/` — Simple modlets for the vanilla Steam install +- `.kilo/agent/` — Kilo agent configuration +- `.kilo/command/` — Kilo command definitions +- `.kilo/scripts/` — Helper scripts for mod management +- `ENVIRONMENT.md` — Full environment documentation + +## Documentation + +- `ENVIRONMENT.md` — Complete environment and path reference +- `mods/README.md` — Modlet development guide diff --git a/mods/README.md b/mods/README.md new file mode 100644 index 0000000..f0c8c2b --- /dev/null +++ b/mods/README.md @@ -0,0 +1,63 @@ +# Modlet Management Scripts + +## Quick Start + +Enable all modlets for testing in vanilla 7 Days to Die: +```powershell +.kilo\scripts\modlet.ps1 -Action enable +``` + +Disable all modlets: +```powershell +.kilo\scripts\modlet.ps1 -Action disable +``` + +Sync changes from repo to Steam (for modlets already enabled): +```powershell +.kilo\scripts\modlet.ps1 -Action sync +``` + +Check which modlets are currently enabled: +```powershell +.kilo\scripts\modlet.ps1 -Action status +``` + +## How It Works + +This script copies modlets from `mods/` into the Steam `Mods` folder. This means: +- Edit modlets in `mods/` and run `sync` to update +- Enable/disable with a single command +- No junctions or special filesystem features required +- Works without admin privileges + +## Manual Shortcuts + +You can also create shortcuts on the desktop for quick access: + +### Enable Modlets +```powershell +powershell.exe -ExecutionPolicy Bypass -File "C:\Users\lynda\Git\lyndas_mod\.kilo\scripts\modlet.ps1" -Action enable +``` + +### Disable Modlets +```powershell +powershell.exe -ExecutionPolicy Bypass -File "C:\Users\lynda\Git\lyndas_mod\.kilo\scripts\modlet.ps1" -Action disable +``` + +### Sync Modlets +```powershell +powershell.exe -ExecutionPolicy Bypass -File "C:\Users\lynda\Git\lyndas_mod\.kilo\scripts\modlet.ps1" -Action sync +``` + +## Adding New Modlets + +1. Create a new folder in `mods/` +2. Add `ModInfo.xml` and `Config/` files +3. Run the enable script to test + +## Troubleshooting + +If copies fail: +- Ensure 7 Days to Die is not running +- Check that the Steam `Mods` folder exists +- Run PowerShell as Administrator if needed diff --git a/mods/example_modlet/Config/example_modlet.xml b/mods/example_modlet/Config/example_modlet.xml new file mode 100644 index 0000000..226bd5f --- /dev/null +++ b/mods/example_modlet/Config/example_modlet.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/mods/example_modlet/ModInfo.xml b/mods/example_modlet/ModInfo.xml new file mode 100644 index 0000000..061c2a8 --- /dev/null +++ b/mods/example_modlet/ModInfo.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/mods/example_modlet/README.md b/mods/example_modlet/README.md new file mode 100644 index 0000000..593b44e --- /dev/null +++ b/mods/example_modlet/README.md @@ -0,0 +1,43 @@ +# Lynda's First Modlet + +A simple starting modlet for minor 7 Days to Die modifications. + +## Structure + +``` +example_modlet/ + ModInfo.xml + Config/ + example_modlet.xml +``` + +## How It Works + +This modlet uses XPath to modify game settings. The example changes: +- Player max health: 200 +- Player starting health: 200 + +## Testing + +1. Copy the entire `example_modlet` folder to: + ``` + C:\Steam\steamapps\common\7 Days To Die\Mods\example_modlet + ``` + +2. Launch 7 Days to Die and start a new game. + +3. Verify the changes take effect (player should have 200 health instead of 100). + +## Making Your Own Changes + +Edit `Config/example_modlet.xml` to change different settings. Common XPath targets: +- `/player/@maxHealth` - player max health +- `/player/@health` - player starting health +- `/zombie/@health` - zombie health +- `/loot/@quantity` - loot quantities + +## Notes + +- Keep changes small and test one thing at a time. +- If something breaks, delete the modlet folder from `C:\Steam\steamapps\common\7 Days To Die\Mods\` to revert. +- For more complex mods, consider using the mod launcher's `C:\7D2D\v3\` structure instead.