Crazy Spatz's Alpha Centauri Mod

Actually, most of the crashes started around the same time I got the new Denmark DLC, could that be conflicting with your mod?

It's possible. I have not and most likely will never buy Civ5 DLCs, at least the custom civ types. If they wanted to sell a Colonization/SMAC-type expansion as a DLC instead of a full-blown game, I'd buy that. Or if they wanted to do their own official update of Fall From Heaven or something like that.

As far as I know, the only conflicts the new DLCs could cause would be:
> In ActionIcons.lua, you have to merge my changes with the DLC changes by hand. But I did that after the last patch, so the only way this'd cause a problem would be if you were using obsolete versions of the game.
> Any of the usual XML bits where one of their text key tags is the same as one of mine or something. This wouldn't cause a crash, though, and it'd be pretty obvious.
> If the DLC/patch adds a new building or unit that has the same name as one of mine. I highly doubt that happened, but you never know, they DID add the Aqueduct in the March patch...
> If the DLC modifies one of the existing UI files, one that I'd already modified myself. Without having the DLC I can't really answer this one, but you can; go into the DLC directory, and see if it contains a copy of TopPanel.lua, TechButtonInclude.lua, NotificationPanel.lua, SocialPolicyPopup.lua, AssignStartingPlots.lua, et cetera. If it does, then there's going to be a real problem getting these to be compatible.

Now, even without those, it still COULD be related to the DLC... if the Denmark civ's special abilities involve certain Lua events. After all, it looks like any call to SerialEventImprovementCreated can cause a crash, so if one of the unique abilities of that civ or its units involves triggering a Lua event that is known to be unstable, then it makes sense that the crash rate would go up.

Unfortunately, I haven't quite set up the game yet since I installed my new OS, or I could try testing some of these things for myself. While I have access to the files, I can't actually run the game. It won't take too long to fix, but I've been REALLY busy with work this week, so it'll have to wait until the weekend for me to get any real testing done.
 
OK, so my first venture onto Emporer settings were Pangea/Industrial/ Tiny/ LOw sea level. I spawned next to the French, and was trounced soundly: Foreign Leigions are very overpowering on an Industrial start!

Second game I spawned between Songhai and Egypt. From previous experience I knew Songhai would attack very early in the game, and I wasn't disappointed. Fortunately I had a river running diagonally between our civs, so I used this as a defensive stalwart to bludgeon the Songhai forces into submission, and they soon sued for peace.
Later in the game I nuked the Egyptians to instigate war: my nuclear bomber was shot down ( :goodjob: ) but my nuclear missile got thru to destroy their nuclear arsenal. The Egyptians had a huge numerical superiority to me in units (like a 3 to 2 advantage at least), but because I played defense they bled themselves dry on the ramparts of my point city, and never once even managed to attack my point city.

Regardless, I ended up losing to the Songhai in this game because the nuked the piss out of me while I was still recovering from the Egyptian situation. My own fault here as I should have bee-lined for the SDI, as Songhai attacked me with three nuclear bombers.

Other things I noticed this evening:

1) I had a Great General sitting in my capitol city this evening, and I couldn't move a spaceship part into the city because the GG was there. I moved the GG out of the city, and I could then move the spaceship part in and mate it to the rest of the spaceship. I don't think the two should have interfered with each other.

2. Concerning C-S puppeting conquered cities: not really your problem (i.e. this is an algorhythm outside your mod), but I think it would benefit C-S if they didn't puppet conquered cities. It probably takes them (relatively speaking) a large amount of resources to conquer a city, and since they aren't likely to conquer many more cities in a game (I don't think I've ever seen a single C-S with three cities), then the Happiness hit shouldn't be a problem.

3. Nukes are still getting thru in AI - vs - AI situations.

D
 

Attachments

  • AIs still nuking each other.jpg
    AIs still nuking each other.jpg
    146.6 KB · Views: 121
  • C-S Puppet.jpg
    C-S Puppet.jpg
    89.5 KB · Views: 125
I don't think the two should have interfered with each other.

This is how it's always worked. Everything is either a "combat unit" or "non-combat unit" based purely on whether it has a nonzero Combat rating. Every hex can have one combat unit and one non-combat, with the exception of cities, which can have three units (noncombat, land, sea) plus unlimited air units.

So yes, Great Generals (or any other kind of Great Person) will prevent a spaceship part from entering a city.

2. Concerning C-S puppeting conquered cities: not really your problem (i.e. this is an algorhythm outside your mod), but I think it would benefit C-S if they didn't puppet conquered cities.

The funny thing is, because city-states get a massive production, research, and gold boost (to make up for their lack of trade routes, railroads, etc.), puppeting a city can create an empire that's far more powerful than the normal "major" civs can ever reach.

3. Nukes are still getting thru in AI - vs - AI situations.

They should get through at the same rate they do for players. Although if Quick Combat disables these by preventing RunCombatSim, then there might be a similar setting to speed through AI-on-AI fights.

It should be easy enough to check; we've talked about the debug print statement I put in to register nuke fights, and those print statements should be appearing whenever any nuke gets used. So if you're seeing nukes go off without those messages popping up, then there's a problem.
 
This is how it's always worked. Everything is either a "combat unit" or "non-combat unit" based purely on whether it has a nonzero Combat rating. Every hex can have one combat unit and one non-combat, with the exception of cities, which can have three units (noncombat, land, sea) plus unlimited air units.

Understood. This is just my thought that for the sake of streamlining the game (i.e. less clicks) that it would be nice to have several different classes of non-combat units, so that this sort of situation wouldn't occur. Obviously a very small item, considering its the first time I've encountered it, but I thought I'd mention it anyways.

The funny thing is, because city-states get a massive production, research, and gold boost (to make up for their lack of trade routes, railroads, etc.), puppeting a city can create an empire that's far more powerful than the normal "major" civs can ever reach.

Really!?! Its extremely rare that I see a C-S conquer another city. Maybe because I start my games at Industrial, and it skews the game balance in regards to the combat mechanics involving C-S?


They should get through at the same rate they do for players. Although if Quick Combat disables these by preventing RunCombatSim, then there might be a similar setting to speed through AI-on-AI fights.

It should be easy enough to check; we've talked about the debug print statement I put in to register nuke fights, and those print statements should be appearing whenever any nuke gets used. So if you're seeing nukes go off without those messages popping up, then there's a problem.

Yup - I pretty much run Firetuner all the time now and so can see whats going on. The AIs are still slinging nukes around - just not as many getting thru. :goodjob:

In my current game I got atom bombed several times before I could reach Doc: Flex and build the SDI (I bee-lined there right after getting the ability to build nukes). I tried to retaliate, but my atomic bomb and two missiles were intercepted: lesson learned that before you nuke, to sue for peace with other civs your at war with, so that their SDI aren't shooting your nukes down as well! :rolleyes:

On to other observations:

1. Concerning the "Great Engineers journey" pic: the nearby C-S had gifted the Great Engineer to Greece. I think that was early Digital era, so the Greeks really had to of been concentrating on the C-S bracket of the Social Engineering tree to be getting those benefits at that point in the game! And of course it was all for naught, as I killed the unit next turn.

2. Concerning the Aztec "Naval assault": you can see in the mini-map in the lower right hand corner just how far that assault force travelled to attack - that's good that the AI was able to coordinate this (and in fact they had conquered the C-S Seoul previously using the same amphibious method, but didn't have the reserves to stand up to my sustained assault).

