Type: sinkpoints
Set AWESOME Sink point values for items, understand registration timing, and keep sink scoring separate from Resource Nodes.
This document type runs in the SubsystemMods stage, after all content-generation stages. Its
entries key is entries, and the track: field accepts
Default or Exploration, defaulting to Default.
This one’s simple in shape but strict about timing: it sets how many AWESOME Sink points an item is worth.
type: sinkpointstrack: Default # or Explorationentries: - item: /KDataForge/Gen/MyPack.Gen_MyPack_MySuperIngot points: 8 - item: /Game/FactoryGame/Resource/Parts/IronIngot/Desc_IronIngot.Desc_IronIngot_C points: 100 overridden: 50 # optional a separate "overridden" point value some UI paths readitem:must resolve to anUFGItemDescriptorsubclass. Both the bare generated-content id shortcut (e.g.item: MySuperIngotinstead of the full/KDataForge/Gen/...path, see Generated Content Short Ids) and the bare class-name shortcut work here too (see Targeting → bare class name), though sticking to full paths in a published pack is still the safer habit.points:is a plain integer.overridden:is optional, and it’s only needed if you specifically want a distinct “overridden” points value separate from the base one.- One
sinkpointsdocument builds oneUDataTableand registers it against whichevertrack:you picked. Multiple documents, even across packs, just add more rows to the sink subsystem: they don’t need to be merged into one file.
Many items at once: filter entries
Section titled “Many items at once: filter entries”An entry may replace item: with an ofClass: scope (default /Script/FactoryGame.FGItemDescriptor)
plus the scope filters
(matchName:, matchTag:, where:, …). Every loaded item descriptor class that passes the filters
gets the entry’s points: (and overridden:):
type: sinkpointsentries: - ofClass: /Script/FactoryGame.FGItemDescriptor where: path: mForm in: [RF_LIQUID, RF_GAS] # every fluid and gas: not sinkable points: 0 - ofClass: /Script/FactoryGame.FGItemDescriptor matchName: Desc_Nuclear* # everything nuclear is worth a fixed 500 points: 500Filter entries expand against the descriptor classes loaded when the document applies, and the load
report warns when a filter matched nothing. A later explicit item: row for the same descriptor in
the same document wins, because rows are keyed by class name.
Registration timing and Resource Node boundary
Section titled “Registration timing and Resource Node boundary”KDataForge queues sink point tables during initialization and registers them per world before SML’s
content registry freezes. /kdf reload re-reads and validates the document, but cannot replace a
table inside that already-frozen registry. Restart the session or dedicated server before judging a
sink-point change.
Sink points only control item scoring in the AWESOME Sink. They do not place Resource Nodes, change purity, or grant scanner visibility. See Resources and Resource Nodes for those systems.
Troubleshooting
Section titled “Troubleshooting”- Changed points do not appear: restart the session or dedicated server.
- Points show as 0, or unchanged in-game: check that
item:actually resolved (/kdf reportlists a failed patch if the class path was wrong), and make sure you’re looking at the righttrack:(Defaultvs.Explorationare separate tables). - Sink points for a freshly generated item are part of the combined pack in End-to-End Pack.
- A resource still has no mineable node or scanner entry: Sink scoring is unrelated. Follow the descriptor, world-node, and scanner steps on the Resources page.
