I have a military unit that I want to work like a migrant. Well, you can assign it the resettle ability and it works! Which is cool, except I want this to only work in distant lands. Okay, you can specify an effect on a city if it's in distant lands. You can specify an effect for a unit ability. But the entire resettle ability is behind the curtain in the engine, so it's all or nothing.
I wanted specific resources to get a bonus yield. Easy right? No, because while the effect to do this is in the database, it's not implemented by any civ yet, so it doesn't actually do anything. You can adjust the yields of unassigned resources. You can adjust the yields of assigned resources. You can adjust all resource yields. You can update the database to permanently change a resource yield. You can't actually just modify the ResourceYields value dynamically in the middle of play. Since I can't make this simple modification, because the effect isn't implemented, I settled for lowering the yield bonus and having it just apply universally in distant lands, since the game engine does have a filter for cities whether they're in DL or not.
I want to have new cities found with a free building, I wanted one specific building, but even just any free building would do. Simon Bolivar can do that, except, no his effect can only tell the engine to do that when conquering a city.
I thought, maybe a unit instead of a building? There's an effect to add a unit after the city is conquered. There's a narrative event that adds a unit to a city. The best I can do is create a unit when a policy is researched, or you can spam slotting a policy in and out to get many units (ironically a bug that Spiffing Brit made a video about). There's no "listen for when a city is founded" effect because it hasn't been implemented in engine yet.
I had an idea to have missionary charges do something else, at least add some happiness or something. Well, the Majapahit missionary adds culture, and there's an entire game effect for it with selectable yields and amounts. Great! Problem is, the Peranda yield is culture, and while you can also implement a science yield, no other yields are implemented in engine and they don't work. Worse, Peranda is supposed to do +25 culture and that's the database value the game file loads in, but actually it will only give 20 culture, or if you do science, 20 science. The amount modifier doesn't actually change anything, and in fact the game text and civolopedia feature is not as advertised.
There's a visual updater which they use to recycle unit model assets for new civs. It takes "kind" values, but that's just a shell. It doesn't actually let you remap constructible models, just units.
If anyone has some workaround on any of these issues, I'd love to hear it just out of morbid curiosity at this point having worked a few hours trying to solve them. However, I'm mostly just expressing my frustration. I know you can't expect much with limited mod tools, but it's also that I encounter errors a lot of the time in the game files (in Bulgaria's files, one of the tags was autocompleted as "BUGANDA" instead of "BULGARIA", for example). It seems like every single unit civ abilities is hard coded into the engine, instead of just being scripted around simple and common game effects. Like, you could make city events: conquest, founding, new building. Just put a set of tags tied to listeners for all of that. Then add a set of tags for basic yield and value modifications. Then, when they make a new civ with a new ability, it's extremely easy to script.
This kind of simplicity would allow us to do a lot too. For instance, I want to make a civ that let's you "dock" an army commander on a friendly city-state and turn it into a city, but you can "undock" him and it reverts to city-state behavior. The game can already convert a city into a city-state when an independent power conquers it, so the basic value switching needed is there. It's just all behind the curtain.
I had a revelation that they're charging $30 for 4 civs, each with relatively minor gameplay modifications. While you are getting 2 leaders and a few building models, a LOT is reused. We even had an issue with unique unit models with GB and the revenge. So, if one civ adds in "only one city" and a new leader adds it "free building when you conquer", then they are also selling new modibility options as well, instead of them being available upfront.
Think about it, if we could dynamically alter these values, then how interesting could these new civs be? We would have already tried every recombination of features, and the devs would have to add more value into their product - like more complete and interesting narrative storylines, better unit models, or genuinely novel game mechanics. I mean, I'd be fine if the DLCs became little more than asset packs, new toys to play with.
If modibility is limited, then the value of new game effects in new DLC goes up. I have to say it.
Regardless, the bones of Civ 7 seem very weak to me. I don't understand all these half-implementations and how if they one day have a civ that gets +5 science on sugar dates, it will have a game effect that does that, maybe does +5 culture, and nothing else. The bare minimum, rushed implementation, behind the curtain so people can modify it.
Anyway, I hope to be corrected. I might be missing something here about how to implement game mechanics.
I wanted specific resources to get a bonus yield. Easy right? No, because while the effect to do this is in the database, it's not implemented by any civ yet, so it doesn't actually do anything. You can adjust the yields of unassigned resources. You can adjust the yields of assigned resources. You can adjust all resource yields. You can update the database to permanently change a resource yield. You can't actually just modify the ResourceYields value dynamically in the middle of play. Since I can't make this simple modification, because the effect isn't implemented, I settled for lowering the yield bonus and having it just apply universally in distant lands, since the game engine does have a filter for cities whether they're in DL or not.
I want to have new cities found with a free building, I wanted one specific building, but even just any free building would do. Simon Bolivar can do that, except, no his effect can only tell the engine to do that when conquering a city.
I thought, maybe a unit instead of a building? There's an effect to add a unit after the city is conquered. There's a narrative event that adds a unit to a city. The best I can do is create a unit when a policy is researched, or you can spam slotting a policy in and out to get many units (ironically a bug that Spiffing Brit made a video about). There's no "listen for when a city is founded" effect because it hasn't been implemented in engine yet.
I had an idea to have missionary charges do something else, at least add some happiness or something. Well, the Majapahit missionary adds culture, and there's an entire game effect for it with selectable yields and amounts. Great! Problem is, the Peranda yield is culture, and while you can also implement a science yield, no other yields are implemented in engine and they don't work. Worse, Peranda is supposed to do +25 culture and that's the database value the game file loads in, but actually it will only give 20 culture, or if you do science, 20 science. The amount modifier doesn't actually change anything, and in fact the game text and civolopedia feature is not as advertised.
There's a visual updater which they use to recycle unit model assets for new civs. It takes "kind" values, but that's just a shell. It doesn't actually let you remap constructible models, just units.
If anyone has some workaround on any of these issues, I'd love to hear it just out of morbid curiosity at this point having worked a few hours trying to solve them. However, I'm mostly just expressing my frustration. I know you can't expect much with limited mod tools, but it's also that I encounter errors a lot of the time in the game files (in Bulgaria's files, one of the tags was autocompleted as "BUGANDA" instead of "BULGARIA", for example). It seems like every single unit civ abilities is hard coded into the engine, instead of just being scripted around simple and common game effects. Like, you could make city events: conquest, founding, new building. Just put a set of tags tied to listeners for all of that. Then add a set of tags for basic yield and value modifications. Then, when they make a new civ with a new ability, it's extremely easy to script.
This kind of simplicity would allow us to do a lot too. For instance, I want to make a civ that let's you "dock" an army commander on a friendly city-state and turn it into a city, but you can "undock" him and it reverts to city-state behavior. The game can already convert a city into a city-state when an independent power conquers it, so the basic value switching needed is there. It's just all behind the curtain.
I had a revelation that they're charging $30 for 4 civs, each with relatively minor gameplay modifications. While you are getting 2 leaders and a few building models, a LOT is reused. We even had an issue with unique unit models with GB and the revenge. So, if one civ adds in "only one city" and a new leader adds it "free building when you conquer", then they are also selling new modibility options as well, instead of them being available upfront.
Think about it, if we could dynamically alter these values, then how interesting could these new civs be? We would have already tried every recombination of features, and the devs would have to add more value into their product - like more complete and interesting narrative storylines, better unit models, or genuinely novel game mechanics. I mean, I'd be fine if the DLCs became little more than asset packs, new toys to play with.
If modibility is limited, then the value of new game effects in new DLC goes up. I have to say it.
Regardless, the bones of Civ 7 seem very weak to me. I don't understand all these half-implementations and how if they one day have a civ that gets +5 science on sugar dates, it will have a game effect that does that, maybe does +5 culture, and nothing else. The bare minimum, rushed implementation, behind the curtain so people can modify it.
Anyway, I hope to be corrected. I might be missing something here about how to implement game mechanics.