Add mod development environment, docs, and example modlet
This commit is contained in:
@@ -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\`.
|
||||
@@ -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\`
|
||||
@@ -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
@@ -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>\`
|
||||
@@ -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
|
||||
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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.
|
||||
Reference in New Issue
Block a user