Skip to content

ToniMacaroni/SaberFactory

Repository files navigation

Saber Factory 2
(v3 is in the making)

A highly customizable saber mod for Beat Saber



Mod Download Latest Version
Website SaberFactory.com

To get more content and help with the mod or creation of content
join the the Saber Factory Discord server.

Or if you want to help the project grow:

❤️ Donate

What is Saber Factory?

Simply said: An all-rounder when it comes to sabers.

Combine different saber parts like lego pieces.
Everything is built around customization.
Change the shape, shaders, material properties, textures and more of parts and sabers.

You can use and customize both parts and custom sabers in saber factory

How do I install it

  1. Download the first zip from Here
  2. Unpack it in your Beat Saber directory

I want to create a saber

I highly recommend watching this tutorial.
The unity project can be found here

I have made a map and want it to use a specific saber

You can add a "_customSaber" prop to your beatmap data that tells Saber Factory to use a specific saber for this map like this:

"_customData": {
    "_customSaber": "Plasma Katana"
}

Make sure to use the actual name of the saber not the file name. Best is to look in-game at the saber to see what the actual name is.

I have made a noodle map where the player moves and I want the trails to not stretch

By default if the player moves in a noodle map the trail behaves like a real trail and becomes longer the faster the player moves. Sometimes you might have a different vission for your map or the map is less playable with such a long trail. If you don't know what I'm talking about, take a look at this comparison: https://www.youtube.com/watch?v=UP0SqtMcr1g
You can enable "relative movement of the trail to the player" by using a settable settings in your map like this:

"_difficultyBeatmaps": [
        {
          "_difficulty": "Expert",
          ...
          "_customData": {
            "_requirements": [
              "Chroma",
              "Noodle Extensions"
            ],
            "_settings": {
              "_saberFactory": {
                "_relativeTrailMode": true
              }
            },
          }
        }
      ]

The settings group is _saberFactory and the field is _relativeTrailMode (which can be either true or false)

I made a mod that needs to create some sabers in a song

If you want to create sabers in a song see https://github.com/Auros/SiraUtil#sabers

I made a mod that needs to create some sabers in the menu (or other place after the menu)

If you want to create sabers in the menu (like Custom Menu Pointers does)
you can request the MenuSaberProvider and create sabers with it like this:

public class MyMenuManager : IInitializable
{
    private readonly MenuSaberProvider _menuSaberProvider;

    public MyMenuManager(MenuSaberProvider menuSaberProvider)
    {
        _menuSaberProvider = menuSaberProvider;
    }

    public async void Initialize()
    {
        var myLeftSaber = await _menuSaberProvider.CreateSaber(parent:null, saberType:SaberType.SaberA, color:Color.red, createTrail:true);
    }
}