Jump to content

IEMod - standardized, universal and cross-platform Infinity Engine Mod Package


AL|EN

Infinity Engine Mod Package file extension  

10 members have voted

  1. 1. Which file extension for "Infinity Engine Mod Package" should be used?

    • .iemp
      2
    • .iemod
      6
    • .iex
      0
    • .iep
      0

This poll is closed to new votes

  • Please sign in or register to vote in this poll.
  • Poll closed on 01/05/2021 at 02:39 PM

Recommended Posts

1 hour ago, lynx said:

Jarno, it needs to be consistent in reference, not necessarily naming.

And the difference is ? Zilch, would be my guess.

As to get a Linux compatibility, you need to ToLower every-fucking-thing.

Link to comment
On 7/4/2019 at 6:00 AM, AL|EN said:

How about we leave mod files intact and let mod manager to preform 'ToLower()' ?

Sure. It's not particularly viable for the EEs, anyway.

 

On 7/4/2019 at 3:42 PM, kjeron said:

I don't have enough understanding of the issue regarding case-sensitivity, so apologies if these are not relevant:

Portrait files still require uppercase in the EE's to be detected and assigned properly.

You can break a mod if you change it's files to lowercase, and it uses weidu's SOURCE_RES/DEST_RES variables from it's own files assuming them to be in uppercase (the game requires uppercase resource strings in some fields).

OT, but I can't reproduce this. Lowercase portrait resrefs seem to work fine.

Link to comment
On 6/21/2019 at 9:45 AM, Wisp said:

6. Including copies of WeiDU in every mod was ridiculous in the 1990s, it remains ridiculous today and it would be pants-on-head silly if "mod managers" were  to get involved. The "mod manager" can simply include or download the appropriate version of WeiDU and essentially have it all handled behind the scene. Zeitgeist already does much of this.

The problem with this is: weidu is required in order to install the mod itself, unlike other games where you simply extract the mod files into some directory

A. Package the mod as .iemod + don't include weidu: you basically forces the players to use mod managers (unlike other games) and you need to include explanation, something like: 'if you don't want to use mod manager, simply rename it to zip and extract the content of this file to game dir, also download copy of the weidu, rename it to setup-mymod/.exe and run from game directory', no double-click feature for macOS right now (unless you manually associate file type)

B. Package the mod as .iemod + include weidu: you basically forces the players to use mod managers (unlike other games) and you need to include explanation, something like: 'if you don't want to use mod manager, simply rename it to zip and extract the content of this file to game dir', no double-click feature for macOS right now (unless you manually associate file type)

C. Package the mod as .zip and include weidu: no double-click feature for mod manager, double-click works for macOS and Windows

D. Two separate packages: first: .iemod without weidu, second .zip with weidu (it is the opposite of what we are trying to achieve)

How many modders would like to go for each variant? How about using D as temporary solution?

Edited by AL|EN
Link to comment

I'm okay if people prefer to continue distributing mods as they do now. Hopefully a unified distribution format and graphical front-end for installation has enough merit to stand on their own. But a mod mananger is a de facto requirement for Skyrim, for example, and it does not seem to be any source of unrest.

Link to comment
9 hours ago, Wisp said:

OT, but I can't reproduce this. Lowercase portrait resrefs seem to work fine.

This is what I still observe in latest patch:

The -M and -L versions won't both be assigned properly (record/sidebar) unless the "M" and "L" are both capitalized.

The portrait will show up twice (only one of which assigns properly) if only one of them is capitalized.

If neither is capitalized, both will be listed, and the chosen one will be used for both slots.

Link to comment
17 hours ago, kjeron said:

This is what I still observe in latest patch:

The -M and -L versions won't both be assigned properly (record/sidebar) unless the "M" and "L" are both capitalized.

The portrait will show up twice (only one of which assigns properly) if only one of them is capitalized.

If neither is capitalized, both will be listed, and the chosen one will be used for both slots.

Can you describe your testing method? When I assign lowercase portraits to Imoen, they show up properly in the dialogue window, sidebar and record screen (BGEE 2.5.17, picking her up after the cutscene with Gorion). They are also in lowercase in the GAM file. Worth noting is perhaps that NI will always show the resrefs in uppercase, even though they are not in uppercase on disk.

