fix(mods): mods.py still points at retired repos, so copy-assets and the bunwulf generators both miss the in-tree Unity project #28

Closed
opened 2026-08-20 06:16:00 +00:00 by coilyco-ops · 0 comments
Member

Two related defects in mods/scripts/mods.py, both left over from the consolidation that brought the Unity asset project in-tree under unity/.

1. copy-assets clones a retired repo for a source that is now a sibling directory

copy_assets() clones git@github.com:coilyco-bridge/eco-mods-assets.git --depth 1 into ./eco-server/assets, strips its .git, then walks ./eco-server/assets/Builds/Mods/UserCode/<mod>/Assets and copies each into ./Mods/UserCode/<mod>/Assets.

That upstream repo is deprecated. The tree it was cloned for now lives in this repository at unity/Builds/Mods/UserCode/<mod>/Assets, with the exact same shape. Confirmed present: BunWulfBiochemical/Assets and BunWulfConstruction/Assets.

So the verb performs a network clone of a dead remote to obtain files that are already on disk one directory over. ./eco-server/ does not otherwise exist in the repo, so the scratch path is orphaned too.

Expected shape: read from ../unity/Builds/Mods/UserCode/, drop the clone, the .git teardown, and the --branch plumbing that only made sense against a separate remote.

2. USERCODE_PATH writes generated code into a retired repo outside the tree

At module scope:

USERCODE_PATH = os.path.join(
    "C:\\", "Users", USERNAME, "projects", "eco-mods-public", "Mods", "UserCode"
)

bunwulf_agricultural() and bunwulf_structural() both write through it, so just bunwulf-agricultural and just bunwulf-structural emit their generated plants and recipes into eco-mods-public, a deprecated repo that is not a resident checkout. On a machine where that path does not exist the write fails, and on a machine where a stale copy does exist the generators silently update the wrong tree.

It is also an absolute Windows path with a drive letter and a user directory baked in, which makes the verb unrunnable anywhere else.

Expected shape: resolve against this repository's own Mods/UserCode, relative to the script, matching where copy_assets already writes.

Why one issue

Both are the same rot in the same file: the module still assumes the pre-consolidation three-repo split. Fixing either alone leaves the file half-migrated.

Canonical repo set is coilyco-gaming/{eco-app, eco-mods, eco-ops}. Every other eco-* repo is deprecated.

Two related defects in `mods/scripts/mods.py`, both left over from the consolidation that brought the Unity asset project in-tree under `unity/`. ## 1. `copy-assets` clones a retired repo for a source that is now a sibling directory `copy_assets()` clones `git@github.com:coilyco-bridge/eco-mods-assets.git --depth 1` into `./eco-server/assets`, strips its `.git`, then walks `./eco-server/assets/Builds/Mods/UserCode/<mod>/Assets` and copies each into `./Mods/UserCode/<mod>/Assets`. That upstream repo is deprecated. The tree it was cloned for now lives in this repository at `unity/Builds/Mods/UserCode/<mod>/Assets`, with the exact same shape. Confirmed present: `BunWulfBiochemical/Assets` and `BunWulfConstruction/Assets`. So the verb performs a network clone of a dead remote to obtain files that are already on disk one directory over. `./eco-server/` does not otherwise exist in the repo, so the scratch path is orphaned too. Expected shape: read from `../unity/Builds/Mods/UserCode/`, drop the clone, the `.git` teardown, and the `--branch` plumbing that only made sense against a separate remote. ## 2. `USERCODE_PATH` writes generated code into a retired repo outside the tree At module scope: ```python USERCODE_PATH = os.path.join( "C:\\", "Users", USERNAME, "projects", "eco-mods-public", "Mods", "UserCode" ) ``` `bunwulf_agricultural()` and `bunwulf_structural()` both write through it, so `just bunwulf-agricultural` and `just bunwulf-structural` emit their generated plants and recipes into `eco-mods-public`, a deprecated repo that is not a resident checkout. On a machine where that path does not exist the write fails, and on a machine where a stale copy does exist the generators silently update the wrong tree. It is also an absolute Windows path with a drive letter and a user directory baked in, which makes the verb unrunnable anywhere else. Expected shape: resolve against this repository's own `Mods/UserCode`, relative to the script, matching where `copy_assets` already writes. ## Why one issue Both are the same rot in the same file: the module still assumes the pre-consolidation three-repo split. Fixing either alone leaves the file half-migrated. ## Related Canonical repo set is `coilyco-gaming/{eco-app, eco-mods, eco-ops}`. Every other `eco-*` repo is deprecated.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
coilyco-gaming/eco-mods#28
No description provided.