Closed ignazkrum closed 7 months ago
Hey mate, thanks for the write up, that's valuable feedback. I'll answer your questions and have a think about improving docs. I might make a video at some point just to reduce the barrier of entry.
First and foremost, the help menu is standard POSIX / docopt style syntax. The syntax basically breaks down like this:
()
: logical grouping. Mostly used to identify which arguments |
is operating on.|
: or operator.[]
: contents of brackets are optional args.<>
: contents of angle brackets means to substitute them and the string they contain with your argument...
: repeat the last command any number of timesIt's also worth noting that each list has independent indexes (mods, plugins, downloads).
Armed with that information, I'll show you some examples of the help menu and some things you could actually type based on that syntax.
activate (mod|plugin) <index>
literally activate, either literally mod or literally plugin, substitute index with number.
activate mod 0
: this would activate the mod at mod index 0, in this case skse.activate plugin 0
: wouldn't do anything yet since your plugin list is currently empty.activate mod 1
: wouldn't do anything yet because you don't have a mod in your mods list with index 1.commit
commit
. This will save the configuration currently shown by ammo to your disk and it will persist.configure <index>
configure 0
: this command expects an index of a mod, and expects that mod to be a fomod. Since skse isn't a fomod, this would complain. If the mod at index 0 was a fomod (like SkyUI, if it was in your mods list), it would open the fomod configuration wizard. More on this later.install <index>
literally install, substitute index with number. This command expects an index from your downloads list.
install 0
: installs the download at index 0, in this case SkyUIinstall 1
: installs the download at index 1, in this case A Quality World Mapinstall 2
: attempts to install skse, but sees that it's already installed, and doesn't do anything.find [<keyword> ... ]
: literally find, optionally include any number of arbitrary strings as arguments
find sk
: only display components that contain the string skfind map skyui
: only display components that contain either or both of the strings map and skyui.find
: remove all search filters, displaying all components.rename (mod|download) <index> <name>
: literally rename, either literally mod or literally download, substitute index with number, substitute name with string that doesn't contain weird characters (like spaces, symbols, etc).
rename mod 0 SKSE
: renames the mod called "skse_1_07_03" to "SKSE"rename download 1 quality_world_map
: renames download called "A Quality World Map 9.0.1 - Vivid with Stone Roads-4929-9-0-1.zip" to "quality_world_map.zip"I hope that helps with the syntax. Now, to address your numbered points:
refresh
. When you ran install all
, ammo still wasn't aware that there were new files in your downloads folder, so it only installed the one it could see: skse. Once it was done installing, it refreshed automatically (it does this after operations that require an absence of uncommitted changes to run, like install), and finally displayed your new downloads. Skse wasn't duplicated from downloads to mods, it was extracted from downloads to mods. If you're done with the archive in downloads, you can delete it with delete download 2
(index might be different if you have more downloads since the state you pasted above, just use the number to the left of skse_1_07_03.7z.<index>
with the literal number that is to the left of the component you want to match. If the command you're using expects a type of component (like (mod|download)
), the index that is matched is the index from that particular type of component's list.rename
command expected an integer (denoted by <index>
in the help menu) but received a string with the text shown in the error instead. Correct syntax to do what you want would be one of these:
rename download 2 SKSE
: renames the download named skse_1_07_03.7z to SKSE.7zrename mod 0 SKSE
: renames the mod named skse_1_07_3 to SKSEplay
, you'll want to manually make a backup of SkyrimSELauncher.exe and manually copy your skse_loader.exe to SkyrimSELauncher.exe. You'll do this after you install skse with ammo. If you need to uninstall skse, uninstall it through ammo, then manually rename SkyrimSELauncher.exe.bak (or whatever you named your backup) to SkyrimSELauncher.exe.
Since there's no external tool integration, you'll probably want to make your own helper scripts for things like xEdit and whatever else you use. I personally don't use LOOT and I haven't looked into using it outside of a mod organizer. It's probably possible but you'd likely need to write some code. Anyway, I have some scripts that I keep in /usr/local/bin
to launch external tools through wine, using the game prefix. You'll need to run chmod +x <script name>
on them. Here's some examples:/usr/local/bin/bethini
#!/bin/bash
WINEPREFIX=$HOME/.steam/steam/steamapps/compatdata/489830/pfx wine $HOME/.steam/steam/steamapps/common/Skyrim\ Special\ Edition/Data/BethINI.exe
/usr/local/bin/bethkit
#!/bin/bash
WINEPREFIX=$HOME/.steam/steam/steamapps/compatdata/489830/pfx wine $HOME/.steam/steam/steamapps/common/Skyrim\ Special\ Edition/Data/bethkit.exe $@
/usr/local/bin/sseedit
#!/bin/bash
WINEPREFIX=$HOME/.steam/steam/steamapps/compatdata/489830/pfx wine $HOME/.steam/steam/steamapps/common/Skyrim\ Special\ Edition/SSEEdit.exe -I:$HOME/.steam/steam/steamapps/compatdata/489830/pfx/drive_c/users/steamuser/Documents/My\ Games/Skyrim\ Special\ Edition/Skyrim.ini
/usr/local/bin/sselodgen
#!/bin/bash
WINEPREFIX=$HOME/.steam/steam/steamapps/compatdata/489830/pfx wine $HOME/.steam/steam/steamapps/common/Skyrim\ Special\ Edition/SSELODGen.exe -sse -o"$HOME/Downloads/output" -I:$HOME/.steam/steam/steamapps/compatdata/489830/pfx/drive_c/users/steamuser/Documents/My\ Games/Skyrim\ Special\ Edition/Skyrim.ini
and so on and so forth. Note that these examples assume you've installed the associated tool through via ammo. You'd then run sselodgen
from terminal, or bethkit
, or whatever you named the script.
You won't really find a start to finish guide for this tool, considering the limited scope. But I will say that since I don't have an overwrite folder (like MO2), the closest equivalent ammo supports is basically this workflow:
commit
.deactivate mod all
then commit
. This will remove all mod files from your game dir but leave the files that were added by sselodgen intact.mkdir ~/.local/share/ammo/Skyrim\ Special\ Edition/sselodgen_output
mv ~/.local/share/Steam/steamapps/common/Skyrim\ Special\ Edition/Data/{Textures, Meshes} ~/.local/share/ammo/Skyrim\ Special\ Edition/mods/sselodgen_output
refresh
. You should now see the new mod 'sselodgen_output' in your mods list.activate mod all
activate plugin all
commit
As you can see, it's possible to use external tools, but there's no integration. Since every tool is different, you'll sort of have to understand how those tools work and how ammo works to figure out how to use them alongside each other. For tools that put files in your game folder, the above workflow should be pretty ubiquitous :)
It's a dependency to download it, but not to build it or install it. Every repository on github would be saying git is a dependency if download dependencies were included, but they don't, so I don't.
The UI will reflect the in-memory state of ammo. The indexes you can select for each category of component (mod, plugin, download) are listed on the left, names on the right. The index indicates your load order. Higher numbers win file conflicts. Obviously the load order of downloads don't matter, but using the index instead of the name for commands makes it so you don't have to type out long mod names every time you want to make a change. If there's a warning after executing a command (or attempting to execute a command and not being able to due to incorrect args for example), the warning will be displayed and you will have to hit your return key before the UI will accept input again. If you have an *>:
prompt, it means you have unsaved changes and you need to run commit
before you exit ammo or your changes won't be saved. It also means some commands can't be used since they require an absence of unsaved changes to execute. If you've downloaded mods or executed commands that you don't want to persist since the last time you ran commit, you can reload config from disk with refresh
. Note that commands that require an absence of pending changes will commit changes instantly. They do this to prevent the possibility of a user having broken symlinks if they exit ammo before running commit
, hence requiring an absence of changes.
SKSE doesn't have a plugin when it's enabled because there's no esp for skse. Mods with plugins will show plugins in ammo only when that mod is enabled.
Ammo uses $HOME/Downloads for your downloads folder, $HOME/.local/share/ammo/
Sounds like a bug. I haven't seen my DLC show up in quite some time (but it still loads) likely due to nothing creating a DLCList.txt in the same location Plugins.txt is stored. Are you experimenting with other mod organizers alongside this? If so, one of them may have created DLCList.txt which caused the plugins to appear in ammo. If you're not, that sounds like a bug and I'll look into it.
Anyway thanks for the feedback, I'll probably make a video tutorial or something, which would likely be the most concise way to teach people how to use it. Let me know if you have more questions :)
Thanks very much for the reply, that info on syntax and command rules in particular is very helpful.
[disk]/usr/local/bin
But nothing seems to be relevant, there are a few executables and no child folders. In [disk]/home/[my username]/.local/bin
there are again a few executables, but only one is related to AMMO, and it's this one
#!/usr/bin/python3
from ammo.game_controller import GameController
from ammo.ui import UI
controller = GameController() ui = UI(controller) ui.repl()
6. In response to 9., i did have Mod Organizer installed prior to trying out AMMO, but reinstalled the game on Steam to allow for a fresh slate (the method I found had done some edits to the game files IIRC) and haven't booted it up since. It does seem to be a bug, though i don't recall for sure which command i entered just prior to the DLC files showing up (might have been activate?). It does seem like a bug. Should there be any effect to leaving them active/inactive? Or will they show up in my game as usual if I just leave them inactive.
Thanks again for answering my questions.
Happy to help. I'm actually working on putting a wiki together today that will take you through everything that I know how to do step by step.
deactivate mod all
then commit
and you're done (don't forget to manually restore your SkyrimLauncher.exe.bak if you made one from the script extender install instructions).~/.local/share/ammo/Skyrim/mods/overwrite
so they don't pollute your actual game directory with non-symlink files. This will allow ammo to easily manage the output of tools.mv ~/.local/share/ammo/Skyrim/mods/old_mod_name ~/.local/share/ammo/Skyrim/mods/new_mod_name
and rebuilds the symlinks. As far as viewing more information, not yet. I was considering adding something like a conflicts
command that would show which mods have files that other mods also have. You can always hop into your ~/.local/share/ammo/Skyrim/mods
and create and destroy files there, just make sure you restart ammo and run commit
if you do that, otherwise you'll have broken symlinks.If you specifically mean "more data" as in "metadata from nexusmods", there's not and won't be. This goes back to the scope of ammo being a mod organizer and not something else (like a nexusmods client).
EDIT:
Forgot to address your point on the DLC. If you can see your DLC, you should be able to enable / disable / reorder the plugins like you would with any other plugin. Since they're not associated with a mod, there's nothing to delete for them (can only delete mods and downloads, not plugins).
Also I've been playing around with Skyrim LE and can confirm ammo was way broken with it. Please update ammo, it should be working now.
Also I've been playing around with Skyrim LE and can confirm ammo was way broken with it. Please update ammo, it should be working now.
will do
[Edit] This is probably a stupid question, but how do I update it?
You have to cd into the directory you cloned it from then run git pull
. That will download the update. Then run
pip3 install --force-reinstall . || pip3 install --break-system-packages --force-reinstall .
then fully exit ammo if it was running.
I'm closing this due to inactivity, if you have further questions or specific recommendations for wiki enhancements, feel free to open another issue. Thanks!
Hey, just noticed that the documentation is a little lacking, at least for me. Frankly, i'm not sure where to begin, but I'll list off some issues I've had over the past hour or so.
~/Downloads
folder cited in the help menu is the basic system's download folder, but nothing showed up in theIndex | Download
section aside from a preexisting SKSE install until after I raninstall all
, at which point SKSE seems to have been duplicated to the "mod name" section of the UI, and the other two mods appeared in the downloads sectionrename (mod|download) <index> <name>
. The(mod|download)
section confuses me. Does this mean the name of the mod in the download section? And the index # in the download section? Or does it mean that the mod could be in the mod or download section?so, here I'm trying to rename SKSE.
Skyrim >_: rename skse_1_07_03.7z 2 SKSE arg was unexpected type: 'SKSE_1_07_03.7Z' [Enter]