FileDBReader fctohex -f <file> -i FcFile.xml -d -y
That way, you’ll be able to read everything in well-formed xml in a text editor.
Dummy: A fixed Position and RotationDummyGroup : A collection of Dummies and SubGroupsFeedback Definition or Actor : An Actor that can have multiple defined behaviors. It can pick either one or no Behavior to play.Spline: A Curve in 3D Space.Actor Sequence : Single Behavior of an Actor, consisting of Intro, Running and Outro. During an Actor Sequence, the Actor plays one or multiple Actions, using Dummies for Positioning.Action : A Single Action like “walk from A to B” or “Fadeout”Object Sequence : The State of the entire Game Object.Sequence : A Sequence as used in a CFG file.Pay attention to the different types of Sequences. all of them are important, but all of them are fundamentally different things.
Here is the corresponding Dataset, as Object Sequences have a bit of relevance in the assets as well:
<DataSet>
<Name>FeedbackSequenceType</Name>
<Id>262</Id>
<Items>
<Item>
<Name>Default</Name>
<Id>0</Id>
</Item>
<Item>
<Name>Work</Name>
<Id>1</Id>
</Item>
<Item>
<Name>LowProductivity</Name>
<Id>2</Id>
</Item>
<Item>
<Name>Cheer</Name>
<Id>3</Id>
</Item>
<Item>
<Name>Boosted</Name>
<Id>4</Id>
</Item>
<Item>
<Name>Riot</Name>
<Id>5</Id>
</Item>
<Item>
<Name>RiotSpecial01</Name>
<Id>6</Id>
</Item>
<Item>
<Name>RiotSpecial02</Name>
<Id>7</Id>
</Item>
<Item>
<Name>RiotSpecial03</Name>
<Id>8</Id>
</Item>
</Items>
</DataSet>
Default and Work. The Game autoplays them. Default by, well, default (idle), and Work if an Objects Factory Property has a productivity greater than 0.Other Object Sequences can be activated by ActionStartObjectSequence within triggers / quests in the assets.xml
ValidSequenceIDs in the FC Files FeedbackDefinition next to FeedbackConfigs (0 = default is always supported, whether it’s specified here or not)An Actor decides for himself which Object Sequences he supports. This is done using FeedbackLoops in the Actors/Feedback Definitions settings. Each Key, aka k, forms a pair with the following Value, aka v.
k is an Id in the Dataset FeedbackSequenceType above.v points to the index of the Sequence in the Actors SequenceDefinitions (there, each top-level <i> represents a Sequence)k and v are index based. The first k relates to the first v, the second k to the second v and so on. It’s totally valid to first write all k’s, then all v’s, as long as they are in order.
Take a look at these FeedbackLoops
<FeedbackLoops>
<k>0</k>
<v>0</v>
<k>1</k>
<v>0</v>
</FeedbackLoops>
Default, plays v=0, meaning the first Sequence of the Actor. k=1, so Work, plays the same first sequence.ValidSequenceIDs. If an Actor only applies when Work is active, you just set:<FeedbackLoops>
<k>1</k>
<v>0</v>
</FeedbackLoops>
The main DummyGroup for the entire object. Every Dummy that the Object can use is contained in here.
Dummy_0, Dummy1, Dummy2 and so on.Dummy_0, Dummy_1, Dummy_3. If you have a gap like this, all dummies after the gap, in this case Dummy_3, won’t be recognized by the game, and their orientation and position are lost. The objects will still spawn as there is a dummy present, but they spawn at the Object Center.FireDummy with Dummies FireDummy_0, FireDummy_1 and so on is used for applying Flames when an Object is burning. This is also used to add Riot and Festival banners, as well as Illness Smog.feedback_door with Dummies feedback_door_0, feedback_door_1 and so on is used for telling Dynamic Feedback (different type of feedback, see spoiler below) where the doors are on this building.bird_land with Dummies bird_land_0, bird_land_1 is used for telling birds where to land.
Dynamic Feedback does pathfinding between different buildings and travels from one building to another. For that, they need to know where the doors are.
/AssetVariationList/GuidVariationList. This contains CDATA of tuples of a
Inhabitant templated Asset and0). -1 is random. This way you can force a certain variation.<GuidVariationList>CDATA[101878 -1 101879 -1 101880 -1 101872 -1 101873 -1 101874 -1 100903 -1 100904 -1 100905 -1]</GuidVariationList>`
Actors also have a few more settings
0, feedback still completes its current play count or walking path; they do not vanish instantly)0)Sequence Actions that are played in order of appearance.