Skip to content

Settings

Adrian K edited this page May 6, 2026 · 2 revisions

Settings are properties of a block type that can be changed.


They are defined inside a blocks.xml inside the mod folder.
The path to it should therefore look like this \<YOUR MAP>\switchBlocksMod\blocks.xml.

When starting the game in debug mode switch blocks provide a pause menu item that lets you generate this file automatically, assuming it can find the Worldsmith folder structure.
This means the map is started using the compiled files inside the bin folder, compiled from files outside the bin folder, one folder level up. The file then contains all settings for your used block types commented out, or retaining already set settings from before.

Once you have changed settings you may then select the pause menu option to reload the blocks.xml for your changes to apply.
It should be noted that changes are made in the blocks.xml that contains your uncompiled files (where the .png images are, NOT .xnb).


Overview

Auto Basic Countdown Group Jump Sand Sequence Threshold
Duration
DurationOff
Multiplier
LeverDirections
PlatformDirections
ForceSwitch
SaveCarriesOver
SingleUseReset
IsV2
DisableOnLeaving
DefaultActive
Stat
Count
Warn - Count
Warn - Duration
Warn - DisableOn
Warn - DisableOff

Duration

The duration setting changes for how long a state lasts.
The setting supports decimal numbers.
The default duration of the auto and countdown type is 3 seconds.
The default duration of the group and sequence type is 0 seconds. This sets them to be duration agnostic and function entirely based on the player touching and leaving the platforms.

DurationOff

The duration off setting changes for how long the off state lasts. The setting supports decimal numbers.
The default duration of the off state is based on the overall duration.

Multiplier

The multiplier setting changes how fast the animation of drawables on state switch plays.
The setting supports decimal numbers.
The default multiplier is 1. This results in the animation taking half a second to finish.
As the animation starts playing only after the state has switched it is not recommended to set this value lower than the default 1.
This setting is effectively deprecated as the animation curve Stepped exists for cases where the animation should be instant as well as the Multiplier element for drawables to control the speed of scrolling.

LeverDirections

The lever directions setting specifies from which side a lever can be activated from. The settings supports the values Up, Down, Left, and Right.
The values are separated by comma.
The default value is Up, Down, Left, Right (all sides allowed).

PlatformDirections

The platform directions setting specifies from which side a platform can be activated from. The settings supports the values Up, Down, Left, and Right.
The values are separated by comma.
The default value is Up, Down, Left, Right (all sides allowed).

ForceSwitch

The force switch setting disables the safe switching feature. Block types that do not support this feature do not support safe switching and it is the map maker responsibility to not allow for situations that would see the player stuck inside a solid block.
It is never recommended to use this feature. Placing the player inside a solid block prevents block behaviours from running. Using this feature places any all responsibility on the map maker.
The default value is false.

SaveCarriesOver

The save carries over setting allows a save to carry over from a previous playthrough.
The default value is false.

SingleUseReset

The single use reset setting makes it so single use levers are able to be used again once the state switches effectively turning them from single use to normal levers with the difference being that normal levers, as long as they are touched, do not progress the duration, where as a single use lever counts down the duration starting from the first touch.
The default value is false.

IsV2

The IsV2 settings fixes the sand type being able to push the player through ceilings.
As functionality had to be moved around and the GotIB map was already using the flawed version this tag exists to cause no changes in gameplay. Should the map end up using this tag it will be removed and the v2 sand will become the default.
It is highly recommended to use this feature.
The default value is false.

DisableOnLeaving

The disable on leaving setting makes it so, regardless of touch or duration, the platform will disable once left.
The default value is false.

DefaultActive

The default active setting specifies which block group ids are active at the start of the map.
The default value is 1.

Stat

The stat setting specifies the stat the threshold type uses.
The settings supports the values Falls, Jumps, Time, and Session.
The default value is Falls.

Count

The count setting specifies the stat threshold.
The default value for Falls, Jumps, and Session is 1.
Should the stat be Time the default value becomes 60 seconds.
The stat is exclusive, as such setting a threshold of 3 jumps will switch the state on the third jump.

