Hey guys, looking around everywhere on this but surprised not to find...
How do you make a clean 'pro-looking' installer for your MOD ?
I'm sure you're well aware but it's much nice to have a clean looking installer, importantly because I would like :
- The installer to detect exactly where the game is installed because name of the MOD has to be rigorous (because of specific theme files)
- The installer cannot be put in the "mydocs" folder (same reason)
- I would like the MOD to also find the game path for Steam users
- I would like to copy more files than "just" the files in /MOD. Like a dedicated exe.
This is the last piece for me to move my MOD to its new format : https://forums.civfanatics.com/threads/beyond-the-play-community-mod.648750/page-2
The goal is to have a niece installer like FFH's
Am Happy to write down tutorial when I know how to do it !
The goal ! :
--------------------------------------------------------------------------------------------
Answer --> Relatively quickly giving in first page here, Inno Setup did answer all our needs.
https://forums.civfanatics.com/threads/inno-install-script-tutorial.340885/
For future reference, here is what we use :
Normal Version
; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
#define MyAppName "Sid Meier's Civilization 4 - Beyond the Game"
#define MyAppVersion "2.20"
#define MyAppPublisher "Penny & Friends"
#define MyAppURL "https://forums.civfanatics.com/threads/beyond-the-play-community-mod.648750/"
[InstallDelete]
Type: filesandordirs; Name: {reg:HKLM\SOFTWARE\Firaxis Games\Sid Meier's Civilization 4 - Beyond the Sword,INSTALLDIR}\Mods\Beyond The Game
[Setup]
; NOTE: The value of AppId uniquely identifies this application. Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{948BDE4A-45DC-4E98-BEBD-E11998DFA94E}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
UninstallDisplayName={#MyAppName}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={reg:HKLM\SOFTWARE\Firaxis Games\Sid Meier's Civilization 4 - Beyond the Sword,INSTALLDIR}\
DefaultGroupName={#MyAppName}
DisableProgramGroupPage=yes
; Uncomment the following line to run in non administrative install mode (install for current user only.)
;PrivilegesRequired=lowest
OutputDir=D:\Bureau\Installer Mod
OutputBaseFilename=BeyondTheGame
SetupIconFile=D:\Bureau\Installer Mod\Fichier du jeu\BTG.ico
Compression=lzma
SolidCompression=yes
WizardStyle=modern
DirExistsWarning=no
UninstallDisplayIcon={app}\BTG.exe
[Types]
Name: "full"; Description: "Default installation"
//Type of installation... I don't mess with this.
[Languages]
Name: "english"; MessagesFile: "compilerefault.isl"
Name: "french"; MessagesFile: "compiler:Languages\French.isl"
Name: "german"; MessagesFile: "compiler:Languages\German.isl"
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags:
[Files]
Source: "D:\Bureau\Installer Mod\Fichier du jeu\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
[Icons]
Name: "{userdesktop}\Beyond The Game"; Filename: "{reg:HKLM\SOFTWARE\Firaxis Games\Sid Meier's Civilization 4 - Beyond the Sword,INSTALLDIR}\BTG.exe"; Parameters: "mod=\Beyond The Game"; Tasks: desktopicon; IconFilename: "{app}\BTG.ico"
[Run]
Filename: "{reg:HKLM\SOFTWARE\Firaxis Games\Sid Meier's Civilization 4 - Beyond the Sword,INSTALLDIR}\BTG.exe"; Parameters: "mod=\Beyond The Game"; Description: "{cm:LaunchProgram,Beyond The Game}"; Flags: nowait postinstall skipifsilent
Steam Version
; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
#define MyAppName "Sid Meier's Civilization IV Beyond the Game"
#define MyAppVersion "2.20"
#define MyAppPublisher "Penny & Friends"
#define MyAppURL "https://forums.civfanatics.com/threads/beyond-the-play-community-mod.648750/"
[InstallDelete]
Type: filesandordirs; Name: {reg:HKLM\SOFTWARE\WOW6432Node\Valve\Steam\,INSTALLPATH}\steamapps\common\Sid Meier's Civilization IV Beyond the Sword\Beyond the Sword\Mods\Beyond The Game
[Setup]
; NOTE: The value of AppId uniquely identifies this application. Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{7C83C135-5126-491A-9F35-031B5F62481D}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
UninstallDisplayName=Sid Meier's Civilization IV: Beyond the Game
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={reg:HKLM\SOFTWARE\WOW6432Node\Valve\Steam\,INSTALLPATH}\steamapps\common\Sid Meier's Civilization IV Beyond the Sword\Beyond the Sword\
DefaultGroupName={#MyAppName}
DisableProgramGroupPage=yes
; Uncomment the following line to run in non administrative install mode (install for current user only.)
;PrivilegesRequired=lowest
OutputDir=D:\Bureau\Installer Mod
OutputBaseFilename=BeyondTheGame - STEAM
SetupIconFile=D:\Bureau\Installer Mod\Fichier du jeu\BTG.ico
Compression=lzma
SolidCompression=yes
WizardStyle=modern
DirExistsWarning=no
UninstallDisplayIcon={app}\BTG.exe
[Types]
Name: "full"; Description: "Default installation"
//Type of installation... I don't mess with this.
[Languages]
Name: "english"; MessagesFile: "compilerefault.isl"
Name: "french"; MessagesFile: "compiler:Languages\French.isl"
Name: "german"; MessagesFile: "compiler:Languages\German.isl"
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags:
[Files]
Source: "D:\Bureau\Installer Mod\Fichier du jeu\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
[Icons]
Name: "{userdesktop}\BTG - STEAM"; Filename: "{reg:HKLM\SOFTWARE\WOW6432Node\Valve\Steam\,INSTALLPATH}\steamapps\common\Sid Meier's Civilization IV Beyond the Sword\Beyond the Sword\BTG.exe"; Parameters: "mod=\Beyond The Game"; Tasks: desktopicon; IconFilename: "{app}\BTG.ico"
Name: "{userdesktop}\BTG - STEAM LOBBY"; Filename: "{reg:HKLM\SOFTWARE\WOW6432Node\Valve\Steam\,INSTALLPATH}\steamapps\common\Sid Meier's Civilization IV Beyond the Sword\Beyond the Sword\Civ4BeyondSword.exe"; Parameters: "mod=\Beyond The Game"; Tasks: desktopicon; IconFilename: "{app}\BTG.ico"
How do you make a clean 'pro-looking' installer for your MOD ?
I'm sure you're well aware but it's much nice to have a clean looking installer, importantly because I would like :
- The installer to detect exactly where the game is installed because name of the MOD has to be rigorous (because of specific theme files)
- The installer cannot be put in the "mydocs" folder (same reason)
- I would like the MOD to also find the game path for Steam users
- I would like to copy more files than "just" the files in /MOD. Like a dedicated exe.
This is the last piece for me to move my MOD to its new format : https://forums.civfanatics.com/threads/beyond-the-play-community-mod.648750/page-2
The goal is to have a niece installer like FFH's
Am Happy to write down tutorial when I know how to do it !
The goal ! :
--------------------------------------------------------------------------------------------
Answer --> Relatively quickly giving in first page here, Inno Setup did answer all our needs.
https://forums.civfanatics.com/threads/inno-install-script-tutorial.340885/
For future reference, here is what we use :
Normal Version
Spoiler InnoSetup Code :
; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
#define MyAppName "Sid Meier's Civilization 4 - Beyond the Game"
#define MyAppVersion "2.20"
#define MyAppPublisher "Penny & Friends"
#define MyAppURL "https://forums.civfanatics.com/threads/beyond-the-play-community-mod.648750/"
[InstallDelete]
Type: filesandordirs; Name: {reg:HKLM\SOFTWARE\Firaxis Games\Sid Meier's Civilization 4 - Beyond the Sword,INSTALLDIR}\Mods\Beyond The Game
[Setup]
; NOTE: The value of AppId uniquely identifies this application. Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{948BDE4A-45DC-4E98-BEBD-E11998DFA94E}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
UninstallDisplayName={#MyAppName}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={reg:HKLM\SOFTWARE\Firaxis Games\Sid Meier's Civilization 4 - Beyond the Sword,INSTALLDIR}\
DefaultGroupName={#MyAppName}
DisableProgramGroupPage=yes
; Uncomment the following line to run in non administrative install mode (install for current user only.)
;PrivilegesRequired=lowest
OutputDir=D:\Bureau\Installer Mod
OutputBaseFilename=BeyondTheGame
SetupIconFile=D:\Bureau\Installer Mod\Fichier du jeu\BTG.ico
Compression=lzma
SolidCompression=yes
WizardStyle=modern
DirExistsWarning=no
UninstallDisplayIcon={app}\BTG.exe
[Types]
Name: "full"; Description: "Default installation"
//Type of installation... I don't mess with this.
[Languages]
Name: "english"; MessagesFile: "compilerefault.isl"
Name: "french"; MessagesFile: "compiler:Languages\French.isl"
Name: "german"; MessagesFile: "compiler:Languages\German.isl"
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags:
[Files]
Source: "D:\Bureau\Installer Mod\Fichier du jeu\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
[Icons]
Name: "{userdesktop}\Beyond The Game"; Filename: "{reg:HKLM\SOFTWARE\Firaxis Games\Sid Meier's Civilization 4 - Beyond the Sword,INSTALLDIR}\BTG.exe"; Parameters: "mod=\Beyond The Game"; Tasks: desktopicon; IconFilename: "{app}\BTG.ico"
[Run]
Filename: "{reg:HKLM\SOFTWARE\Firaxis Games\Sid Meier's Civilization 4 - Beyond the Sword,INSTALLDIR}\BTG.exe"; Parameters: "mod=\Beyond The Game"; Description: "{cm:LaunchProgram,Beyond The Game}"; Flags: nowait postinstall skipifsilent
Steam Version
Spoiler InnoSetup Code :
; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
#define MyAppName "Sid Meier's Civilization IV Beyond the Game"
#define MyAppVersion "2.20"
#define MyAppPublisher "Penny & Friends"
#define MyAppURL "https://forums.civfanatics.com/threads/beyond-the-play-community-mod.648750/"
[InstallDelete]
Type: filesandordirs; Name: {reg:HKLM\SOFTWARE\WOW6432Node\Valve\Steam\,INSTALLPATH}\steamapps\common\Sid Meier's Civilization IV Beyond the Sword\Beyond the Sword\Mods\Beyond The Game
[Setup]
; NOTE: The value of AppId uniquely identifies this application. Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{7C83C135-5126-491A-9F35-031B5F62481D}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
UninstallDisplayName=Sid Meier's Civilization IV: Beyond the Game
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={reg:HKLM\SOFTWARE\WOW6432Node\Valve\Steam\,INSTALLPATH}\steamapps\common\Sid Meier's Civilization IV Beyond the Sword\Beyond the Sword\
DefaultGroupName={#MyAppName}
DisableProgramGroupPage=yes
; Uncomment the following line to run in non administrative install mode (install for current user only.)
;PrivilegesRequired=lowest
OutputDir=D:\Bureau\Installer Mod
OutputBaseFilename=BeyondTheGame - STEAM
SetupIconFile=D:\Bureau\Installer Mod\Fichier du jeu\BTG.ico
Compression=lzma
SolidCompression=yes
WizardStyle=modern
DirExistsWarning=no
UninstallDisplayIcon={app}\BTG.exe
[Types]
Name: "full"; Description: "Default installation"
//Type of installation... I don't mess with this.
[Languages]
Name: "english"; MessagesFile: "compilerefault.isl"
Name: "french"; MessagesFile: "compiler:Languages\French.isl"
Name: "german"; MessagesFile: "compiler:Languages\German.isl"
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags:
[Files]
Source: "D:\Bureau\Installer Mod\Fichier du jeu\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
[Icons]
Name: "{userdesktop}\BTG - STEAM"; Filename: "{reg:HKLM\SOFTWARE\WOW6432Node\Valve\Steam\,INSTALLPATH}\steamapps\common\Sid Meier's Civilization IV Beyond the Sword\Beyond the Sword\BTG.exe"; Parameters: "mod=\Beyond The Game"; Tasks: desktopicon; IconFilename: "{app}\BTG.ico"
Name: "{userdesktop}\BTG - STEAM LOBBY"; Filename: "{reg:HKLM\SOFTWARE\WOW6432Node\Valve\Steam\,INSTALLPATH}\steamapps\common\Sid Meier's Civilization IV Beyond the Sword\Beyond the Sword\Civ4BeyondSword.exe"; Parameters: "mod=\Beyond The Game"; Tasks: desktopicon; IconFilename: "{app}\BTG.ico"
Last edited: