FSit

Quick rating

Community listing page, reviews here may not be monitored by the author.

FSit

By rvbsmOwner

No reviews yet

Sit everywhere!

Mod Loaders
Minecraft

About

Description

FSit (Fabric)

⚠️ This project is discontinued at CurseForge and moved to Modrinth

A server-side mod that allows players to sit anywhere!

Partially GSit rework for Fabric.

NOTE:

ride_players: By default, when a player rides another player, their field of view is blocked. Install this mod also on the client to prevent view blocking

Usage

  • Sneak twice looking down to sit down (or to force crawling while crawling);
  • Right-click on stairs, slabs or horizontal logs (lists are configurable);
  • Right-click on a player to start riding him (disabled by default);
  • /sit, /crawl commands;

Client

If the mod is installed on the client, the server will respect the player's configuration. Additionally, players will be able to restrict players from riding them using Social Interactions screen.

For other players without the mod installed, the server configuration will be used.

Client fixes

  • Player mount height
  • Crawling without the above support

Configuration (config/fsit.toml)

Can be modified from the client with Mod Menu and Cloth Config API installed.

Reload config on server with /fsit reload command.

#Do not edit

config_version = 3

[sneak]

#Sit-on-sneak feature

enabled = true

#Minimal pitch to sitting/crawling down

min_angle = 66.0

#Time (ms) between sneaks to sitting/crawling down

delay = 600

[sittable]

#Sit-on-use block feature

enabled = true

#Maximum radius for sit-on-use

radius = 2

#List of block ids (e.g. "oak_log") available to sit

blocks = []

#List of block tags

tags = ["minecraft:slabs", "minecraft:stairs", "minecraft:logs"]

[misc]

[misc.riding]

#Player riding feature

enabled = true

#Maximum radius for start riding player

radius = 2

FSit

Customizable server-side mod that allows players to sit, crawl, and ride each other. Client-side is supported too, it allows players to improve their experience by using client configuration and adding some client-side mod behaviour improvements.

[!NOTE] Inspired by GSit Spigot plugin.

Usage

Having this mod installed on the server is enough, players are not forced to have it to be able to use it.

However, installation on the client will bring some QoL improvements for players using this mod. Such as client configuration, better crawling, and key bindings.

Interacting with blocks

Interact with the topside of the block, that can be sat on, to start sitting on them.

sapling yippie

Controlled with block-interaction.

Interacting with players

Interact with any player to start riding them.

elytra

Control angle difference with riding-minimum-yaw

Sneaking

Double sneak while looking down to sit right away.

Doing the same, but near the hole, will start crawling otherwise. (sneak-crawling)

Minimal pitch and maximum sneak window can be configured with sneak-minimum-pitch and sneak-window accordingly.

Commands

/sit and /crawl commands for corresponding actions are available.

Key bindings (client)

Use key bindings to start sitting (default: RCtrl) or crawling (default: RAlt).

Key bindings have three modes: Hold, Toggle, and Hybrid. Hold and Toggle works the same as Vanilla. Hybrid is an in-between mechanic, that works as Toggle on single-use and as Hold on holding. The Hybrid window between Hold and Toggle can be configured from the Configuration Screen.

Configuration

As was stated before, players can use their own configurations if they have this mod installed on the client. Otherwise, server configuration will be used.

Configuration can be reloaded from the file with /fsit reload.

For clients, configuration can be modified with Mod Menu and YetAnotherConfigLib installed.

Default configuration file

use-server: false
seats-trait: moveable
seats-centered: false
block-interaction: true
block-interaction-ids:
  - '#minecraft:slabs'
  - '#minecraft:stairs'
  - '#minecraft:logs'
  - '#minecraft:fences'
riding-minimum-yaw: 45
sneak-window: 10
sneak-minimum-pitch: 60
sneak-crawling: true
commands:
  root: fsit
  sit: sit
  crawl: crawl
  lay: lay
Options details

use-server

When set to true, forces all players (server) or player (client) to use server configuration.

Enabling this option will ignore client pose updates, leaving only server-to-client synchronization.

seats-trait

Controls sitting behaviour. Possible values: static, attached, moveable.

  • static – does nothing, ignores everything;
  • attached – seats will be discarded if they do not have any supporting block underneath;
  • moveable – seats can be pushed by fluids, pistons, etc. Will start falling without a supporting block.

seats-centered

Place seats in the centre of the block.

block-interaction

Allows sitting by interacting with blocks.

riding-minimum-yaw

When 1..180, allows riding by interacting with players. Setting to 0 disables riding interactions, and 180 removes restriction.

The option controls a difference between players' horizontal facing angle to allow riding by interaction.

block-interaction-ids

List of blocks and block tags that are available to interact with.

sneak-crawling

Starts crawling instead of sitting if there is a hole nearby.

sneak-minimum-pitch

Minimal required player pitch to start registering sneak actions. Where 90 is straight down, and -90 ignores player pitch.

sneak-window

The window in ticks between sneaks to be recognized as double sneak action. Setting to 0 disables sneak actions.

Contributing

Pull requests are welcome.
For major changes, please open an issue first to discuss what you would like to change.

Translations

New or updated translations are more than appreciated, they can be found at src/main/resources/assets/fsit/lang.

Fields with keys *.description.1 are indefinite and can have any number of lines, you are free to create new or remove keys with description.<n> when needed.

Building

The project uses FabricMC and Stonecutter for multi-versioning.

> ./gradlew build

To run a specific version, switch to that version with Stonecutter, and run version configuration provided by IDE, or

> ./gradlew "Set active project to [version]"
> ./gradlew [version]:runClient # or
> ./gradlew [version]:runServer

Publishing is done with publishMods task. Requires MODRINTH_TOKEN environment variable to be provided, otherwise the task will dry-run.

> ./gradlew chiseledPublish

License

This project is licensed under the MIT License.