Satisfactory OST Folder
config setting. In that folder, create five subfolders: "all", "day", "morning", "night", and "evening". Place the various tracks into one or more of the folders to categorize them, and the mod will select from them at the appropriate times of day. The ogg filetype is the only supported by default, but with the Not Enough Codecs mod, you can also use MP3 and .flac audio formats (though the latter will require a 1.7.10 backport of newer versions, available here).
Reika/Satisforestry_Files
in the config folder.
example
, ores
, resources
, fluids
, doggo
, and recipes
. The first of these simply includes a sample value of each kind of prototypes (consisting of the combined content of the default values for the other three files), and is not meant to be edited. The other five files define the types and amounts of ores that will spawn within the biome and where they may spawn, what the resource and fracking nodes produce and how they produce it, the random items lizard doggos can find and under what conditions, and the alternate recipes that Satisforestry will add.
type
, only two tags are required. The first is the ore block definition, using either a single string value for block
or a list of strings for blocks
, for defining ore entries with a single or multiple ore blocks respectively. The second tag, spawnLocations
, defines which of the predetermined locations where ore clusters may appear can select this ore entry and what modifiers to apply on the generation of this ore in this location. This tag is a list of tables, each of which defines three child values:Definition Key | Description | Default Value | Min Value | Max Value |
---|---|---|---|---|
maxSize | Maximum cluster size (layers deep - not block count) (Optional) | 4 | 1 | 4 |
sizeScale | Overall size multiplier (Optional) | 1.0 | 0.0 | Any |
spawnWeight | Weighted Random spawn weight | 10 | 0 | Any |
Definition Key | Description | Default Value | Min Value | Max Value |
---|---|---|---|---|
displayName | Resource type display name | |||
renderColor | Node render color | 0xffffff | ||
spawnWeight | Weighted Random spawn weight | 10 | 0 | Any |
speedFactor | Production speed factor (Optional) | 1 | >0 | Any |
effects | Ambient AoE effects around the node (Optional) | |||
outputItems | The yieldable items (weighted random) | |||
key | Item definition | |||
minimumPurity | Minimum node purity level to spawn this item | |||
weight | Weighted Random spawn weight | 10 | 0 | Any |
minCount | Min yield (item count) per harvest cycle | 1 | 1 | maxCount |
maxCount | Max yield (item count) per harvest cycle | 1 | minCount | 64 |
peacefulScale | Yield Multiplier on Peaceful Mode (Optional) | 1 | 0 | 1 |
manualAmountModifier | Yield Multiplier for manual mining (Optional) | 1 | 0 | 1 |
manualWeightModifier | Weight Multiplier for manual mining (Optional) | 1 | 0 | 1 |
weightModifiers | Weight modifiers by purity level (Optional): | |||
IMPURE | Weight scale for impure (worst) level | 1 | 0 | Any |
NORMAL | Weight scale for normal level | 1 | 0 | Any |
PURE | Weight scale for pure (best) level | 1 | 0 | Any |
amountModifiers | Yield modifiers by purity level (Optional): | |||
IMPURE | Amount scale for impure (worst) level | 1 | 0 | Any |
NORMAL | Amount scale for normal level | 1 | 0 | Any |
PURE | Amount scale for pure (best) level | 1 | 0 | Any |
purityLevels | Purity level distribution (weighted random) | |||
IMPURE | Spawn weight for impure (worst) level | 10 | 0 | Any |
NORMAL | Spawn weight for normal level | 10 | 0 | Any |
PURE | Spawn weight for pure (best) level | 10 | 0 | Any |
Definition Key | Description | Default Value | Min Value | Max Value |
---|---|---|---|---|
renderColor | Node render color | 0xffffff | ||
spawnWeight | Weighted Random spawn weight | 10 | 0 | Any |
glowAtNight | Whether to glow in the dark | false | ||
effects | Ambient AoE effects around the node (Optional) | |||
outputFluids | The fluid output parameters | |||
key | Fluid name | |||
minAmount | Min yield (mB) per harvest cycle | 1 | 1 | maxAmount |
maxAmount | Max yield (mB) per harvest cycle | 1 | minAmount | Any |
rounding | What multiple to round randomized production values to (Optional) | 100 | 1 | 1000 |
peacefulScale | Yield Multiplier on Peaceful Mode (Optional) | 1 | 0 | 1 |
amountModifiers | Yield modifiers by purity level (Optional): | |||
IMPURE | Amount scale for impure (worst) level | 1 | 0 | Any |
NORMAL | Amount scale for normal level | 1 | 0 | Any |
PURE | Amount scale for pure (best) level | 1 | 0 | Any |
purityLevels | Purity level distribution (weighted random) | |||
IMPURE | Spawn weight for impure (worst) level | 10 | 0 | Any |
NORMAL | Spawn weight for normal level | 10 | 0 | Any |
PURE | Spawn weight for pure (best) level | 10 | 0 | Any |
maxSubnodes | Extraction point count limit | 8 | 1 | 8 |
inputFluids | The required input fluid (Optional) | |||
key | Fluid name | |||
amount | Required amount (mB) per harvest cycle | 1 | 1 | 1000 |
effectType
parameter, which then controls what other parameters are necessary.Effect Key | Description | Required parameters | Parameter descriptions |
---|---|---|---|
damage | Simple direct damage | ||
amount | Damage dealt per cycle | ||
rate | Ticks between cycles | ||
potion | Apply potion effect | ||
potionID | Potion effect ID | ||
level | Effect level | ||
reflective | Reflective invocation of any MC/mod java method | ||
class | Qualified class name containing method | ||
method | Method name | ||
args | Method arguments (see below) | ||
instance | Owner instance | ||
custom | API-added code effect | ||
effectName | Registered effect name (see below) |
static
) the instance object on which to call it. Method arguments are specified as a list of method argument IDs, while the instance - if any - is a single value. The available options for arguments are:
Argument Type ID Key | Description |
---|---|
int(VALUE) | An integer literal (VALUE) |
float(VALUE) | A float literal (VALUE) |
boolean(VALUE) | A boolean literal (VALUE) |
string(VALUE) | A string literal (VALUE) |
player | The nearby player entity |
world | The world the player and node are in |
x | The player's X position (rounded to the nearest block) |
y | The player's Y position (rounded to the nearest block) |
z | The player's Z position (rounded to the nearest block) |
tile | The node tile entity |
NodeEffectCallback
interface, and register it with registerCustomNodeEffect(String name, NodeEffectCallback eff)
in the API's resourceNodeHandler
access point. The method apply(TileEntity node, EntityPlayer ep)
is called every tick for every player near the node with this effect, and you can perform any arbitrary effect you desire.
findableItems
, which is a list of subblocks, each corresponding to a given findable item, defining the appropriate values:Definition Key | Description | Default Value | Min Value | Max Value |
---|---|---|---|---|
key | Item Definition | |||
nbt | NBT tag definition (Optional) | |||
minCount | Minimum item count per fetch cycle | 1 | 1 | maxCount |
maxCount | Maximum item count per fetch cycle | 1 | minCount | 64 |
weight | Weighted Random spawn weight | 10 | 0 | Any |
weightFactors | Conditionally-applied multipliers to weight (Optional) | |||
check | Condition identifier | |||
value | Value to check condition against | |||
factor | Multiplier if check succeeds | 0.0 | Any | |
limits | Requirements to allow this item to be found (Optional) | |||
check | Condition identifier | |||
value | Value to check condition against |
Check ID Key | Description |
---|---|
is_night | Is it currently nighttime? |
biome_id | Is the doggo is currently in this biome ID? |
health | Is the doggo health at least this amount (fraction out of 1)? |
min_y | Is the doggo at or above this Y level? |
max_y | Is the doggo at or below this Y level? |
is_peaceful | Is the difficulty on "Peaceful" mode? |
has_sky | Can the doggo see the sky right now? |
Definition Key | Description | Default Value | Min Value | Max Value |
---|---|---|---|---|
displayName | Display name to use instead of the output item name (Optional) | |||
spawnWeight | Weighted Random spawn weight | 10 | 0 | Any |
recipe | Recipe definition | |||
output | Recipe definition | |||
item | Output item type (and possibly count) | |||
nbt | NBT tags to put on the output (Optional) | |||
shaped | Whether to used a shaped or shapeless recipe | |||
input_top | The top row of the crafting grid. Use null for empty. | |||
input_middle | The middle row of the crafting grid. Use null for empty. | |||
input_bottom | The bottom row of the crafting grid. Use null for empty. | |||
requiredPower | Required power input to unlock a crash site with this recipe (Optional) | |||
format | Power type | Options: RF, EU, ROTARYCRAFT | ||
amount | Required per-tick power flow rate | 0 | Any | |
time | How long to require sustaining this power amount | 0 | Any | |
timeUnit | What unit the above value is in. (Optional) | SECOND | Options: TICK, SECOND, MINUTE, HOUR, DAY | |
requiredItem | Required items to unlock a crash site with this recipe (Optional) | |||
item | Required item type and count | |||
nbt | NBT tags to require on the input (Optional) |
-DragonAPI_DecoratorStackLimit=N
, where N is the new limit (the default value is 250). Note that this may cause StackOverflowError crashes during worldgen, but this can be avoided by adding an additional JVM argument -Xss=A
to allocate more stack memory, where A is the amount of memory allocated to each thread's stack (using the same format as -Xmx
arguments, eg -Xss=4M
will allocate 4MB). Be careful not to set that allocation too large; this limit is per-thread and from the native (ie non-heap) pool and so can quickly and dramatically increase the JVM's RAM usage, often to the point of exhausting system resources or causing the game to lock up. A few MB is a good guideline as a safe limit, but you should experiment to see how much is strictly necessary for your use case.