Link to comment

I'm referring to selecting portraits in-game, not manually assigning them through weidu.

New Game -> Gender -> Select (TESTL) -> Done

If TESTM exists, it will be assigned to the small portrait

If TESTm exists instead, it will still be assigned when selecting TESTL, but will also be listed in the selection menu, selecting it will assign TESTm to both slots.

New game -> Gender - Select (TESTl) -> Done

If TESTM exists, TESTl will be listed twice in the selection menu, selecting one will assign TESTl to large, TESTM to small.  Selecting the other will assign TESTl to both slots.

If TESTm exists instead, TESTl and TESTm will both be listed in the selection menu, selecting either will assign that portrait to both slots.

Edited by kjeron
Link to comment

I've playing around a bit, trying different approach and tools in order to achieve some goals like removal of the executable/keep "double-click on setup-mymod in order to install it", here my thoughts:

1. It looks like in order to have minor improvements, once again I need to challenge current 10-years of status quo, lucky, the concept of the 'universal mod package' is new so we should seek best possible solution

2. If the inclusion of the weidu executable is so hated, is there any interest for actually removing those and at the same time, keeping "double-click install" for players for current mods?

3. It's possible to remove weidu executable files from windows packages by replacing them with .bat files

4. Having 'setup-' prefixes breaks 'search by typing' explorer feature, I hate this since forever, any arguments against a solution which would eliminate the need of 'setup-' and still keep "double-click install" for players?

Edited by AL|EN
Link to comment

This is a followup to the post above, I will try to keep actual ideas/code as separate posts for Windows, macOS and Linux:

First piece of the package content: universal mymod.command file for macOS

- it doesn't need to be edited, only renamed to reflect 'mymod' basename
- work regardless of 'MyMod\mymod.tp2' or 'MyMod\setup-mymod.tp2'
- if so, the the package tools can be simplified because you no longer need to inject mod name into it before packaging

1. A variant which still requires macOS WeiDU, doesn't require 'setup-' and still keep "double-click install" for players

#!/bin/bash
cd "${0%/*}"
ScriptName="${0##*/}"
BaseName="${ScriptName%.*}"
ID="${BaseName/setup-/}"
# --no-exit-pause prevents 'double Enter' for macOS
if [ -f ~/weidu ] ; then
	~/weidu ${ID}/${ID}.tp2 --log "${ID}.debug"
else
	~/weidu ${ID}/setup-${ID}.tp2 --log "${ID}.debug"
fi

- it eliminates the need for WeiDU executable for every mod but initial download of macOS WeiDU executable is required 

2. https://www.gibberlings3.net/forums/topic/30364-cross-platform-infinity-engine-mod-package-brainstorming/?do=findComment&comment=271185

@subtledoctor @AstroBryGuy Any thoughts?

 

Edited by AL|EN
Link to comment

The second piece of the package content: the universal mymod.desktop file for Linux

The problem with Linux is that there is no easy way to "Double-Click features out of the box", the only solution which I found is to use so-called .desktop files:

- it doesn't need to be edited, only renamed to reflect 'mymod' basename
- it removes requirements to manually open shell
- it has the ability to self-elevate
- when you click "Mark Executable" it will no longer require elevation

1. A variant that still requires Linux WeiDU inside the package (filename must end with .lin), doesn't require 'setup-' and still keeps "double-click install" for players

#!/usr/bin/env xdg-open

[Desktop Entry]
Version=1.0
Type=Application
Terminal=true
Name=setup-longerroad
Exec=env fullpath=%k bash -c 'cd $(dirname "%k") ; export ScriptName=${fullpath##/*/} ; export BaseName=${ScriptName%%.*} ; export ID=${BaseName/setup-/} ; if [ -f "$ID/$ID.tp2" ] ; then chmod +x $BaseName.lin ; ./$BaseName.lin "$ID/$ID.tp2" --log "setup-$ID.debug" ; else chmod +x $BaseName.lin ; ./$BaseName.lin "$ID/setup-$ID.tp2" --log "setup-$ID.debug" ; fi;$SHELL'


2. A variant that doesn't require Linux WeiDU to be included inside the package, doesn't require 'setup-' and still keeps "double-click install" for players

