Installing Mods on Civ5 for Mac

Hi, welcome. :wavey:

You drop downloaded mod files onto the Keka app. If you've changed the Keka preferences file, it should recognise a .civ5mod file and extract the mod folder from it.

You don't need to do any of this if you use the Applescript that is my top recommendation. You just subscribe to a mod in the Steam Workshop, run the Applescript, and it does all the hard work to extract it and install it for you.
 
I think we obsoleted much of this thread yesterday. The updated Steam version of Civ V has the mod button enabled by default, and full Steam Workshop functionality.
 
Well done, Ryan, not before time :)

Presumably the Campaign Edition continues to be hard to mod?

[UPDATE] And the bad news is that I can't run it on my MacPro, which is stuck on OS X Lion, and is not capable of running newer versions of OS X because it has a 16 bit boot rom. So my Civ5 days are over on this Mac. :(
 
Alan u da real bae!! but i am stuck at a part 3, there is no such words written on my MAC as u have shown a picture of.


-------------------------------------------------
-- Mods button handler
-------------------------------------------------
function ModsButtonClick()
UIManager:QueuePopup( Controls.ModsEULAScreen, PopupPriority.ModsEULAScreen );
end
Controls.ModsButton:RegisterCallback( Mouse.eLClick, ModsButtonClick );

THIS IS EXACTLY WHAT I HAVE.
HOW DO I GO FROM HERE. PLEASE HELP ME BAE <3
 
Hi, welcome :wavey:

That's because Aspyr have changed the file in the latest version, and you no longer need to do any of this to get mods to work. See AspyrRyan's message above. You should now bee able to download mods from the Steam Workshop and it should all just work.
 
Hi, welcome :wavey:

Do other mods show up?
Which mod doesn't appear?
How did you download and install this one?
Is it compatible with the version of the game that you are running?
 
Evening. New member here. SprSynJn is the name, and I have been playing Civ 5 for a while on my iMac.

Recently I noticed that Aspyr has now allowed mod use with the Mac version of the game. I was able to get my mods running, but I am unable to load a saved game using those mods. The game will crash every time I attempt to do so. How would I go about fixing this? Any help would be appreciated.

Thank you.
 
Hi, welcome.

Which mods are you using? Are you loading the mods first, and then loading the game?
 
I am using a few mods, the imperial Japanese for one. I don't recall the others. How do I load the mods first?
 
I have figured out what you meant. I have the mods loaded from the time I originally made the game. However, even going through the Mods selection, making sure only the needed mods are checked, and continuing to load the game through that panel, the game still freezes every time. I am at a loss here and cannot play until I figure out what is wrong. I haven't been able to find anything on it after a search. Perhaps it is just my machine...
 
Are you certain that all the mods you are trying to run simultaneously are comatible with each other?

If you attach a save file to a post here, I may be able to test whether it will run for me. That would tell us whether it's your system/software or something wrong with the save itself. I would need to know which mods it requires so that I can install the same ones, but I can probably figure that out myself.
 
Thank you for attempting to assist me AlanH.

Here is the save file you requested. I am not sure if it is correct, so please excuse me if I made a mistake. The two mods I have activated are The Goths (BNW or GK) and The Empire of Japan (Meiji). I was able to start a game with two more activated as well, but not used. I am surprised if they were to be incompatible at this point.

Anymore help you could provide would be very appreciated. Thank you again.
 

Attachments

  • Meiji_0055 BC-1800.Civ5Save
    1.1 MB · Views: 115
OK. I had to buy and install the Scrambled Map DLC in order to load your save. Then it crashed when loading. It looks as if there's a problem when Civ5 tries to run an Lua script. Probably one installed by one of the mods.

I'll have a look at the save itself. I have some tools that I use to extract information from saves for the GOTM competitions, and that might show up some problem with the file. There shouldn't be any issues with the file format, but it's worth a try.
 
I have now run your file through my save file reader. It seems to have a valid format. I note that it uses a Huge map, with 128 x 80 tiles. Do you know that this map size works OK normally? Maybe it pushes the memory limits for the Mac version when it comes along with the extra load of the mods?
 
Thank you for your help sir. I don't understand why it would allow me to start the game, but wouldn't load it later. I have played this game with the biggest map size before, so again I'm not sure why it has become a problem now. Any recommendations? Disabling the mods is the only thing that I can think of.
 
I'm only speculating that it might be a memory issue - clutching at straws, really. I may be wrong,

If it is the case, then memory requirements grow considerably as the game progresses, Civs grow, unit counts increase and all the game data gets much bigger.

I've no idea whether removing mods would help. Did you save the game earlier and reload it successfully?
 
The save file I am trying to load is only my second time playing that game. Meaning it is the only save I have tried to load after originally starting the game. I think it best for me to just drop the mods and start a new game. This has become too cumbersome and, to be quite honest, is the reason I don't game on my computer very often. Too many items jiving with each other to have a hassle free gaming experience.

