Add mod development environment, docs, and example modlet

This commit is contained in:
2026-08-20 16:25:22 -04:00
parent 7abaeccac5
commit d47b0703ee
9 changed files with 475 additions and 0 deletions
+79
View File
@@ -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\`.
+33
View File
@@ -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\<mod_name>\`
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\`
+111
View File
@@ -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 }
}
+103
View File
@@ -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\<mod_name>\`
+31
View File
@@ -1,2 +1,33 @@
# lyndas_mod # 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
+63
View File
@@ -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
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<configs>
<set xpath="/player/@maxHealth" value="200" />
<set xpath="/player/@health" value="200" />
</configs>
+7
View File
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<ModInfo>
<Name value="Lynda's First Modlet" />
<Description value="A simple starting modlet for minor 7 Days to Die modifications." />
<Author value="Lynda" />
<Version value="1.0.0" />
</ModInfo>
+43
View File
@@ -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.