Warn - Count

This is a warn setting, it is placed inside a <Warn> element.
The warn count setting specifies the amount of times the warn sound is played.
The default value is 2.

Warn - Duration

This is a warn setting, it is placed inside a <Warn> element.
The warn duration setting specifies the duration between plays of the warn sound as well as the switch sound.
The setting supports decimal numbers.
The default value is 1 second.

Warn - DisableOn

This is a warn setting, it is placed inside a <Warn> element.
The warn disable on setting specifies whether the warn sounds should not be played during the on state.
The default value is false.

Warn - DisableOff

This is a warn setting, it is placed inside a <Warn> element.
The warn disable off setting specifies whether the warn sounds should not be played during the off state.
The default value is false.


Boolean settings

Boolean settings, that is those that are either true or false, can be provided as a self closing element. This is effectively a short form to provide a true value.
A self closing element is an element that contains no value between two elements, just one element like this <Example />

Element Result
No element false
<Example>false</Example> false
<Example>true</Example> true
<Example /> true

Example

This will be generated by the debug menu option, not used block types excluded.
To uncomment a setting remove <!-- --> surrounding the actual element.
The values inside the setting may not reflect the default are only an example.

<?xml version="1.0" encoding="utf-8"?>
<Blocks>
  <Auto>
    <!-- <Duration>3.0</Duration> -->
    <!-- <DurationOff>3.0</DurationOff> -->
    <!-- <Multiplier>1.0</Multiplier> -->
    <!-- <ForceStateSwitch /> -->
    <Warn>
      <!-- <Count>2</Count> -->
      <!-- <Duration>1.0</Duration> -->
      <!-- <DisableOn /> -->
      <!-- <DisableOff /> -->
    </Warn>
  </Auto>
  <Basic>
    <!-- <Multiplier>1.0</Multiplier> -->
    <!-- <LeverSideDisable>Up, Down, Left, Right</LeverSideDisable> -->
    <!-- <SaveCarriesOver /> -->
  </Basic>
  <Countdown>
    <!-- <Duration>3.0</Duration> -->
    <!-- <Multiplier>1</Multiplier> -->
    <!-- <LeverSideDisable>Up, Down, Left, Right</LeverSideDisable> -->
    <!-- <ForceStateSwitch /> -->
    <!-- <SingleUseReset /> -->
    <Warn>
      <!-- <Count>2</Count> -->
      <!-- <Duration>1.0</Duration> -->
    </Warn>
  </Countdown>
  <Group>
    <!-- <Duration>0</Duration> -->
    <!-- <Multiplier>1.0</Multiplier> -->
    <!-- <LeverSideDisable>Up, Down, Left, Right</LeverSideDisable> -->
    <!-- <PlatformSideDisable>Up, Down, Left, Right</PlatformSideDisable> -->
  </Group>
  <Jump>
    <!-- <Multiplier>1.0</Multiplier> -->
    <!-- <ForceStateSwitch /> -->
  </Jump>
  <Sand>
    <!-- <IsV2 /> -->
    <!-- <Multiplier>1.0</Multiplier> -->
    <!-- <LeverSideDisable>Up, Down, Left, Right</LeverSideDisable> -->
  </Sand>
  <Sequence>
    <!-- <Duration>0.0</Duration> -->
    <!-- <Multiplier>1.0</Multiplier> -->
    <!-- <LeverSideDisable>Up, Down, Left, Right</LeverSideDisable> -->
    <!-- <PlatformSideDisable>Up, Down, Left, Right</PlatformSideDisable> -->
    <!-- <DisableOnLeaving /> -->
    <!-- <DefaultActive>1, 3, 5</DefaultActive> -->
  </Sequence>
  <Threshold>
    <!-- Stats to check for are: Jumps, Falls, Time, Session -->
    <!-- <Stat>Time</Stat> -->
    <!-- <Count>300</Count> -->
    <!-- <Multiplier>1.0</Multiplier> -->
    <!-- <ForceStateSwitch /> -->
  </Threshold>
</Blocks>

Clone this wiki locally