[NFP] Need help creating a percent modifier for building yield.

Spencer Larsen

Chieftain
Joined
Aug 6, 2021
Messages
1
I am attempting to add a percent modifier to yields from a building, however while it loads into a game fine, it isnt applying. Can anyone let me know what I'm missing here?

INSERT INTO Modifiers
(ModifierId, ModifierType, RunOnce, Permanent, OwnerRequirementSetId, SubjectRequirementSetId)
VALUES
('BUILDING_ASHSTATUE_FAITH', 'MODIFIER_SINGLE_CITY_ADJUST_CITY_YIELD_MODIFIER', 0, 0, NULL, NULL),
('BUILDING_ASHSTATUE_CULTURE', 'MODIFIER_SINGLE_CITY_ADJUST_CITY_YIELD_MODIFIER', 0, 0, NULL, NULL),
('BUILDING_ASHSTATUE_PRODUCTION', 'MODIFIER_SINGLE_CITY_ADJUST_CITY_YIELD_MODIFIER', 0, 0, NULL, NULL),
('BUILDING_ASHSTATUE_GOLD', 'MODIFIER_SINGLE_CITY_ADJUST_CITY_YIELD_MODIFIER', 0, 0, NULL, NULL),
('BUILDING_ASHSTATUE_FOOD', 'MODIFIER_SINGLE_CITY_ADJUST_CITY_YIELD_MODIFIER', 0, 0, NULL, NULL),
('BUILDING_ASHSTATUE_SCIENCE', 'MODIFIER_SINGLE_CITY_ADJUST_CITY_YIELD_MODIFIER', 0, 0, NULL, NULL);

INSERT INTO ModifierArguments (ModifierId, Name, Type, Value, Extra, SecondExtra)
VALUES
('BUILDING_ASHSTATUE_FAITH', 'YieldType', 'YIELD_FAITH', NULL, NULL),
('BUILDING_ASHSTATUE_FAITH', 'Amount', '30', NULL, NULL),
('BUILDING_ASHSTATUE_CULTURE', 'YieldType', 'YIELD_CULTURE', NULL, NULL),
('BUILDING_ASHSTATUE_CULTURE', 'Amount', '30', NULL, NULL),
('BUILDING_ASHSTATUE_PRODUCTION', 'YieldType', 'YIELD_PRODUCTION', NULL, NULL),
('BUILDING_ASHSTATUE_PRODUCTION', 'Amount', '30', NULL, NULL),
('BUILDING_ASHSTATUE_GOLD', 'YieldType', 'YIELD_GOLD', NULL, NULL),
('BUILDING_ASHSTATUE_GOLD', 'Amount', '30', NULL, NULL),
('BUILDING_ASHSTATUE_FOOD', 'YieldType', 'YIELD_FOOD', NULL, NULL),
('BUILDING_ASHSTATUE_FOOD', 'Amount', '30', NULL, NULL),
('BUILDING_ASHSTATUE_SCIENCE', 'YieldType', 'YIELD_SCIENCE', NULL, NULL),
('BUILDING_ASHSTATUE_SCIENCE', 'Amount', '30', NULL, NULL) ;


INSERT INTO BuildingModifiers (BuildingType, ModifierId)
VALUES
('BUILDING_ASHSTATUE_GOOD', 'BUILDING_ASHSTATUE_FAITH'),
('BUILDING_ASHSTATUE_GOOD', 'BUILDING_ASHSTATUE_CULTURE'),
('BUILDING_ASHSTATUE_GOOD', 'BUILDING_ASHSTATUE_PRODUCTION'),
('BUILDING_ASHSTATUE_GOOD', 'BUILDING_ASHSTATUE_GOLD'),
('BUILDING_ASHSTATUE_GOOD', 'BUILDING_ASHSTATUE_FOOD'),
('BUILDING_ASHSTATUE_GOOD', 'BUILDING_ASHSTATUE_SCIENCE') ;

I'm basically just copying the format from another mod that had a building with a % yield modifier so I really am pretty dumb in terms of knowing whats going on, so the problem may be pretty obvious.

Thanks for your help!
 
Syntax error here
Code:
INSERT INTO ModifierArguments (ModifierId, Name, Type, Value, Extra, SecondExtra)
VALUES
('BUILDING_ASHSTATUE_FAITH', 'YieldType', 'YIELD_FAITH', NULL, NULL),

.... etc
You are telling the game you are going to supply data for six columns, but you are only giving argument data for five columns.

You need to eliminate the "Type" column here because you are not providing any information for it
Code:
INSERT INTO ModifierArguments (ModifierId, Name, Type, Value, Extra, SecondExtra)
This syntax error will cause the game to abort reading anything more at that point within the SQL file, so it never gets to the Insert for table BuildingModifiers

Database.log is your friend. Database.log would have been reporting an error message for this mistake.
 
Top Bottom