3. Concerning "Why vote": six votes total, seven needed to win. It would be nice for the sake of streamlining if Firaxis would just put some code in to issue a statement saying a vote would've been held at that point, except there weren't enough delegates remaining (i.e. why continually waste the clicks every X number of turns on something thats completely useless?). Again probably relatively minor item (I think its happened about five times in all the games I've played), but one of those nuances that I am personally fond of.

4. Concerning the graphics bug pics: this had to do with a Stealth Ship, and the graphics issue followed the ship wherever it went. FYI.


D
 

Attachments

  • Great Engineers journey.jpg
    Great Engineers journey.jpg
    47.8 KB · Views: 86
  • Naval assault.jpg
    Naval assault.jpg
    41.3 KB · Views: 112
  • why vote.jpg
    why vote.jpg
    16.1 KB · Views: 105
  • graphics bug 3.jpg
    graphics bug 3.jpg
    36.3 KB · Views: 132
  • graphics bug 2.jpg
    graphics bug 2.jpg
    19.8 KB · Views: 97
  • graphics bug 1.jpg
    graphics bug 1.jpg
    29.8 KB · Views: 88
it would be nice to have several different classes of non-combat units, so that this sort of situation wouldn't occur.

I agree, but it looks like that stuff is built into the game engine. Not a whole lot I can do about it.

Really!?! Its extremely rare that I see a C-S conquer another city.

It's very rare, because city-states have no resources and so couldn't normally build the good offensive units (until my addition of Secondhand tanks and such), and even then will never build enough of a standing army to be a real threat, even if they're a Hostile Militaristic.

But then there's gifting units. If you're at war with a major civ and have destroyed many of his mobile units, and then start gifting powerful units to a city-state, he can go on a rampage. Back when I still played vanilla games, I'd gift a dozen Giant Death Robots to a city-state on another continent, declare war on all of the civs there, and watch as the C-S took the place over. Obviously, this is at its best when you have a massive tech advantage, which I've tried to prevent in my mod, and if you're that far ahead you might as well just do it yourself, but it's fun to do.
Even if you don't go that far, it's not unheard of to see a city-state you're allied with threaten a city of a civ you're currently at war with. This usually doesn't happen often because the AIs will beat down the C-S's units before dying to yours, but it CAN come up.

lesson learned that before you nuke, to sue for peace with other civs your at war with, so that their SDI aren't shooting your nukes down as well!

Yes. Which makes sense, you know; if Russia lobs a nuke at England, the U.S. (also at war with Russia) would use its anti-missile systems to defend, and vice versa. What I'd want to do, in an ideal world, is have the target civ's defenses count fully while everyone they're allied with add a steadily decreasing amount, but there's just no way to know who the target of the nuke was, so I had to use the setup I did.

The only question is whether the caps are set too high; right now there's a maximum 90% chance of intercepting an A-bomb, 75% chance of a Nuclear Missile, and 50% chance of a Planet Buster. I could easily change those to 80/60/40 or something, which would significantly increase the number of missiles that get through in those many-on-one scenarios. But I like the idea of A-bombs becoming nearly useless once everyone has SDI, so it's a tough call.

3. Concerning "Why vote": six votes total, seven needed to win.

This is basically my fault. The percentages in the vanilla game are set low enough that this almost never happens; on a Standard map size you only need ~50% of the votes to win, and on the largest sizes it's 35%. But I raised the amount of votes needed to win (to 66% and 50%, respectively), to where it's now possible to do this and make a diplomatic victory impossible through conquering city-states.

I agree that it would have been smart for them to put in a disabling message, and I could modify the UI components myself to disable that window if you've crossed that threshold. But given how rarely this comes up, and how painful it is to maintain Lua compatibility across patches, I try to keep the UI modification to a minimum.

4. Concerning the graphics bug pics: this had to do with a Stealth Ship, and the graphics issue followed the ship wherever it went. FYI.

Strange; I haven't seen that, and I use those ships constantly. Does clearing the cache help?
A related worry I've had is that the art definition files for most of the buildings are basically unset, and the placeholder ones for the units might not have the right animations and such. This might be part of the instability people have reported, although apparently just BEING A MOD is enough to cause crashes; over in the main C&C forum someone made a mod that did nothing at all, and the crash rate STILL went way up compared to vanilla.

Once I have time to import the correct 3D models and animations, some of this might clear up, but it's mainly going to have to wait on the devs since it looks like at least part of it is their fault.
 
okay, I've ran into a "small" bug.

When you have the "quick combat" option set to on and send a unit with the rookie promotion into combat, it doesn't lose the rookie promotion at the end of combat. I threw the same spearman into like 7 combats and he never lost the promotion.

checking to see if it happens without "quick combat" turned on... okay, without it turned on the promotion disappears properly...

I'm guessing there is a conflict in the logic between how the rookie promotion works and how the "quick combat" optional rule works.
 
When you have the "quick combat" option set to on and send a unit with the rookie promotion into combat, it doesn't lose the rookie promotion at the end of combat.

Correct. Which is why I have a disclaimer in the first post that you can't use Quick Combat or Strategic View with this mod. (You also can't use certain map scripts, but that's a different conflict.) It's about halfway down the first post, in bold, where it says WARNING. The first posts are huge, so it's easy to miss.

What's happening is that many special abilities require the RunCombatSim and EndCombatSim events, for the start and end of combats, respectively. in the absence of an appropriate GameEvent. But these events are animation-based, so using Quick Combat or running the game in Strategic View will prevent them from triggering.

Besides the Rookie promotion, here are the other things that'll break if you use Quick Combat:
> The +/-25% combat strength adjustment of Psi units
> Nuke interception
> The Critical Strike and Spontaneous Healing special abilities of the Ranger and Troll, respectively. (These aren't incredibly important.)
> The Synthesis (promotion stealing) ability of the Doppelganger. This one IS important.
> Orbital Defense Pods reduce the damage of enemy orbital units by 5% per ODP.

As you can see, these events are needed for quite a few of the more interesting effects of this mod. So you just can't use them, at least until the devs provide us with start-of-combat and end-of-combat GameEvents that aren't UI-centric.

-------------------------------

I've reinstalled Civ5 on my new OS, and it's definitely playable, but I've hit a small snag: FireTuner won't work. It'll run, but it won't attach itself to the process correctly, so I can't actually use it for anything. Still working that out, but until it's fixed I can't do any real testing. Given that I've basically completed all of the critical elements other than art, this isn't a big deal, but it means that unless people find a major balance problem I won't be releasing a new version in the near future. I COULD release a new version, since I'm still tweaking small things like the number of years per turn (to get more realistic years), but I'd rather not cause compatibility issues for so little gain.

So what this means for all of you is that if you think something is significantly unbalanced, this is the time to talk about it. Are all of the units useful? Is there too much Happiness? Is Uranium too hard to find? That sort of thing.
 
if you think something is significantly unbalanced, this is the time to talk about it. Are all of the units useful? Is there too much Happiness? Is Uranium too hard to find? That sort of thing.

Overall I am liking the balance (although I am exclusively playing on smaller maps to date, so can't speak for balancing issues on larger maps).
Something that is "not significantly unbalance", but something that I'm still in the process of formulating/ defining are the dynamics involving later-game starts. In a nutshell I'm thinking the game is optimized to perform best for an ancient era start, so starts at later eras aren't optimized as well for gaming performance. So I guess my question is do you sense this as well, and are you concerned about this at all in regards to your mod?

Concerning the "pulling their nuclear teeth" pic: came up with a method of eliminating at least one nuclear threat in the early Nuclear era (i.e. pre SDI) by declaring war on a civ pre-atomic bombs. Sooner or later the AI will sue for peace, and at that point "negotiate" for all their Uranium. By the time the treaty expires I've typically got my SDI up and running. I'm also sort of learning to game the system in that I save my Great Scientists (typically at least one) till after I research Atomic Bombs. Pre-Atomic Bombs I'm trusting the KGB to keep me relatively abreast of the other civs tech-wise. Then after I research Atomic Bombs I blitzkreig the techs with the Great Scientists and Oxford University to get to the SDI as quickly as possible. This seems to be where I start to pull away tech-wise in the game. FYI in case you were still considering modifying the KGB at all.


On to today's playetsting. Game was a Duel/ Plains/ Emporer/ Industrial start against the Russians.

1. Concerning the "A real Donnybrook brewing" pic: I'm sort of gaming the system at this point, as I'm playing around with and defining the parameters it takes for the AI to declare war. Note that I've culture bombed the AI on several occasions, and never once has this provoked the AI into declaring war, even though relations have always been bad between us (how could they not be considering its a Duel?). Also I've been slowly building up my military, and so hasn't the AI: in this case I'm trying to define the algorhythm which involves the AI assessing your relative military strength in regards to whether it considers you weak enough to declare war on. At least in this case I seem to have found the sweet spot, as it took the AI an exceptionally long time to declare war on me.

I'm also starting to try and define what are the best unit mixes/ strategies in regards to large offensives such as what is taking shape in this game, and its implications for MP. Currently what I am seeing is that the AIs will war, regardless of the situation, and in a lot of cases they will commit suicide attacks into well-prepared defensive positions, and the reason for this is that the AIs will attack because the algorhythms tell them to (i.e. as opposed to a human player who would look at a strategic situation on a map and decline to attack). Human versus human warfare is completely different, and it will be interesting to see the strategies humans come up with to deal with the limitations imposed by 1UPT.

D
 

Attachments

  • pulling their nuclear teeth.jpg
    pulling their nuclear teeth.jpg
    43.2 KB · Views: 78
  • A real Donnybrook brewing.jpg
    A real Donnybrook brewing.jpg
    63.2 KB · Views: 113
In a nutshell I'm thinking the game is optimized to perform best for an ancient era start, so starts at later eras aren't optimized as well for gaming performance. So I guess my question is do you sense this as well, and are you concerned about this at all in regards to your mod?

The vanilla game is absolutely NOT optimized for late-era starts. I changed the math for this significantly to try to make it more manageable. Let's compare Industrial-era starts:

VANILLA:
Techs cost only 20% of their Ancient-start values.
Units cost only 33%, buildings cost 37%.
Cities start at size 3, and only need 80% of the usual food to grow.
Buildings only cost 60% of the usual maintenance.
New cities start with a Barracks, Workshop, Market, Library, Temple, Forge (if Iron), Lighthouse (if coastal), Colosseum, Monument, and Granary

MY MOD:
Techs cost 60% of the ancient-start values.
Units and buildings cost 75% of the normal amounts.
Cities start at size 4, and need 95% of the usual food to grow.
Buildings cost 100% of the usual maintenance.
New cities do NOT start with a Barracks, but do start with a Bank and Aqueduct in addition to the above list. Settlers' cost is based on the free buildings in a city, but I've lowered the ratio (from 40% to 25% of the buildings' cost).

So basically, in the vanilla game a late-era start was treated as an endgame situation; your cities would never grow very large, so they had to drastically reduce the costs of everything to make them still viable. Obviously, that had to change for my mod; you can't have every tech costing only 20% of the normal amount if you're still going to be researching sixty or seventy of them.
To make up for the differences, I added a Head Start boost. For your first few techs (2*N, where N is the era number after the ancient. Industrial is N=4.), your research production per turn is multiplied by a steadily-decreasing amount. It starts at (1+0.6*N) and goes down in a polynomial way, so in an industrial start it's x3.4 for the first tech, x3.03 for the second, x2.68 for the third, x2.35 for the fourth, and so on until the eighth tech is x1.23.
And then, there's a separate bonus for food and production. For every three techs remaining in the discounted list, you get +1 food and production in all cities. So in an Industrial start (8 techs), every city gets +3 food and production until you've researched or gained two techs, then +2 until you get the next three, then +1 for three more.
Both the research boost and the food/production boost are hidden bonuses; it'll say "180 turns remaining" on a tech and then the next turn will say 177. Likewise, you'll get "city is starving!" messages sometimes before you build improvements, but the cities will continue to grow from the +food boost. I've been looking at changing this.

So what happens in practice is that there's a period at the start of the game where you're getting this boost to get up to speed, but once you're a few techs in, and your empire has grown a bit, things cost far more than they would in a vanilla-game late-era start. I can tweak the numbers; I was thinking of changing the /3 for the food/production boost to /2, for instance.
The point is, what you're seeing in a late-era start is something VERY artificial, where I've heavily changed things relative to the vanilla game. So if you find that there's some specific phase where things are dragging too much, then I can tweak that. If the head start bonus needs to be larger, or needs to last for more techs, I can do that. I've tried to evaluate it myself by seeing how many turns it ACTUALLY took me to get each tech; the first few might take 20-25, as cities get founded, but it'd quickly stabilize down to the usual ~10 turns per.

Sooner or later the AI will sue for peace, and at that point "negotiate" for all their Uranium.

Just be aware that they might gain more Uranium after that point, from city-states or building Wall Street. (Fusion labs and the Supercollider, too, but those won't come until well after SDI.) And Planet Busters use Dilithium instead of Uranium, although those also come after SDI.
Finally, that tactic really only works on small maps. Play on a large map, with 11 other civs, and it becomes nearly impossible to do that sort of thing, because you just won't have enough trade goods to do this.

I'm also sort of learning to game the system in that I save my Great Scientists (typically at least one) till after I research Atomic Bombs.

While it's flashier to do that, there's no real reason to save up Great Scientists. If you use the GS right away, as soon as you get it, then you'll get to A-bombs that much sooner. You'll still reach SDI on about the same turn number as before, but you'll be better off overall from the other benefits of the intermediate techs.
Or, build an Academy. The amount it gives will add up over time; it might take a couple hundred turns to give enough beakers to buy a tech, but what it'll do is give you every tech a few turns earlier up to that point, which means a few extra turns where you can build buildings and units, or benefit from tech yield boosts. It's not as obviously game-changing as getting a free tech, but in a full game it's a more efficient use of the GS.

I'm also starting to try and define what are the best unit mixes/ strategies in regards to large offensives such as what is taking shape in this game, and its implications for MP.

I seriously doubt this mod will work with multiplayer, at least in the near term. Too much depends on the active player; as we transition from the Events system to the GameEvents this might go away, but MP wasn't really a consideration when I was designing the Lua.
This is one of the things I'll try improving now that the mod is mostly stable.
 
Forgot to add something:

On to today's playetsting. Game was a Duel/ Plains/ Emporer/ Industrial start against the Russians.

By "Plains" do you mean the Great Plains map? If so, then you've got a problem; that's one of the incompatible map scripts. Lakes, Great Plains, and Highland all conflict with this mod. It'll run, but there will be no Omnicytes, Dilithium, or Neutronium on the map, because those maps override AssignStartingPlots' resource tables. (I intend to make modified versions of these three maps eventually, versions which will work with this mod.)
 
Just be aware that they might gain more Uranium after that point, from city-states or building Wall Street. (Fusion labs and the Supercollider, too, but those won't come until well after SDI.) And Planet Busters use Dilithium instead of Uranium, although those also come after SDI.

I'm mainly concerned for the timeframe between when Uranium is discovered, until the SDI can be built. Its a (relatively) small number of turns, so its not too likely they'll get Uranium in that timeframe from another source and build an atomic bomb.

Finally, that tactic really only works on small maps. Play on a large map, with 11 other civs, and it becomes nearly impossible to do that sort of thing, because you just won't have enough trade goods to do this.

The pic is in regards to a peace treaty the English were offering to stop hostilities with me, so I didn't have to offer any trade goods. Also, I'm not concerned about a civ on the other side of the map who can't reach me with their atomic bombs - just those who are close enough to "drop by" :nuke: . So typically I'd probably only have to worry about adjacent civs (maybe three?), and how many of those would have a uranium deposit? Say its only two out of three civs, and I denude one AI of uranium via a peace treaty, then I've halved the number of civs who might nuke me in the timeframe between discovery of uranium and my completion of the SDI.

While it's flashier to do that, there's no real reason to save up Great Scientists. If you use the GS right away, as soon as you get it, then you'll get to A-bombs that much sooner. You'll still reach SDI on about the same turn number as before, but you'll be better off overall from the other benefits of the intermediate techs.

I think part of this has to do with the era I start in (Industrial) and its relative closeness to discovering Uranium. Given that its a relatively small timeframe, and the fact that I prioritize getting research pumped up early (I don't think the AIs typically do), then I'm not too far behind tech-wise in this timeframe even when not cashing in GS/ building the Oxford University right away.
Here is your quote for the KGB:

KGB (at Navigation, in the Renaissance): 1 free tech when built, and each turn you have a 0-5% chance to learn each tech depending on how many other civs know it. (5% if everyone but you knows it, scaling down linearly to 0 if no one knows it.) If you're playing on a game speed other than Standard it scales down proportionately with ResearchPercent, so on Marathon it'd peak at 1.67%. Note that when I say "other civs" it's counting each city-state separately.
(Technically, map size also adjust ResearchPercent slightly, but I really didn't feel like going into that much detail.)

So in the case of KGB tech-sharing, its better to receive than to give, or to put it slightly differently, I don't want to be giving other civs more opportunities (i.e. each turn the AIs have the KGB) to discover techs I've gotten (via cashed in GS/ directed research discoveries) along the beeline I'm currently working on. Am I lagging behind the others in general research? Yes, but not to the point I am worried about it militarily, scientifically, or culturally (and I am still beating everyone to the Sistine Chapel, Cristo Redentor, and the spaceship, so this relatively short lag between generation of GS and cashing them in is not impacting me significantly in the long haul). By purposely "starving" myself of techs during this relatively short timeframe (via hoarding GS and delaying the building of the Oxford University) I'm giving other civs less opportunities to acquire these desired techs (via the KGB) on this beeline over the X number of turns that it takes me to get to Atomic Bombs. I then coordinate the cashing in of the GS and build the Oxford University (again coordinated to coincide with the discovery of a tech so I can immediately leapfrog techs) so that I can blitzkreig to Doc: Flex and the SDI, thus giving the AIs less turns to have the KGB have the opportunity to acquire these techs from me.
So, to summarize, the less opportunities I give the AIs to beat me to Atom Bombs, the shorter the timespan between when they do discover these techs versus the time that I can successfully leapfrog techs and complete the SDI.

I seriously doubt this mod will work with multiplayer, at least in the near term. Too much depends on the active player; as we transition from the Events system to the GameEvents this might go away, but MP wasn't really a consideration when I was designing the Lua.
This is one of the things I'll try improving now that the mod is mostly stable.


That would be great if you could make MP work with this mod! I think it'd be really cool playing against other players in this environment. Of course I'd probably get trounced, but heah, its better than playing against the computer all the time.

One other thing concerning Spore Towers: these sessile units can bombard - correct (as opposed to SMAC Fungal Towers which stood there impassively)? I am hoping this is true, as in SMAC I always wanted them to be able to do this.

D
 
So in the case of KGB tech-sharing, its better to receive than to give, or to put it slightly differently, I don't want to be giving other civs more opportunities (i.e. each turn the AIs have the KGB) to discover techs I've gotten

Yes, but the percentage involved is low enough that it's still not usually to your benefit to hold back. It's at MAXIMUM a 4% chance (I lowered it after the post you quoted) of stealing the tech, assuming Standard speed. If there are 10 civs out there and you're the only one with the tech, a civ with KGB has a 0.444% chance of stealing it on a given turn. A 1 in 225 chance. Given that most techs take 8-10 turns to research, you're talking about the chance of an AI stealing a tech within the time it takes to research a half-dozen techs. Granted that as more civs get that tech the chance increases, but it's unlikely that an AI would even steal one tech from you this way. This system was designed to help crippled/mostly conquered civs that fall TEN techs behind, to where they need something like this just to keep up. The benefit when you're talking about a gap of only one or two techs is just tiny; it's more a curiosity than anything else, the occasional random tech that appears out of nowhere.
Of course, once you have the Planetary Datalinks and Nethack Terminus the cap becomes 10%, so it becomes a bit more likely to steal techs as time goes on. But for civs at or near the tech lead, it still won't be much.

I almost always play with the tech diffusion mod, which has a similar effect. Basically, it's still in your best interests to be in first place as much as possible, especially if the techs in question provide an infrastructure bonus of any kind (Research Labs, Recycling Centers, Solar and Nuclear Plants). If a T14 tech costs 3600, and there's a 1 in 225 chance of stealing it (although the effect is very erratic, so isn't that good), it's like gaining 16 extra beakers per turn on average, but how many beakers do you gain by unlocking Research Labs a few turns earlier than normal?

One other thing concerning Spore Towers: these sessile units can bombard - correct (as opposed to SMAC Fungal Towers which stood there impassively)?

Correct. Spore Towers have a substantial ranged attack: 80 ranged strength AND as a Psi unit it also adjusts +/- 25% based on the target. For comparison, Plasma Artillery have a 60 ranged attack, Needlejets are a 90, Bolos are a 75, Combat Mechs are a 120, and Orbital Death Rays are a 150 but reduce down to 75 against a player with 10 defense pods. So it's a significant attack, although with a range of 2 and no ability to move they're not that hard to kill. (Strange tidbit: the Hunter-Seeker Algorithm, which reduces range of invading units, applies to Psi units, including the Spore Tower. I should probably change that, or at least have it not apply to barbarian units.)

Basically, I didn't want their threat to solely depend on the spawning of mindworms. My original plan was to just have one psi unit automatically spawn whenever a tower appeared and have the percentage chance apply after that, but this way works better in general. They're not strong enough to destroy a city through bombardment, but once a few mindworms and such spawn it's enough to provide fire support.
 
Got a random crash here, I'll attach the last lines of the log, (on spoiler), if useful:

Spoiler :
Code:
OPERATIONAL AI
286, Aztlán, AI_OPERATION_SNEAK_CITY_ATTACK, Recruiting Units, Army: 40961, Muster Turn: -1, SLOT DETAIL:, No Info, No Info, No Info, Skipping, Skipping, Skipping, Jaguar - Turn 288, Guerrero - Turn 288, No Info, No Info, Skipping, Skipping, Skipping, 
286, Rusia, City State Attack, Ragusa, Target: Ragusa, Muster: Nóvgorod, 79056, Distance: 9, Land
286, Rusia, City State Attack, Ragusa, Target: Ragusa, Muster: Krasnoyarsk, 71064, Distance: 6, Land
286, Rusia, City State Attack, Ragusa, Target: Ragusa, Muster: Moscú, 68337, Distance: 13, Land
286, Rusia, City State Attack, Ragusa, Target: Ragusa, Muster: Jabárovsk, 67824, Distance: 5, Land
286, Rusia, City State Attack, Ragusa, Target: Ragusa, Muster: Rostov, 50112, Distance: 8, Land
286, Rusia, City State Attack, Ragusa, Target: Ragusa, Muster: Yaroslavl, 44955, Distance: 13, Land
286, Rusia, City State Attack, Ragusa, Target: Ragusa, Muster: Smolensk, 28620, Distance: 12, Land
286, Rusia, City State Attack, Ragusa, Target: Ragusa, Muster: Yekaterinburgo, 23409, Distance: 19, Land
286, Rusia, City State Attack, Ragusa, Target: Ragusa, Muster: San Petersburgo, 21924, Distance: 17, Land
286, Rusia, City State Attack, Ragusa, Target: Ragusa, Muster: Orenburgo, 19791, Distance: 17, Sea
286, Rusia, City State Attack, Ragusa, Target: Ragusa, Muster: Yakutsk, 7857, Distance: 20, Land
286, Rusia, City State Attack, Ragusa, Target: Ragusa, Muster: Vladivostok, 6723, Distance: 23, Land
286, Rusia, City State Attack, Ragusa, CHOSEN: Ragusa, Muster: Nóvgorod, Land
286, Rusia, AI_OPERATION_FOUND_CITY, Moving To Target, Army: 180224, At X: 51, At Y: 48, To X: 65, To Y: 52, Colono at (63-49),Jinete at (63-49),

TECH AI

286, Grecia, ECONOMICAISTRATEGY_NEED_RECON_SEA, 0
286, Grecia, Flavor, FLAVOR_NAVAL_RECON, 513
286, Grecia, ECONOMICAISTRATEGY_ENOUGH_EXPANSION, 0
286, Grecia, Flavor, FLAVOR_EXPANSION, -19
286, Grecia, ECONOMICAISTRATEGY_CITIES_NEED_NAVAL_TILE_IMPROVEMENT, 1
286, Grecia, Flavor, FLAVOR_NAVAL_TILE_IMPROVEMENT, 217
286, Grecia, MILITARYAISTRATEGY_ENOUGH_RANGED, 1
286, Grecia, Flavor, FLAVOR_OFFENSE, 62
286, Grecia, Flavor, FLAVOR_DEFENSE, 97
286, Grecia, Flavor, FLAVOR_RANGED, 42
286, Inglaterra, TECH_METAL_CASTING, 110
286, Inglaterra, TECH_CALENDAR, 66
286, Inglaterra, TECH_CURRENCY, 51
286, Inglaterra, CHOSEN, TECH_METAL_CASTING
286, Turquía, ECONOMICAISTRATEGY_LOSING_MONEY, 1
286, Turquía, Flavor, FLAVOR_OFFENSE, 91
286, Turquía, Flavor, FLAVOR_DEFENSE, 80
286, Turquía, Flavor, FLAVOR_GOLD, 25
AI MESSAGES

275, Turquía, Rusia, , , Open Borders Trade
275, Rusia, Turquía, , , Open Borders Trade
281, Egipto, Turquía, Wanna team up?
282, Turquía, Egipto, Wanna team up?
282, Turquía, ,***** NOW FRIENDS Egipto! *****
282, Turquía, Polinesia, ***** JUST FYI - I BEFRIENDED YOUR FRIEND! *****
283, Egipto, Polinesia, ***** JUST FYI - I BEFRIENDED YOUR FRIEND! *****
284, China, , ***** WAR DECLARATION! *****, Grecia
286, Rusia, Polinesia, ***** Can you spare something for a friend? *****
XML PERF


[4286.828] , Controls, 0.003321
[4286.828] , EntityEvents, 0.000858
[4286.828] , Missions, 0.002696
[4286.828] , MultiUnitFormations, 0.001805
[4286.828] , SpecialUnits, 0.000676
[4286.843] , UnitClasses, 0.004566
[4286.906] , UnitPromotions, 0.064393
[4287.046] , Units, 0.142018
[4287.078] , Civilizations, 0.032296
[4287.078] , MinorCivilizations, 0.006808
[4287.093] , Traits, 0.008001
[4287.093] , PrefetchGameData, 0.668085
[4287.093] , UpdatePlayableCivilizationCounts, 0.000004
[4287.093] , SetGlobalActionInfo, 0.000306
XML LOG


------------------------------
[4285.218] **** Validating Game Database *****
[4286.296] Performing Localization Checks
[4286.296] Checking Tag Format...
[4286.296] Note: Tags must only use [A-Z_] characters, start with 'TXT_KEY_', and be under 128 characters long.
[4286.296] In table Language_en_US...
[4286.296] Tag (TXT_KEY_CITY_NAME_PANGAI-HIHIFO) contains invalid character (-)
[4286.296] Tag (TXT_KEY_CITY_NAME_TOFOA-KOLOUA) contains invalid character (-)
[4286.312] In table Language_FR_FR...
[4286.312] Tag (TXT_KEY_CITY_NAME_PANGAI-HIHIFO) contains invalid character (-)
[4286.312] Tag (TXT_KEY_CITY_NAME_TOFOA-KOLOUA) contains invalid character (-)
[4286.328] In table Language_DE_DE...
[4286.328] Tag (TXT_KEY_CITY_NAME_PANGAI-HIHIFO) contains invalid character (-)
[4286.328] Tag (TXT_KEY_CITY_NAME_TOFOA-KOLOUA) contains invalid character (-)
[4286.343] In table Language_IT_IT...
[4286.343] Tag (TXT_KEY_CITY_NAME_PANGAI-HIHIFO) contains invalid character (-)
[4286.343] Tag (TXT_KEY_CITY_NAME_TOFOA-KOLOUA) contains invalid character (-)
[4286.359] In table Language_ES_ES...
[4286.359] Tag (TXT_KEY_CITY_NAME_PANGAI-HIHIFO) contains invalid character (-)
[4286.359] Tag (TXT_KEY_CITY_NAME_TOFOA-KOLOUA) contains invalid character (-)
[4286.390] In table Language_PL_PL...
[4286.390] Tag (TXT_KEY_CITY_NAME_PANGAI-HIHIFO) contains invalid character (-)
[4286.390] Tag (TXT_KEY_CITY_NAME_TOFOA-KOLOUA) contains invalid character (-)
[4286.390] Validating UnitGameplay
[4286.390] Number of selection sounds doesn't match number of units.
[4286.390] Validating Notifications
[4286.390] **** VALIDATION FAILED *****
[4286.390] Validation Took 1.181630 seconds
[4287.093] **** Validating Prefetch Process *****
[4287.093] **** Validation Success *****
[4287.093] SetGlobalActionInfo
[4287.093] 
-- SQLite Memory Statistics --
Memory Usage:
		[Cur]		[Max]
Malloc:		390680		2359896
PageCache:	4181		4982
LookAside:	1160		2979
Scratch:	0		1

Static Buffer Overflows:
		[TooLarge]	[NoSpace]
PageCache:	0		1490600
Scratch:	0		0

Largest Allocations:
Malloc:		65280
PageCache:	1160
Scratch:	6376

Prepared Statements:
Current:		19
------------------------------

RAND CALL LOG


286, 44678, 228, 1349919587, 104261c0, sync, Randomizing Diplo AI Minor Civ Approach Weight
286, 44678, 32, 3265751904, 104261c0, sync, Randomizing Diplo AI Minor Civ Approach Weight
286, 44678, 9, 1346381849, 104261c0, sync, Randomizing Diplo AI Minor Civ Approach Weight
286, 44678, 68, 333373662, 104261c0, sync, Randomizing Diplo AI Minor Civ Approach Weight
286, 44678, 131, 2820510399, 104261c0, sync, Randomizing Diplo AI Minor Civ Approach Weight
286, 44678, 10, 2517097868, 104261c0, sync, Randomizing Diplo AI Minor Civ Approach Weight
286, 44678, 69, 757214421, 104261c0, sync, Randomizing Diplo AI Minor Civ Approach Weight
286, 44678, 92, 1660169450, 104261c0, sync, Randomizing Diplo AI Minor Civ Approach Weight
286, 44678, 3, 2929892315, 104261c0, sync, Randomizing Diplo AI Minor Civ Approach Weight
286, 44678, 194, 219891320, 104261c0, sync, Randomizing Diplo AI Minor Civ Approach Weight
286, 44678, 19, 3706044753, 104261c0, sync, Randomizing Diplo AI Minor Civ Approach Weight
286, 44678, 32, 610282934, 104261c0, sync, Randomizing Diplo AI Minor Civ Approach Weight
286, 44678, 81, 1537546935, 104261c0, sync, Randomizing Diplo AI Minor Civ Approach Weight
286, 44678, 24, 1945784868, 104261c0, sync, Randomizing Diplo AI Minor Civ Approach Weight
286, 44678, 7454, 1383342477, 104261c0, sync, Choosing attack target by weight
286, 44678, 58, 1035562818, 104261c0, sync, DIPLOMACY_AI: Random weight for player to make Research Agreement
286, 44678, 0, 2531699539, 104261c0, sync, Diplomacy AI: Rand for whether AI wants to work with player
286, 44678, 3, 496790672, 104261c0, sync, Diplomacy AI: Rand for whether AI wants to work with player
286, 44678, 4, 3423488393, 104261c0, sync, Diplomacy AI: Rand for whether AI wants to work with player
286, 44678, 2, 3849534862, 104261c0, sync, Diplomacy AI: Rand for whether AI wants to work with player
286, 44678, 4, 2024188335, 104261c0, sync, Diplomacy AI: Rand for whether AI wants to work with player
286, 44678, 2, 3540238780, 104261c0, sync, Diplomacy AI: Rand for whether AI wants to work with player
286, 44678, 70, 2433283397, 104261c0, sync, Diplomacy AI: Friendly civ request roll.
TACTIAL AI LOG

286, Rusia, no zone, Zone ID: 1, Area ID: 57350, Value: 1, FRIENDLY Str: 0 (0), Ranged: 0 (0), ENEMY Str: 600 (1), Ranged: 400 (1), Closest Enemy: 2147483647, Enemy, Water
286, Rusia, no zone, Zone ID: 5, Area ID: 884843, Value: 1, FRIENDLY Str: 0 (0), Ranged: 0 (0), ENEMY Str: 0 (0), Ranged: 0 (0), Closest Enemy: 2147483647, No Units, Water
286, Rusia, no zone, Zone ID: 12, Area ID: 999545, Value: 1, FRIENDLY Str: 0 (0), Ranged: 0 (0), ENEMY Str: 0 (0), Ranged: 0 (0), Closest Enemy: 2147483647, No Units, Water
286, Rusia, no zone, Zone ID: 29, Area ID: 1450160, Value: 1, FRIENDLY Str: 0 (0), Ranged: 0 (0), ENEMY Str: 0 (0), Ranged: 0 (0), Closest Enemy: 2147483647, No Units, Water
286, Rusia, no zone, Zone ID: 30, Area ID: 1458353, Value: 1, FRIENDLY Str: 0 (0), Ranged: 0 (0), ENEMY Str: 1100 (2), Ranged: 700 (2), Closest Enemy: 2147483647, Enemy, Water
286, Rusia, no zone, Zone ID: 31, Area ID: 1466546, Value: 1, FRIENDLY Str: 0 (0), Ranged: 0 (0), ENEMY Str: 500 (1), Ranged: 300 (1), Closest Enemy: 2147483647, Enemy, Water
HOMELAND AI LOG


286, India, Arquero healing at, X: 15, Y: 35
286, India, Moving to sentry point, X: 13, Y: 42, Priority: 3272
286, Turquía, Moving Trabajador to safety, X: 87, Y: 54
286, Turquía, Arquero patrolling to, X: 85, Y: 52
286, Turquía, Gran ingeniero patrolling to, X: 87, Y: 52
286, Aztlán, Great General remaining as garrison for Tenochtitlán, X: 71, Y: 54
286, Aztlán, Moving to sentry point, X: 69, Y: 50, Priority: 1312
286, Aztlán, Moving to sentry point, X: 76, Y: 55, Priority: 1050
 NET MESSAGE LOG

[4944.656] DBG: changeNumGameTurnActive(-1) m_iNumActive=0 : setTurnActive() for player Solimán
[4944.656] DBG: changeNumGameTurnActive(1) m_iNumActive=1 : setTurnActive() for player 7 Moctezuma
[4944.687] DBG: UpdateMoves() : player.setAutoMoves(false) called for Solimán
[4944.796] DBG: UpdateMoves() : player.AI_unitUpdate() called for Moctezuma
[4944.796] DBG: UpdateMoves() : player.setAutoMoves(true) called for Moctezuma
[4944.796] DBG: UpdateMoves() : player Moctezuma running AutoMission on Carlos Martel (Gran general) id=131075
[4944.796] DBG: UpdateMoves() : player Moctezuma running AutoMission on Trabajador id=180228
[4944.796] DBG: UpdateMoves() : player Moctezuma running AutoMission on Jaguar id=196614
[4944.796] DBG: UpdateMoves() : player Moctezuma running AutoMission on Guerrero id=163847
[4944.796] DBG: changeNumGameTurnActive(-1) m_iNumActive=0 : setTurnActive() for player Moctezuma
[4944.796] DBG: changeNumGameTurnActive(1) m_iNumActive=1 : setTurnActive() for player 8 Catalina
[4944.906] DBG: UpdateMoves() : player.setAutoMoves(false) called for Moctezuma
 LUA. LOG

[4941.093] Tutorial: ChangeTutorialStep
[4941.093] Tutorial: UpdateTutorialStatuses: index 20
[4941.093] Tutorial: UpdateTutorialStatuses: Game.GetTutorialLevel() 0
[4941.093] Tutorial: UpdateTutorialStatuses: TutorialInfo[index].TutorialLevel 2
[4941.093] Tutorial: UpdateTutorialStatuses: index 21
[4941.093] Tutorial: UpdateTutorialStatuses: Game.GetTutorialLevel() 0
[4941.093] Tutorial: UpdateTutorialStatuses: TutorialInfo[index].TutorialLevel 2
[4941.093] Tutorial: UpdateTutorialStatuses: index 31
[4941.093] Tutorial: UpdateTutorialStatuses: Game.GetTutorialLevel() 0
[4941.093] Tutorial: UpdateTutorialStatuses: TutorialInfo[index].TutorialLevel 2
[4941.671] Tutorial: TurnEnding
[4941.671] \Mis documentos\My Games\Sid Meier's Civilization 5\MODS\Spatz's Mod of Alpha Centauri (v 1)\Lua\SpatzEndTurn: Beginning SpatzEndTurn
[4941.687] \Mis documentos\My Games\Sid Meier's Civilization 5\MODS\Spatz's Mod of Alpha Centauri (v 1)\Lua\SpatzEndTurn: End of SpatzEndTurn
[4941.875] \Mis documentos\My Games\Sid Meier's Civilization 5\MODS\Spatz's Mod of Alpha Centauri (v 1)\Lua\SpatzUnit: In StartCombat	1	90113	63	1769611
[4941.953] \Mis documentos\My Games\Sid Meier's Civilization 5\MODS\Spatz's Mod of Alpha Centauri (v 1)\Lua\SpatzUnit:  END combat!
[4942.234] \Mis documentos\My Games\Sid Meier's Civilization 5\MODS\Spatz's Mod of Alpha Centauri (v 1)\Lua\SpatzUnit: In StartCombat	2	-1	9	180234
[4942.312] \Mis documentos\My Games\Sid Meier's Civilization 5\MODS\Spatz's Mod of Alpha Centauri (v 1)\Lua\SpatzUnit: In StartCombat	2	-1	9	180234
[4942.312] \Mis documentos\My Games\Sid Meier's Civilization 5\MODS\Spatz's Mod of Alpha Centauri (v 1)\Lua\SpatzUnit:  END combat!
[4942.359] \Mis documentos\My Games\Sid Meier's Civilization 5\MODS\Spatz's Mod of Alpha Centauri (v 1)\Lua\SpatzUnit:  END combat!

DATABASE LOG

[4164.046] constraint failed
[4164.046] While executing - 'INSERT INTO ArtDefine_StrategicView(StrategicViewType, TileType, Asset) VALUES(?,?,?)'
[4179.000] Validating Foreign Key Constraints...
[4179.000] Invalid Reference on ArtDefine_Landmarks.LayoutHandler - "SPECIAL" does not exist in ArtDefine_LandmarkTypes
[4179.000] Invalid Reference on ArtDefine_Landmarks.LayoutHandler - "SPECIAL" does not exist in ArtDefine_LandmarkTypes
[4179.000] Invalid Reference on ArtDefine_Landmarks.LayoutHandler - "SPECIAL" does not exist in ArtDefine_LandmarkTypes
[4180.000] Failed Validation.
[4180.781] 
-- SQLite Memory Statistics --
Memory Usage:
		[Cur]		[Max]
Malloc:		299136		2359896
PageCache:	4267		4274
LookAside:	45		1840
Scratch:	0		1

Static Buffer Overflows:
		[TooLarge]	[NoSpace]
PageCache:	0		0
Scratch:	0		0

Largest Allocations:
Malloc:		65280
PageCache:	1160
Scratch:	5128

Prepared Statements:
Current:		5
------------------------------
[4285.234] Validating Foreign Key Constraints...
[4285.234] Invalid Reference on ArtDefine_Landmarks.LayoutHandler - "SPECIAL" does not exist in ArtDefine_LandmarkTypes
[4285.234] Invalid Reference on ArtDefine_Landmarks.LayoutHandler - "SPECIAL" does not exist in ArtDefine_LandmarkTypes
[4285.234] Invalid Reference on ArtDefine_Landmarks.LayoutHandler - "SPECIAL" does not exist in ArtDefine_LandmarkTypes
[4285.234] Invalid Reference on Buildings.FreeStartEra - "ERA_FUTURE" does not exist in Eras
[4285.234] Invalid Reference on Buildings.FreeStartEra - "ERA_FUTURE" does not exist in Eras
[4285.593] Invalid Reference on Era_Soundtracks.EraType - "ERA_FUTURE" does not exist in Eras
[4285.609] Invalid Reference on Era_Soundtracks.EraType - "ERA_FUTURE" does not exist in Eras
[4285.609] Invalid Reference on Era_Soundtracks.EraType - "ERA_FUTURE" does not exist in Eras
[4285.609] Invalid Reference on Era_Soundtracks.EraType - "ERA_FUTURE" does not exist in Eras
[4285.609] Invalid Reference on Era_Soundtracks.EraType - "ERA_FUTURE" does not exist in Eras
[4285.609] Invalid Reference on Era_Soundtracks.EraType - "ERA_FUTURE" does not exist in Eras
[4285.609] Invalid Reference on Era_Soundtracks.EraType - "ERA_FUTURE" does not exist in Eras
[4285.609] Invalid Reference on Era_Soundtracks.EraType - "ERA_FUTURE" does not exist in Eras
[4285.609] Invalid Reference on Era_Soundtracks.EraType - "ERA_FUTURE" does not exist in Eras
[4285.609] Invalid Reference on Era_Soundtracks.EraType - "ERA_FUTURE" does not exist in Eras
[4285.609] Invalid Reference on Era_Soundtracks.EraType - "ERA_FUTURE" does not exist in Eras
[4285.609] Invalid Reference on Era_Soundtracks.EraType - "ERA_FUTURE" does not exist in Eras
[4285.609] Invalid Reference on Era_Soundtracks.EraType - "ERA_FUTURE" does not exist in Eras
[4285.609] Invalid Reference on Era_Soundtracks.EraType - "ERA_FUTURE" does not exist in Eras
[4285.609] Invalid Reference on Era_CitySoundscapes.EraType - "ERA_FUTURE" does not exist in Eras
[4285.609] Invalid Reference on Era_CitySoundscapes.EraType - "ERA_FUTURE" does not exist in Eras
[4285.609] Invalid Reference on Era_CitySoundscapes.EraType - "ERA_FUTURE" does not exist in Eras
[4285.609] Invalid Reference on Era_NewEraVOs.EraType - "ERA_FUTURE" does not exist in Eras
[4285.609] Invalid Reference on Era_NewEraVOs.EraType - "ERA_FUTURE" does not exist in Eras
[4285.609] Invalid Reference on Era_NewEraVOs.EraType - "ERA_FUTURE" does not exist in Eras
[4285.609] Invalid Reference on Era_NewEraVOs.EraType - "ERA_FUTURE" does not exist in Eras
[4285.640] Invalid Reference on Policies.Help - "TXT_KEY_SMAC" does not exist in Language_en_US
[4285.640] Invalid Reference on Policies.Help - "TXT_KEY_SMAC" does not exist in Language_en_US
[4285.687] Invalid Reference on Policies.Civilopedia - "TXT_KEY_SMAC" does not exist in Language_en_US
[4285.687] Invalid Reference on Policies.Civilopedia - "TXT_KEY_SMAC" does not exist in Language_en_US
[4285.718] Invalid Reference on Policies.Description - "TXT_KEY_SMAC" does not exist in Language_en_US
[4285.718] Invalid Reference on Policies.Description - "TXT_KEY_SMAC" does not exist in Language_en_US
[4285.765] Invalid Reference on PolicyBranchTypes.Title - "TXT_KEY_SMAC" does not exist in Language_en_US
[4285.796] Invalid Reference on PolicyBranchTypes.Help - "TXT_KEY_SMAC" does not exist in Language_en_US
[4285.843] Invalid Reference on PolicyBranchTypes.Description - "TXT_KEY_SMAC" does not exist in Language_en_US
[4285.843] Invalid Reference on SpecialistYields.YieldType - "YIELD_RESEARCH" does not exist in Yields
[4285.843] Invalid Reference on Technology_Flavors.FlavorType - "FLAVOR_RESEARCH" does not exist in Flavors
[4285.968] Invalid Reference on Units.MoveRate - "QUADRAPED" does not exist in MovementRates
[4285.968] Invalid Reference on Units.MoveRate - "QUADRAPED" does not exist in MovementRates
[4286.125] Invalid Reference on Unit_BuildingClassRequireds.BuildingClassType - "BUILDING_AEROSPACE_COMPLEX" does not exist in BuildingClasses
[4286.125] Invalid Reference on Unit_BuildingClassRequireds.BuildingClassType - "BUILDING_AEROSPACE_COMPLEX" does not exist in BuildingClasses
[4286.125] Invalid Reference on Unit_BuildingClassRequireds.BuildingClassType - "BUILDING_AEROSPACE_COMPLEX" does not exist in BuildingClasses
[4286.125] Invalid Reference on Unit_BuildingClassRequireds.BuildingClassType - "BUILDING_AEROSPACE_COMPLEX" does not exist in BuildingClasses
[4286.125] Invalid Reference on Unit_BuildingClassRequireds.BuildingClassType - "BUILDING_SPACESHIP_FACTORY" does not exist in BuildingClasses
[4286.125] Invalid Reference on Unit_BuildingClassRequireds.UnitType - "UNIT_ORBITAL_SUBSPACE_GENERATOR" does not exist in Units
[4286.125] Invalid Reference on Unit_FreePromotions.PromotionType - "PROMOTION_CAN_MOVE_IMPASSIBLE" does not exist in UnitPromotions
[4286.125] Invalid Reference on Unit_FreePromotions.PromotionType - "PROMOTION_CAN_MOVE_IMPASSIBLE" does not exist in UnitPromotions
[4286.125] Invalid Reference on Unit_FreePromotions.PromotionType - "PROMOTION_REGENERATE_I" does not exist in UnitPromotions
[4286.125] Invalid Reference on Unit_Flavors.FlavorType - "FLAVOR_ATTACK" does not exist in Flavors
[4286.125] Invalid Reference on Unit_ResourceQuantityRequirements.UnitType - "UNIT_SIPAHI" does not exist in Units
[4286.203] Invalid Reference on UnitPromotions.SeeInvisible - "1" does not exist in InvisibleInfos
[4286.296] Invalid Reference on UnitPromotions_Features.FeatureType - "FEATURE_HILLS" does not exist in Features
[4286.296] Invalid Reference on UnitPromotions_Features.FeatureType - "FEATURE_LAKE" does not exist in Features
[4286.296] Invalid Reference on UnitGameplay2DScripts.UnitType - "UNIT_MECH" does not exist in Units
[4286.296] Failed Validation.
[4287.093] 
-- SQLite Memory Statistics --
Memory Usage:
		[Cur]		[Max]
Malloc:		390680		2359896
PageCache:	4181		4982
LookAside:	1160		2979
Scratch:	0		1

Static Buffer Overflows:
		[TooLarge]	[NoSpace]
PageCache:	0		1490600
Scratch:	0		0

Largest Allocations:
Malloc:		65280
PageCache:	1160
Scratch:	6376

Prepared Statements:
Current:		19
------------------------------

Hope you find anything of that useful. If you want I can upload the save, but it seem to be a random crash so I'm not sure if it would help at all.
 
Quite few interesting things there:

[4286.296] In table Language_en_US...
[4286.296] Tag (TXT_KEY_CITY_NAME_PANGAI-HIHIFO) contains invalid character (-)
[4286.296] Tag (TXT_KEY_CITY_NAME_TOFOA-KOLOUA) contains invalid character (-)

So the official DLC violates the engine's own limitations. Typical.


[4942.234] \Mis documentos\My Games\Sid Meier's Civilization 5\MODS\Spatz's Mod of Alpha Centauri (v 1)\Lua\SpatzUnit: In StartCombat 2 -1 9 180234
[4942.312] \Mis documentos\My Games\Sid Meier's Civilization 5\MODS\Spatz's Mod of Alpha Centauri (v 1)\Lua\SpatzUnit: In StartCombat 2 -1 9 180234
[4942.312] \Mis documentos\My Games\Sid Meier's Civilization 5\MODS\Spatz's Mod of Alpha Centauri (v 1)\Lua\SpatzUnit: END combat!
[4942.359] \Mis documentos\My Games\Sid Meier's Civilization 5\MODS\Spatz's Mod of Alpha Centauri (v 1)\Lua\SpatzUnit: END combat!

This one's worrisome. It was starting a new combat before it finished the previous one, and both combats involved cities bombarding the same unit (or possibly the same city doing it twice, although I don't see how that could be true).
So what it looks like to me is, the game did the attack animation, and then triggered the RunCombatSim event while it was continuing on to the next fight. It should have prevented any other combats from running (or at least combats involving THAT UNIT) until the first one was completely resolved, including any triggered Lua.

And then there's this block:
Spoiler :

[4285.234] Validating Foreign Key Constraints...
[4285.234] Invalid Reference on ArtDefine_Landmarks.LayoutHandler - "SPECIAL" does not exist in ArtDefine_LandmarkTypes
[4285.234] Invalid Reference on ArtDefine_Landmarks.LayoutHandler - "SPECIAL" does not exist in ArtDefine_LandmarkTypes
[4285.234] Invalid Reference on ArtDefine_Landmarks.LayoutHandler - "SPECIAL" does not exist in ArtDefine_LandmarkTypes
[4285.234] Invalid Reference on Buildings.FreeStartEra - "ERA_FUTURE" does not exist in Eras
[4285.234] Invalid Reference on Buildings.FreeStartEra - "ERA_FUTURE" does not exist in Eras
[4285.593] Invalid Reference on Era_Soundtracks.EraType - "ERA_FUTURE" does not exist in Eras
[4285.609] Invalid Reference on Era_Soundtracks.EraType - "ERA_FUTURE" does not exist in Eras
[4285.609] Invalid Reference on Era_Soundtracks.EraType - "ERA_FUTURE" does not exist in Eras
[4285.609] Invalid Reference on Era_Soundtracks.EraType - "ERA_FUTURE" does not exist in Eras
[4285.609] Invalid Reference on Era_Soundtracks.EraType - "ERA_FUTURE" does not exist in Eras
[4285.609] Invalid Reference on Era_Soundtracks.EraType - "ERA_FUTURE" does not exist in Eras
[4285.609] Invalid Reference on Era_Soundtracks.EraType - "ERA_FUTURE" does not exist in Eras
[4285.609] Invalid Reference on Era_Soundtracks.EraType - "ERA_FUTURE" does not exist in Eras
[4285.609] Invalid Reference on Era_Soundtracks.EraType - "ERA_FUTURE" does not exist in Eras
[4285.609] Invalid Reference on Era_Soundtracks.EraType - "ERA_FUTURE" does not exist in Eras
[4285.609] Invalid Reference on Era_Soundtracks.EraType - "ERA_FUTURE" does not exist in Eras
[4285.609] Invalid Reference on Era_Soundtracks.EraType - "ERA_FUTURE" does not exist in Eras
[4285.609] Invalid Reference on Era_Soundtracks.EraType - "ERA_FUTURE" does not exist in Eras
[4285.609] Invalid Reference on Era_Soundtracks.EraType - "ERA_FUTURE" does not exist in Eras
[4285.609] Invalid Reference on Era_CitySoundscapes.EraType - "ERA_FUTURE" does not exist in Eras
[4285.609] Invalid Reference on Era_CitySoundscapes.EraType - "ERA_FUTURE" does not exist in Eras
[4285.609] Invalid Reference on Era_CitySoundscapes.EraType - "ERA_FUTURE" does not exist in Eras
[4285.609] Invalid Reference on Era_NewEraVOs.EraType - "ERA_FUTURE" does not exist in Eras
[4285.609] Invalid Reference on Era_NewEraVOs.EraType - "ERA_FUTURE" does not exist in Eras
[4285.609] Invalid Reference on Era_NewEraVOs.EraType - "ERA_FUTURE" does not exist in Eras
[4285.609] Invalid Reference on Era_NewEraVOs.EraType - "ERA_FUTURE" does not exist in Eras
[4285.640] Invalid Reference on Policies.Help - "TXT_KEY_SMAC" does not exist in Language_en_US
[4285.640] Invalid Reference on Policies.Help - "TXT_KEY_SMAC" does not exist in Language_en_US
[4285.687] Invalid Reference on Policies.Civilopedia - "TXT_KEY_SMAC" does not exist in Language_en_US
[4285.687] Invalid Reference on Policies.Civilopedia - "TXT_KEY_SMAC" does not exist in Language_en_US
[4285.718] Invalid Reference on Policies.Description - "TXT_KEY_SMAC" does not exist in Language_en_US
[4285.718] Invalid Reference on Policies.Description - "TXT_KEY_SMAC" does not exist in Language_en_US
[4285.765] Invalid Reference on PolicyBranchTypes.Title - "TXT_KEY_SMAC" does not exist in Language_en_US
[4285.796] Invalid Reference on PolicyBranchTypes.Help - "TXT_KEY_SMAC" does not exist in Language_en_US
[4285.843] Invalid Reference on PolicyBranchTypes.Description - "TXT_KEY_SMAC" does not exist in Language_en_US
[4285.843] Invalid Reference on SpecialistYields.YieldType - "YIELD_RESEARCH" does not exist in Yields
[4285.843] Invalid Reference on Technology_Flavors.FlavorType - "FLAVOR_RESEARCH" does not exist in Flavors
[4285.968] Invalid Reference on Units.MoveRate - "QUADRAPED" does not exist in MovementRates
[4285.968] Invalid Reference on Units.MoveRate - "QUADRAPED" does not exist in MovementRates
[4286.125] Invalid Reference on Unit_BuildingClassRequireds.BuildingClassType - "BUILDING_AEROSPACE_COMPLEX" does not exist in BuildingClasses
[4286.125] Invalid Reference on Unit_BuildingClassRequireds.BuildingClassType - "BUILDING_AEROSPACE_COMPLEX" does not exist in BuildingClasses
[4286.125] Invalid Reference on Unit_BuildingClassRequireds.BuildingClassType - "BUILDING_AEROSPACE_COMPLEX" does not exist in BuildingClasses
[4286.125] Invalid Reference on Unit_BuildingClassRequireds.BuildingClassType - "BUILDING_AEROSPACE_COMPLEX" does not exist in BuildingClasses
[4286.125] Invalid Reference on Unit_BuildingClassRequireds.BuildingClassType - "BUILDING_SPACESHIP_FACTORY" does not exist in BuildingClasses
[4286.125] Invalid Reference on Unit_BuildingClassRequireds.UnitType - "UNIT_ORBITAL_SUBSPACE_GENERATOR" does not exist in Units
[4286.125] Invalid Reference on Unit_FreePromotions.PromotionType - "PROMOTION_CAN_MOVE_IMPASSIBLE" does not exist in UnitPromotions
[4286.125] Invalid Reference on Unit_FreePromotions.PromotionType - "PROMOTION_CAN_MOVE_IMPASSIBLE" does not exist in UnitPromotions
[4286.125] Invalid Reference on Unit_FreePromotions.PromotionType - "PROMOTION_REGENERATE_I" does not exist in UnitPromotions
[4286.125] Invalid Reference on Unit_Flavors.FlavorType - "FLAVOR_ATTACK" does not exist in Flavors
[4286.125] Invalid Reference on Unit_ResourceQuantityRequirements.UnitType - "UNIT_SIPAHI" does not exist in Units
[4286.203] Invalid Reference on UnitPromotions.SeeInvisible - "1" does not exist in InvisibleInfos
[4286.296] Invalid Reference on UnitPromotions_Features.FeatureType - "FEATURE_HILLS" does not exist in Features
[4286.296] Invalid Reference on UnitPromotions_Features.FeatureType - "FEATURE_LAKE" does not exist in Features
[4286.296] Invalid Reference on UnitGameplay2DScripts.UnitType - "UNIT_MECH" does not exist in Units


Those mostly look to be legitimate flaws on my end, and I'll fix them in the next version. The first three are clearly not caused by my mod, though.

Plans are that the next version will be in a couple days. It'll be somewhat small, since I've mainly been working on trying to get the All Terrain promotion to work (which'd let gravtanks and such move across water); so far no luck. But I'm trying a couple things that might help with the crashes, so we'll see what happens.
 
Just a couple quick questions this evening:

1. Can Spore Towers pillage? I don't think I've seen them do this to date.

2. In SMAC faster units had the opportunity to disengage from combat. Do you plan on implementing this feature?

3. I looked thru the Promotions section of the Civilopedia this evening, and I noticed there is a promotion "can enter rival territory". What is this promotion? Also, there is the "is invisible" promotion. I see its for submarines. Could this be changed to the SMAC "cloaking" promotion for all units?

D
 
1. Can Spore Towers pillage? I don't think I've seen them do this to date.

The XML stub for this is set to true, but it might be overridden by the immobility flag.

2. In SMAC faster units had the opportunity to disengage from combat. Do you plan on implementing this feature?

Not really. They had this in Civ4, and some XML stubs are in place to do this, but the key is that in Civ5, combats aren't to the death (like previous Civ games had), so withdrawing has no real point any more. You could turn it into a mechanism where one unit takes half damage and retreats, but the benefits aren't nearly as much as in the older games.

3. I looked thru the Promotions section of the Civilopedia this evening, and I noticed there is a promotion "can enter rival territory". What is this promotion?

In previous civ games, certain units had the ability to enter the territory of another civilization even if there wasn't an Open Borders or a war; generally, this'd be used for spy units. In Civ5 it's not used, but there's both a <RivalTerritory> entry in the Units table (not used for any existing units) as well as one in the UnitPromotions table (which is used for that promotion, which isn't used by any units).
I've tried to give these abilities to the Psi units and the Commando units (Ranger and Doppelganger), but I have no idea if the XML is connected to anything. I've never tested that part.

Also, there is the "is invisible" promotion. I see its for submarines. Could this be changed to the SMAC "cloaking" promotion for all units?

Yes. You can create an Invisibility type, and then set only certain units to be able to see it. That's how submarines work; currently it's the only type of invisibility, but you could easily add more.
 
First off, I have been very remiss the last few days in regards to nuclear warfare and your implementation of the SDI. Previous to this implementation I had been repeatedly commenting (whining?) about the nukes continually raining down once uranium was discovered, and now that you&#8217;ve implemented a solution I haven&#8217;t stated how great this is &#8211; very very nicely done! :goodjob: Now when I consider nuclear warfare I have to take into account who I&#8217;m at war with, and whether each of them has the SDI or not. And when I do launch an Atomic Bomber against a civ which has the SDI, it brings back memories of the opening movie for an old computer game called Deadlock, where a desperate commander literally presses the Big Red Button, launching missiles at his oncoming adversaries: I then have to sit there and wait to see if my bomber gets past the SDI or not, and whether it is going to rescue me from the dire situation I find myself in at that moment.

The XML stub for this is set to true, but it might be overridden by the immobility flag.
I&#8217;ll keep an eye on this to see if Spore Towers are pillaging the squares beneath them or not.

In previous civ games, certain units had the ability to enter the territory of another civilization even if there wasn't an Open Borders or a war; generally, this'd be used for spy units. In Civ5 it's not used, but there's both a <RivalTerritory> entry in the Units table (not used for any existing units) as well as one in the UnitPromotions table (which is used for that promotion, which isn't used by any units).
I've tried to give these abilities to the Psi units and the Commando units (Ranger and Doppelganger), but I have no idea if the XML is connected to anything. I've never tested that part.

I wonder if it would be a method to make a rudimentary Spy in the game: give the unit invisibility and the <RivalTerritory> options, and it could scout enemy terrain, as well as possibly have the ability to pillage tiles (aka sabotage).Problem is would the AIs be able to understand an utilize this unit approrpiately?
Yes. You can create an Invisibility type, and then set only certain units to be able to see it. That's how submarines work; currently it's the only type of invisibility, but you could easily add more.
Would it be a good promotion to give to the Stealth Ship?

Another tactic I&#8217;ve come up with in regards to attenuating the nuclear abilities of nearby civs is to launch suicide squads against the AIs strategic resource deposits of uranium. Say use some drop troops (or Parachutists) to drop onto/ near the Uranium Mine and pillage it, thus denying the AI of building additional nuclear weapons. The AIs don&#8217;t really get the significance of Strategic resources in that they don&#8217;t guard these, whereas a human player is going to learn to place a unit onto the square (and have a worker nearby to immediately fix it if it is damaged) to prevent something of this nature happening to them. Exploit?

D
 
now that you’ve implemented a solution I haven’t stated how great this is – very very nicely done!

Glad you like it. In the next version I'm toning down the cap percentages slightly, to 80/60/40 instead of 90/75/50, so that Atomic Bombs won't be QUITE so pointless once SDI comes out. If it's too much then I can change it back up to the original values, but most of my balancing has been done by eye anyway. And the numbers could change; maybe 80/65/50 or something, if the Planet Buster end is too low.

Now I just need to figure out how to create a text message on the screen (like the "city has been founded" message) without creating a separate popup window.

Problem is would the AIs be able to understand an utilize this unit approrpiately?

If all it did was pillage, then the AI would understand how to use the unit offensively, although it'd probably try using the unit to attack and watch it die. It wouldn't understand how to defend against the unit, by moving detector units around the empire as needed.
If you wanted it to do anything more than pillaging, then no, it wouldn't understand that. For instance, I could easily make a Lua stub that checked at the end of each turn; any Spy units in enemy territory costs that empire 1 gold and 1 beaker, and adds it to your empire. But the AI wouldn't understand that this unit would be best used just inside a border, where it won't get killed but will still get its effect.

Would it be a good promotion to give to the Stealth Ship?

If you mean should we give the Stealth Ship the submarine invisibility, it's always had that. (It's kinda the whole point of the unit.) If you mean create a new type of invisibility for it so that normal submarine detection doesn't work, then I don't think that's a good idea; there just aren't enough countermeasure units in place, so I'd have to figure out which units should be able to detect whatever stealth units I add.

The AIs don’t really get the significance of Strategic resources in that they don’t guard these

This is an ongoing headache for me. Not just that they don't guard them, but that the AI doesn't understand two basic concepts:
1> The First Deposit.
With luxuries and strategics, getting one deposit is critical, but after that it's just not as important. A human player who has more than enough Uranium from a good number of deposits won't need to explicitly guard every one, but if it's your only one then it's critical. The AI just doesn't get that, and that means that if you tried somehow to make the AI guard its strategics, it'd try to guard ALL of them, equally.
The same goes for connecting luxuries. If you've got five cotton in the area then getting one hooked up is important, but the rest are often less important than connecting roads and such.
2> Obsolescence.
In the modern era, there's no reason to be caring about deposits of Iron, because nothing uses them any more (although my use of it for Tanks and Battleships keeps it in the game a bit longer than before). And yet, the AI in a trade deal will value one unit of Uranium exactly as much as one unit of Iron, because both have FLAVOR_OFFENSE=10. I can raise the flavors of the later strategics, to make the AI see them as more valuable than the earlier ones, but that won't reflect the reality well; the AI needs to see the resource as fully valuable right up until it stops being used for anything. You can set a TechObsolete for resources, but I haven't tried using that so I don't know if it's connected to anything.
So if you were to add an AI motivation to protect strategics, it wouldn't understand that some are more critical than others at any given moment.

This is a big part of why I wanted to add the strategic-producing buildings. Not just to help the civs that had no local supplies, but to prevent the AI from being crippled by raids on its strategic deposits.
 
Hello there, I just want to know if your next update will break saves, so I don't waste time on 3 - 5 turn crashes.

BTW: I've got a crash and a gamecore.log reported this, see below:
Spoiler :
Code:
[13426.093] LOAD ERROR: Unit Type not found: UNIT_COMBAT_ENGINEER
[13426.093] LOAD ERROR: Unit Type not found: 
[13426.093] LOAD ERROR: Unit Type not found: UNIT_COLONY_POD
[13426.093] LOAD ERROR: Unit Type not found: 
[13426.093] LOAD ERROR: Unit Type not found: UNIT_EMPATH
[13426.093] LOAD ERROR: Unit Type not found: 
[13426.093] LOAD ERROR: Unit Type not found: UNIT_LASER_INFANTRY
[13426.093] LOAD ERROR: Unit Type not found: 
[13426.093] LOAD ERROR: Unit Type not found: UNIT_MIND_WORMS
[13426.093] LOAD ERROR: Unit Type not found: 
[13426.093] LOAD ERROR: Unit Type not found: UNIT_STEALTH_SHIP
[13426.093] LOAD ERROR: Unit Type not found: 
[13426.093] LOAD ERROR: Unit Type not found: UNIT_PLASMA_ARTILLERY
[13426.093] LOAD ERROR: Unit Type not found: 
[13426.093] LOAD ERROR: Unit Type not found: UNIT_DOPPELGANGER
[13426.093] LOAD ERROR: Unit Type not found: 
[13426.093] LOAD ERROR: Unit Type not found: UNIT_GOLEM
[13426.093] LOAD ERROR: Unit Type not found: 
[13426.093] LOAD ERROR: Unit Type not found: UNIT_SCOUT_POWERSUIT
[13426.093] LOAD ERROR: Unit Type not found: 
[13426.093] LOAD ERROR: Unit Type not found: UNIT_VERTOL
[13426.093] LOAD ERROR: Unit Type not found: 
[13426.093] LOAD ERROR: Unit Type not found: UNIT_SKIMMER
[13426.093] LOAD ERROR: Unit Type not found: 
[13426.093] LOAD ERROR: Unit Type not found: UNIT_ISLE_OF_THE_DEEP
[13426.093] LOAD ERROR: Unit Type not found: 
[13426.093] LOAD ERROR: Unit Type not found: UNIT_NEEDLEJET
[13426.093] LOAD ERROR: Unit Type not found: 
[13426.093] LOAD ERROR: Unit Type not found: UNIT_LEVIATHAN
[13426.093] LOAD ERROR: Unit Type not found: 
[13426.093] LOAD ERROR: Unit Type not found: UNIT_ASSAULT_POWERSUIT
[13426.093] LOAD ERROR: Unit Type not found: 
[13426.093] LOAD ERROR: Unit Type not found: UNIT_PLANET_BUSTER
[13426.093] LOAD ERROR: Unit Type not found: 
[13426.093] LOAD ERROR: Unit Type not found: UNIT_CHIRON_LOCUSTS
[13426.093] LOAD ERROR: Unit Type not found: 
[13426.093] LOAD ERROR: Unit Type not found: UNIT_GRAVTANK
[13426.093] LOAD ERROR: Unit Type not found: 
[13426.093] LOAD ERROR: Unit Type not found: UNIT_MOBILE_SHIELD
[13426.093] LOAD ERROR: Unit Type not found: 
[13426.093] LOAD ERROR: Unit Type not found: UNIT_RANGER
[13426.093] LOAD ERROR: Unit Type not found: 
[13426.093] LOAD ERROR: Unit Type not found: UNIT_TROLL
[13426.093] LOAD ERROR: Unit Type not found: 
[13426.093] LOAD ERROR: Unit Type not found: UNIT_BOLO
[13426.093] LOAD ERROR: Unit Type not found: 
[13426.093] LOAD ERROR: Unit Type not found: UNIT_ORBITAL_ION_CANNON
[13426.093] LOAD ERROR: Unit Type not found: 
[13426.093] LOAD ERROR: Unit Type not found: UNIT_GEOSYNCHRONOUS_SURVEY_POD
 
Back
Top Bottom