[Desktop Entry]
Type=Application
Name=iemoda
Exec=bash -c "export fullpath=%k ; export ScriptName=${fullpath##/*/} ; export BaseName=${ScriptName%%.*} ; export ID=${BaseName/setup-/}; if ! [ -f weidu ] ; then wget 'https://onedrive.live.com/download?cid=E5A3B6F0BF342ED6&resid=E5A3B6F0BF342ED6%%21607964&authkey=%%21AASbkjCjybEpfJg' -O weidu -q ; chmod +x weidu ; fi ; if [ -f "$ID/$ID.tp2" ] ; then ./weidu "$ID/$ID.tp2" --log "$ID.debug" ; else ./weidu "$ID/setup-$ID.tp2" --log "$ID.debug" ; fi"
Terminal=true

- it eliminates the need for WeiDU executable for every mod and even for the initial installation of the first extracted mod
- it can be expanded in order to download the specified WeiDU version (but it might be a challenge)

@lynx @Angel As Linux users, do you have any comments?

Edited by AL|EN
Link to comment
1 minute ago, Wisp said:

@AL|ENThat's not what desktop entries are for. To associate a file type with a program, you edit one of the mimeapps.list files, or use the desktop file to announce which types the program supports. The desktop file is for the program, not the mod archive.

And I'm using it for program/application, it's weidu which I execute. The goal is to eliminate weidu executable from mod packages and still keeping 'Double-Click to install' feature. The .bat/.command/.desktop files would not be included inside .iemod archive at all. It's for .zip package version since modders still want them as of today.

Link to comment
1 hour ago, AL|EN said:

This is a followup to the post above, I will try to keep actual ideas/code as separate posts for Windows, macOS and Linux:

First piece of the package content: universal setup-mymod.command file for macOS

- it doesn't need to be edited, only renamed to reflect 'setup-mymod' basename
- if so, the the package tools can be simplified because you no longer need to inject mod name into it before packaging

@subtledoctor @AstroBryGuy Any thoughts?

As mentioned elsewhere, I dislike the idea of curated .command files for every mod.  It is archaic and silly.  You could probably write a .command script that does exactly what my Launcher does - poll for any .tp2 files present, and ask the user which one they want to install they run the command.  This could be done in Perl or Python or whatever scripting language you like - macOS allows them to hook into the filesystem and UI for simple interactions like that.  There's nothing magical or particularly great about my Weidu Launcher; it only uses AppleScript because AppleScript is the only scripting language I've ever worked with (apart from Weidu, I guess). 

Note, this does not just apply to macOS.  The same holds for Windows - do we really need to ship a separate Weidu executable with every mod? Using its filename to tell it what to execute??  It's a bit ridiculous.

At least in windows the launcher and the Weidu source are together in one package!  If we are to have a distinct .command file for every mod, I would prefer Weidu to ship with them, and combine the install script and the Weidu source in a single little .app package.  Then at least Windows and Mac users would be on the same footing...

And in an ideal world, both of those ideas would be combined.  Every mod could ship with a single item: the mod folder.  And Weidu executables on every platform would work with all mod folders.

tl;dr: I don't really care because whatever a hypothetical .command looks like, I've never actually used one before and I don't plan to start using them now.  There is a better way.

Link to comment

@subtledoctor

So you basically want to exclude all weidu/weidu launchers from mod packages, right? Well, you can do this right now:

Setp 1. Remove "Mac WeiDU Launcher.app" from you mods and also 'setup-modname.exe' 

Setp 2. Make announcment that you mods need "mod manager": in order to install mods, players have to:

Automatic way:
Windows: install via Project Infinity or "Zeigeist"
macOS: install via "Mac WeiDU Launcher.app" or "Zeigeist"
Linux: install via "Zeigeist"

Manual way:
- download weidu for you OS, extract it, rename to 'setup-modname' and launch

Step .3 Profit.

It's done, right? Or did I miss something?

EDIT: Regarding 'burden for players' - it's only one 'extra' thing to download (same as one extra mod), requirements to use mod managers are totally normal thing for 90% of games. No one will complain that he need to download and use mod manager if it is in fact the easiest way to install mods.

A modder or site hosing admin could literally change the destiny of ie mods in one day, for the better ofc.

Edited by AL|EN
Link to comment

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...