Fixing broken Hall of fame and removing surplus records

avpavlov

Chieftain
Joined
Jan 23, 2006
Messages
47
Hi folks.

If one day you have got broken Hall of fame (i.e. missed rows, "you are not finished any games" label over your results etc) then reasons are missed player's and player civilization's names and it is easy to fix :)

1) download SQLite shell for your OS from here http://www.sqlite.org/download.html
2) extract sqlite3.exe (from here and forward there will be Windows OS instructions) to your "Documents\My games\Sid Meier's Civilization 5\Replays\" folder
3) Go to "Documents\My games\Sid Meier's Civilization 5\Replays\" folder
4) Copy HallOfFameDatabase.db to save place (to allow to restore if something went wrong)
5) execute sqlite3.exe HallOfFameDatabase.db
6) execute update Victories set PlayerLeaderName='YOUR_NAME_HERE';
7) execute (copy/paste/execute all text in bold below as single query)
update Victories
set PlayerCivilizationName = substr(replace(PlayerCivilizationType, 'CIVILIZATION_',''),1,1)
|| lower(substr(replace(PlayerCivilizationType, 'CIVILIZATION_',''),2))
where PlayerCivilizationName='' or PlayerCivilizationName is null;

8) execute .exit
9) it's all. Run CIV5 and verify hall of fame is ok. If not then restore it from saved copy and ask question of forum ;)

Also, if you have surplus entries in Hall of fame which you want to delete (e.g. you tried last turns multiple times and game remembered all attempts or you just want to remove some shameful records ;) ) then do following

1) 1-5 steps from instruction above
2) execute .schema
3) you will see list of columns in table Victories. Now you should decide which ones allow to identify surplus rows, for example VictoryType, Score, PlayerTeamWon
4) execute select VictoryType, Score, PlayerTeamWon, rowid from Victories;
5) Notice rowid - it is hidden unique ID column. Find rows you want delete and remember its IDs (last number in row)
6) Execute delete from Victories where rowid in (List_of_IDs_to_remove);
for example delete from Victories where rowid in (1,2,3)
7) execute .exit
8) it's all. Run CIV5 and verify hall of fame is ok. If not then restore it from saved copy and ask question of forum ;)

PS

There is my post about merging vanilla and G&L Hall of Fames http://forums.civfanatics.com/showthread.php?p=12014390
 
Hi folks.

If one day you have got broken Hall of fame (i.e. missed rows, "you are not finished any games" label over your results etc) then reasons are inconsistent player's and player civilization's names and it is easy to fix :)

1) download SQLite shell for your OS from here http://www.sqlite.org/download.html
2) extract sqlite3.exe (from here and forward there will be Windows OS instructions) to your "Documents\My games\Sid Meier's Civilization 5\Replays\" folder
3) Go to "Documents\My games\Sid Meier's Civilization 5\Replays\" folder
4) Copy HallOfFameDatabase.db to save place (to allow to restore if something went wrong)
5) execute sqlite3.exe HallOfFameDatabase.db
6) execute update Victories set PlayerLeaderName='YOUR_NAME_HERE';
7) (optional) sqlite> update Victories set PlayerCivilizationName='';
8) execute .exit
9) it's all. Run CIV5 and verify hall of fame is ok. If not then restore it from saved copy and ask question of forum ;)

Also, if you have surplus entries in Hall of fame which you want to delete (e.g. you tried last turns multiple times and game remembered all attempts or you just want to remove some shameful records ;) then do following

1) 1-5 steps from instruction above
2) execute ".schema"
3) you will see list of columns in table Victories. Now you should decide which ones allow to identify surplus rows, for example VictoryType, Score, PlayerTeamWon
4) execute select VictoryType, Score, PlayerTeamWon, rowid from Victories;
5) Notice rowid - it is unique ID column. Find rows you want delete and last number will be this ID
6) Execute delete from Victories where rowid in (List_of_IDs_to_remove);
for example delete from Victories where rowid in (1,2,3)
7) execute .exit
8) it's all.

Thanks for the information ! I got recently the problem of broken Hall of Fame and I intend to try to fix that according to these instructions. However I would like to get clarification about two things:

1. What the "inconsistent player's and player's civilization's names" actually means ? Does it mean that the player is forced to use the default name for the civilization leader ? Is it not possible to give custom name for leader anymore ?

2. What exactly should be used as "YOUR_NAME_HERE" in the step 6 of the Hall of Fame fixing procedure ? First I thought that it would be the name of the Civilization leader in the broken line of the Hall of Fame, but could it be that, if only default leader names are allowed (and custom name was used) ?
 
So that's what happened to my Hall of Fame - I had the audacity to rename Washington Kennedy. Has this been a problem from the get go or is it a recent patch error? Oddly enough, I had not completed a game where I had renamed my leader until last week. That's what I get for reading a Kennedy biography.

Since all of my Hall of Fame scores are generally terrible (best score was from the first game I played back when the game was first released), I probably won't take the time to go through the process of fixing it myself. Hopefully, Firaxis can make the change next patch. Doesn't look complicated.

HB
 
1. What the "inconsistent player's and player's civilization's names" actually means ? Does it mean that the player is forced to use the default name for the civilization leader ? Is it not possible to give custom name for leader anymore ?