AlanH, for someone who does not work for the company who made this game, you sure go out of your way to help. I apologize for making you purchase software to assist me. You have my sincerest gratitude.
 
I`ve done all steps, but MODS button does not work, line 37 is different from instructions, here follow the edited file (I've edited line 71 instead with the two --:

-------------------------------------------------
-- Main Menu
-------------------------------------------------
include( "MPGameDefaults" );

-------------------------------------------------
-- Script Body
-------------------------------------------------
local bHideUITest = true;
local bHideGridExamples = true;
local bHideLoadGame = true;
local bHidePreGame = true;
local fTime = 0;
-- MAC_PORT local i1, i2 = string.find( UI.GetVersionInfo(), " " );
-- MAC_PORT versionNumber = string.sub(UI.GetVersionInfo(), 1, i2-1);
versionNumber = UI.GetVersionInfo(); -- MAC_PORT
Controls.VersionNumber:SetText(versionNumber);


function ShowHideHandler( bIsHide, bIsInit )
if( not bIsHide ) then
Controls.Civ5Logo:SetTexture( "CivilzationV_Logo.dds" );

-- This is a catch all to ensure that mods are not activated at this point in the UI.
-- Also, since certain maps and settings will only be available in either the modding or multiplayer
-- screen, we want to ensure that "safe" settings are loaded that can be used for either SP, MP or Mods.
-- Activating the DLC (there doesn't have to be any) will make sure no mods are active and all the user's
-- purchased content is available
if (not ContextPtr:IsHotLoad()) then
UIManager:SetUICursor( 1 );
Modding.ActivateDLC();
PreGame.LoadPreGameSettings();
UIManager:SetUICursor( 0 );

-- Send out an event to continue on, as the ActivateDLC may have swapped out the UI
Events.SystemUpdateUI( SystemUpdateUIType.RestoreUI, "MainMenu" );
end
else
Controls.Civ5Logo:UnloadTexture();
end
end
ContextPtr:SetShowHideHandler( ShowHideHandler );

-------------------------------------------------
-- Event Handler: ConnectedToNetworkHost
-------------------------------------------------

-------------------------------------------------
-- StartGame Button Handler
-------------------------------------------------
function SinglePlayerClick()
UIManager:QueuePopup( Controls.SinglePlayerScreen, PopupPriority.SinglePlayerScreen );
end
Controls.SinglePlayerButton:RegisterCallback( Mouse.eLClick, SinglePlayerClick );

-------------------------------------------------
-- Multiplayer Button Handler
-------------------------------------------------
function MultiplayerClick()
UIManager:QueuePopup( Controls.MultiplayerSelectScreen, PopupPriority.MultiplayerSelectScreen );
end
Controls.MultiplayerButton:RegisterCallback( Mouse.eLClick, MultiplayerClick );


-------------------------------------------------
-- Mods button handler
-------------------------------------------------
function ModsButtonClick()
UIManager:QueuePopup( Controls.ModsEULAScreen, PopupPriority.ModsEULAScreen );
end
-- Controls.ModsButton:RegisterCallback( Mouse.eLClick, ModsButtonClick );


-------------------------------------------------
-- UITest Button Handler
-------------------------------------------------
--[[
function UITestRClick()
bHideUITest = not bHideUITest;
Controls.UITestScreen:SetHide( bHideUITest );
end
Controls.OptionsButton:RegisterCallback( Mouse.eRClick, UITestRClick );
--]]


-------------------------------------------------
-- Options Button Handler
-------------------------------------------------
function OptionsClick()
UIManager:QueuePopup( Controls.OptionsMenu_FrontEnd, PopupPriority.OptionsMenu );
end
Controls.OptionsButton:RegisterCallback( Mouse.eLClick, OptionsClick );


-------------------------------------------------
-- Hall Of Fame Button Handler
-------------------------------------------------
function OtherClick()
UIManager:QueuePopup( Controls.Other, PopupPriority.OtherMenu );
end
Controls.OtherButton:RegisterCallback( Mouse.eLClick, OtherClick );


-------------------------------------------------
-- Exit Button Handler
-------------------------------------------------
function OnExitGame()
Events.UserRequestClose();
end
Controls.ExitButton:RegisterCallback( Mouse.eLClick, OnExitGame );


----------------------------------------------------------------
----------------------------------------------------------------
Steam.SetOverlayNotificationPosition( "bottom_left" );

-------------------------------------------------
-- Event Handler: MultiplayerGameLaunched
-------------------------------------------------
function OnGameLaunched()

UIManager:DequeuePopup( ContextPtr );

end
Events.MultiplayerGameLaunched.Add( OnGameLaunched );


-- Returns -1 if time1 < time2, 0 if equal, 1 if time1 > time 2
function CompareTime(time1, time2)

--First, convert the table into a single numerical value
-- YYYYMMDDHH
function convert(t)
local r = 0;
if(t.year ~= nil) then
r = r + t.year * 1000000
end

if(t.month ~= nil) then
r = r + t.month * 10000
end

if(t.day ~= nil) then
r = r + t.day * 100
end

if(t.hour ~= nil) then
r = r + t.hour;
end

return r;
end

local ct1 = convert(time1);
local ct2 = convert(time2);

if(ct1 < ct2) then
return -1;
elseif(ct1 > ct2) then
return 1;
else
return 0;
end
end

function DisplayDLCButtons()
local ButtonsDisplayUntil = {};

if (Controls.MapPack2PromoButton ~= nil) then
ButtonsDisplayUntil[Controls.MapPack2PromoButton] = {
start = {
month = 10,
day = 2,
year = 2013,
hour = 12,
},

stop = {
year = 2013,
month = 11,
day = 4,
hour = 12,
},

customurl = "http://store.steampowered.com/app/235584/",
}
end

if (Controls.MapPack3PromoButton ~= nil) then
ButtonsDisplayUntil[Controls.MapPack3PromoButton] = {
start = {
month = 11,
day = 12,
year = 2013,
hour = 17,
},

stop = {
year = 2013,
month = 11,
day = 25,
hour = 12,
},

customurl = "http://store.steampowered.com/app/235585/",
}
end

if (Controls.AcePatrolPromoButton ~= nil) then
ButtonsDisplayUntil[Controls.AcePatrolPromoButton] = {
start = {
month = 11,
day = 5,
year = 2013,
hour = 12,
},

stop = {
year = 2013,
month = 11,
day = 11,
hour = 12,
},

customurl = "http://store.steampowered.com/app/244090/",
}
end

local currentDate = os.date("!*t");

for k,v in pairs(ButtonsDisplayUntil) do
local bShow = false;

if(CompareTime(currentDate, v.start) >= 0 and CompareTime(v.stop, currentDate) >= 0) then
bShow = true;
end


k:SetHide(not bShow);

k:RegisterCallback(Mouse.eLClick, function()
if(v.customurl == nil) then
Steam.ActivateGameOverlayToStore();
else
Steam.ActivateGameOverlayToWebPage(v.customurl);
end
end);
end
end

DisplayDLCButtons();

----------------------------------------------------------------
function OnExpansionRulesSwitch()
UIManager:QueuePopup( Controls.PremiumContentScreen, PopupPriority.OtherMenu );
end
Controls.ExpansionRulesSwitch:RegisterCallback(Mouse.eLClick, OnExpansionRulesSwitch);

-------------------------------------------------------------------------------
function OnSystemUpdateUI( type, tag )
if( type == SystemUpdateUIType.RestoreUI) then
if (tag == "MainMenu") then
-- Look for any cached invite
UI:CheckForCommandLineInvitation();

if (Network.IsDedicatedServer()) then
ResetMultiplayerOptions();
UIManager:QueuePopup( ContextPtr:LookUpControl( "DedicatedServerScreen" ), PopupPriority.LobbyScreen );
end
elseif (tag == "StagingRoom") then
if (UIManager:GetVisibleNamedContext("StagingRoom") == nil) then
UIManager:QueuePopup( Controls.StagingRoomScreen, PopupPriority.StagingScreen );
end
elseif (tag == "ScenariosMenuReset") then
local pScenarioScreen = ContextPtr:LookUpControl( "SinglePlayerScreen/ScenariosScreen" );
if (pScenarioScreen ~= nil) then
if (pScenarioScreen:IsHidden()) then
UIManager:QueuePopup( pScenarioScreen, PopupPriority.GameSetupScreen );
end
end
elseif (tag == "ModsBrowserReset") then
local pModsMenu = ContextPtr:LookUpControl("ModsEULAScreen/ModsBrowser" );
if(pModsMenu ~= nil) then
if(pModsMenu:IsHidden()) then
UIManager:QueuePopup(pModsMenu, PopupPriority.ModsBrowserScreen);
end
end
elseif (tag == "ModsMenu" ) then
local pModsMenu = ContextPtr:LookUpControl("ModsEULAScreen/ModsBrowser/ModsMenu" );
if(pModsMenu ~= nil) then
if(pModsMenu:IsHidden()) then
UIManager:QueuePopup(pModsMenu, PopupPriority.ModsMenuScreen);
end
end
end
end
end

Events.SystemUpdateUI.Add( OnSystemUpdateUI );

-------------------------------------------------------------------------------
if(UI.IsTouchScreenEnabled()) then
function OnTouchHelpButton()
Controls.TouchControlsMenu:SetHide( false );
end
Controls.TouchHelpButton:RegisterCallback( Mouse.eLClick, OnTouchHelpButton );
Controls.TouchHelpButton:SetHide(false);
OnTouchHelpButton();
else
Controls.TouchHelpButton:SetHide(true);

end
 
forget folks, I've just removed the two -- from line 71 restoring original file and it worked! Thanks
 
Top Bottom