2. What exactly should be used as "YOUR_NAME_HERE" in the step 6 of the Hall of Fame fixing procedure ? First I thought that it would be the name of the Civilization leader in the broken line of the Hall of Fame, but could it be that, if only default leader names are allowed (and custom name was used) ?

I will answer in reverse order :)

2. Put here name which you want to see in hall of fame :) When I'm starting new game I usually change default leader's name to my own. I used to do it since Civ4 because it wrote leader's name in score list while Civ 5 writes "You" which is easier to find in list.

1. I do not know how but some history records did not have player's name filled - looks like Civ5 bug. Alsp, I found then civlization's name is not filled in some records (I never changed it when starting game). I fixed both fields without investigation which one breaks hall of fame (however, I'm 99% sure it is player's name). If you wish you can try fix player's name first, check hall of fame and if it is still broken then fix second field.
 
the thing is i don't even get victory screens in my game

To be honest. I'm really missing Civ 4 (and earlier) feature "retire". When at some point I do not want to continue playing I still want to register this result as defeat. In past Civ's versions it was very interesting to see all past attempts to won, let say, England on Tiny islands as King.

In Civ5 you can register victories only or defeats if other civilization won the game. It is drawback in comparison with Civ3&4
 
I will answer in reverse order :)

2. Put here name which you want to see in hall of fame :) When I'm starting new game I usually change default leader's name to my own. I used to do it since Civ4 because it wrote leader's name in score list while Civ 5 writes "You" which is easier to find in list.

1. I do not know how but some history records did not have player's name filled - looks like Civ5 bug. Alsp, I found then civlization's name is not filled in some records (I never changed it when starting game). I fixed both fields without investigation which one breaks hall of fame (however, I'm 99% sure it is player's name). If you wish you can try fix player's name first, check hall of fame and if it is still broken then fix second field.

Thanks for the answers ! I am though now little puzzled about how it is indicated which line of the Hall of Fame should be updated ? How the affected record is selected, when I would like to only fix the corrupted record and not modify all records ?
 
Thanks for the answers ! I am though now little puzzled about how it is indicated which line of the Hall of Fame should be updated ? How the affected record is selected, when I would like to only fix the corrupted record and not modify all records ?

Execute at 6th step

update Victories set PlayerLeaderName='YOUR_NAME_HERE' where PlayerLeaderName='' or PlayerLeaderName is null;
 
7) (optional) update Victories set PlayerCivilizationName='';
I doubt this is correct. I left this column epmty and it wasnt OK. I think that there must be something in each cell.
I put there my Civ name, like France, Germany, Persia etc and it's OK now!! :)

Thanks for your post :)
 
I doubt this is correct. I left this column epmty and it wasnt OK. I think that there must be something in each cell.

Seems you are right. I thought it is not displayed in Hall of fame so did not pay enough attention.

Correct script should be (will update original post shortly)

update Victories
set PlayerCivilizationName = substr(replace(PlayerCivilizationType, 'CIVILIZATION_',''),1,1)
|| lower(substr(replace(PlayerCivilizationType, 'CIVILIZATION_',''),2))
where PlayerCivilizationName='' or PlayerCivilizationName is null;
 
Seems you are right. I thought it is not displayed in Hall of fame so did not pay enough attention.

Correct script should be (will update original post shortly)

update Victories
set PlayerCivilizationName = substr(replace(PlayerCivilizationType, 'CIVILIZATION_',''),1,1)
|| lower(substr(replace(PlayerCivilizationType, 'CIVILIZATION_',''),2))
where PlayerCivilizationName='' or PlayerCivilizationName is null;


Thanks for these advices ! I managed to fix my Hall of Fame, and it was the above mentioned command that made the trick. When I first tried to fix the player name field, also the lines that were previously ok, were broken. After I restored the orginal file, I noticed then that the civilization name field was broken instead of player name. However it was strange that attempt to update null player name fields corrupted the previously valid records or at least the first one (perhaps I made some mistake with that command although I mostly copy pasted it).
 
I found an easier way.
Download the program SQLite Expert Personal.
Load the database in it.
Then fill in all the <null> in.
And it is fixed.
You have to do this everytime you finish a game though.
 
very helpful thread, thank you!
 
I had the same problem on a Mac, worked perfectly. Thank you. This had been broken for a long time.
 
To be honest. I'm really missing Civ 4 (and earlier) feature "retire". When at some point I do not want to continue playing I still want to register this result as defeat. In past Civ's versions it was very interesting to see all past attempts to won, let say, England on Tiny islands as King.

In Civ5 you can register victories only or defeats if other civilization won the game. It is drawback in comparison with Civ3&4

I agree with this 100%. When I go to quit, it'd be nice to have an option that counts the game as a defeat. Because of this being absent, I have over 150+ games that have been abandoned without ever actually registering as a loss.
 
I agree with this 100%. When I go to quit, it'd be nice to have an option that counts the game as a defeat. Because of this being absent, I have over 150+ games that have been abandoned without ever actually registering as a loss.

They removed Retire option from the menu but shortcut stills available. Use Alt+R :)
 
I found an easier way.
Download the program SQLite Expert Personal.
Load the database in it.
Then fill in all the <null> in.
And it is fixed.
You have to do this everytime you finish a game though.

Didn't help me. How do you fill them? I mean the exact manner? Should it be for example LEADER_WILLIAM CIVILIZATION_NETHERLANDS??? Are there other procedures I'm missing?
 
Top Bottom