Kylo Ren Crossguard Blades Font Install Help

Hello, I just got Kylo Rens proffie saber and I have no idea how to make the crossguard blades work with my config, because so far only the main blade works.

I made this font in Fetts style library and then went and made the secondary blades font aswell, just dont know how to put them in my config file. Could you please help me with it? Thank you! (Also sorry english is not my first language)

{ "Bank01", "tracks/Ahsoka.wav",
/* copyright Fett263 KyloRen (Primary Blade) OS6 Style
https://fett263.com/fett263-proffieOS6-style-library.html#KyloRen
OS6.7 v4.016
Single Style
Base Style: Kylo Ren Unstable (Supreme Leader)

Base Color: Rgb<255,0,0> (0)

--Effects Included--
Ignition Effect: Standard Ignition
Retraction Effect: Standard Retraction
Lockup Effect: Intensity Lockup V1, Begin Effect: Real Clash, End Effect: Full Blade Absorb
LightningBlock Effect: Responsive Lightning Block
Drag Effect: Intensity Sparking Drag
Melt Effect: Intensity Melt
Blast Effect: Blast Wave (Random)
Clash Effect: Real Clash V1
*/
StylePtr<Layers<StripesX<Int<1500>,Scale<SlowNoise<Int<2500>>,Int<-3000>,Int<-5000>>,RgbArg<BASE_COLOR_ARG,Rgb<255,0,0>>,Mix<Int<10280>,Black,RgbArg<BASE_COLOR_ARG,Rgb<255,0,0>>>,RgbArg<BASE_COLOR_ARG,Rgb<255,0,0>>,Mix<Int<2570>,Black,RgbArg<BASE_COLOR_ARG,Rgb<255,0,0>>>,RgbArg<BASE_COLOR_ARG,Rgb<255,0,0>>>,TransitionEffectL<TrWaveX<RgbArg<BLAST_COLOR_ARG,Rgb<255,255,255>>,Scale<EffectRandomF<EFFECT_BLAST>,Int<100>,Int<400>>,Int<100>,Scale<EffectPosition<EFFECT_BLAST>,Int<100>,Int<400>>,Scale<EffectPosition<EFFECT_BLAST>,Int<28000>,Int<8000>>>,EFFECT_BLAST>,Mix<IsLessThan<ClashImpactF<>,Int<26000>>,TransitionEffectL<TrConcat<TrInstant,AlphaL<RgbArg<CLASH_COLOR_ARG,Rgb<255,255,255>>,Bump<Scale<BladeAngle<>,Scale<BladeAngle<0,16000>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<-12000>>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<10000>>>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<-10000>>>,Scale<ClashImpactF<>,Int<12000>,Int<60000>>>>,TrFadeX<Scale<ClashImpactF<>,Int<200>,Int<400>>>>,EFFECT_CLASH>,TransitionEffectL<TrWaveX<RgbArg<CLASH_COLOR_ARG,Rgb<255,255,255>>,Scale<ClashImpactF<>,Int<100>,Int<400>>,Int<100>,Scale<ClashImpactF<>,Int<100>,Int<400>>,Scale<BladeAngle<>,Scale<BladeAngle<0,16000>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<-12000>>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<10000>>>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<-10000>>>>,EFFECT_CLASH>>,LockupTrL<TransitionEffect<AlphaMixL<Bump<Scale<BladeAngle<>,Scale<BladeAngle<0,16000>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<-12000>>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<10000>>>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<-10000>>>,Scale<SwingSpeed<100>,Int<14000>,Int<18000>>>,BrownNoiseFlickerL<RgbArg<LOCKUP_COLOR_ARG,Rgb<255,255,255>>,Int<200>>,StripesX<Int<1800>,Scale<NoisySoundLevel,Int<-3500>,Int<-5000>>,Mix<Int<6425>,Black,RgbArg<LOCKUP_COLOR_ARG,Rgb<255,255,255>>>,RgbArg<LOCKUP_COLOR_ARG,Rgb<255,255,255>>,Mix<Int<12850>,Black,RgbArg<LOCKUP_COLOR_ARG,Rgb<255,255,255>>>>>,AlphaL<AudioFlicker<RgbArg<LOCKUP_COLOR_ARG,Rgb<255,255,255>>,Mix<Int<10280>,Black,RgbArg<LOCKUP_COLOR_ARG,Rgb<255,255,255>>>>,Bump<Scale<BladeAngle<>,Scale<BladeAngle<0,16000>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<-12000>>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<10000>>>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<-10000>>>,Int<13000>>>,TrJoin<TrDelay<8000>,TrInstant>,TrFade<3000>,EFFECT_LOCKUP_BEGIN>,TrConcat<TrJoin<TrDelay<50>,TrInstant>,Mix<IsLessThan<ClashImpactF<>,Int<26000>>,RgbArg<LOCKUP_COLOR_ARG,Rgb<255,255,255>>,AlphaL<RgbArg<LOCKUP_COLOR_ARG,Rgb<255,255,255>>,Bump<Scale<BladeAngle<>,Scale<BladeAngle<0,16000>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<-12000>>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<10000>>>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<-10000>>>,Scale<ClashImpactF<>,Int<20000>,Int<60000>>>>>,TrFade<300>>,TrConcat<TrInstant,RgbArg<LOCKUP_COLOR_ARG,Rgb<255,255,255>>,TrFade<400>>,SaberBase::LOCKUP_NORMAL>,ResponsiveLightningBlockL<Strobe<RgbArg<LB_COLOR_ARG,Rgb<255,255,255>>,AudioFlicker<RgbArg<LB_COLOR_ARG,Rgb<255,255,255>>,Blue>,50,1>,TrConcat<TrInstant,AlphaL<RgbArg<LB_COLOR_ARG,Rgb<255,255,255>>,Bump<Int<12000>,Int<18000>>>,TrFade<200>>,TrConcat<TrInstant,HumpFlickerL<AlphaL<RgbArg<LB_COLOR_ARG,Rgb<255,255,255>>,Int<16000>>,30>,TrSmoothFade<600>>>,LockupTrL<AlphaL<RandomPerLEDFlickerL<RgbArg<DRAG_COLOR_ARG,Rgb<255,255,255>>>,SmoothStep<IntArg<DRAG_SIZE_ARG,28000>,Int<3000>>>,TrConcat<TrJoin<TrDelay<4000>,TrWipeIn<200>>,AlphaL<BrownNoiseFlickerL<RgbArg<DRAG_COLOR_ARG,Rgb<255,255,255>>,Int<300>>,SmoothStep<IntArg<DRAG_SIZE_ARG,28000>,Int<3000>>>,TrFade<4000>>,TrFade<300>,SaberBase::LOCKUP_DRAG>,LockupTrL<AlphaL<Remap<Scale<RampF,Int<65536>,Int<0>>,StaticFire<Mix<TwistAngle<>,RgbArg<STAB_COLOR_ARG,Rgb<255,24,0>>,RotateColorsX<Int<3000>,RgbArg<STAB_COLOR_ARG,Rgb<255,24,0>>>>,Mix<TwistAngle<>,RotateColorsX<Int<3000>,RgbArg<STAB_COLOR_ARG,Rgb<255,24,0>>>,RotateColorsX<Int<3000>,Mix<Int<12000>,Black,RgbArg<STAB_COLOR_ARG,Rgb<255,24,0>>>>>,0,3,5,3000,10>>,SmoothStep<IntArg<MELT_SIZE_ARG,28000>,Int<4000>>>,TrConcat<TrWipeIn<100>,AlphaL<RgbArg<STAB_COLOR_ARG,Rgb<255,24,0>>,SmoothStep<IntArg<MELT_SIZE_ARG,28000>,Int<4000>>>,TrJoin<TrDelay<4000>,TrFade<300>>,AlphaL<Mix<TwistAngle<>,RgbArg<STAB_COLOR_ARG,Rgb<255,24,0>>,RotateColorsX<Int<3000>,RgbArg<STAB_COLOR_ARG,Rgb<255,24,0>>>>,SmoothStep<IntArg<MELT_SIZE_ARG,28000>,Int<4000>>>,TrFade<4000>>,TrWipe<200>,SaberBase::LOCKUP_MELT>,InOutTrL<TrWipeX<IgnitionTime<300>>,TrWipeInX<RetractionTime<0>>,Black>>>()},


/* copyright Fett263 KyloRen (Quillion / Secondary Blade) OS6 Style
https://fett263.com/fett263-proffieOS6-style-library.html#KyloRen
OS6.7 v4.016
Single Style
Base Style: Kylo Ren Unstable (Supreme Leader)

Base Color: Rgb<255,0,0> (0)

--Effects Included--
Ignition Delay: Standard Delay
Ignition Effect: Standard Ignition
Retraction Effect: Standard Retraction
*/
StylePtr<IgnitionDelayX<Int<500>,Layers<StripesX<Int<1500>,Scale<SlowNoise<Int<2500>>,Int<-3000>,Int<-5000>>,RgbArg<BASE_COLOR_ARG,Rgb<255,0,0>>,Mix<Int<10280>,Black,RgbArg<BASE_COLOR_ARG,Rgb<255,0,0>>>,RgbArg<BASE_COLOR_ARG,Rgb<255,0,0>>,Mix<Int<2570>,Black,RgbArg<BASE_COLOR_ARG,Rgb<255,0,0>>>,RgbArg<BASE_COLOR_ARG,Rgb<255,0,0>>>,InOutTrL<TrWipeX<IgnitionTime<300>>,TrWipeInX<RetractionTime<0>>,Black>>>>(),
StylePtr<IgnitionDelayX<Int<500>,Layers<StripesX<Int<1500>,Scale<SlowNoise<Int<2500>>,Int<-3000>,Int<-5000>>,RgbArg<BASE_COLOR_ARG,Rgb<255,0,0>>,Mix<Int<10280>,Black,RgbArg<BASE_COLOR_ARG,Rgb<255,0,0>>>,RgbArg<BASE_COLOR_ARG,Rgb<255,0,0>>,Mix<Int<2570>,Black,RgbArg<BASE_COLOR_ARG,Rgb<255,0,0>>>,RgbArg<BASE_COLOR_ARG,Rgb<255,0,0>>>,InOutTrL<TrWipeX<IgnitionTime<300>>,TrWipeInX<RetractionTime<0>>,Black>>>>(),


};

BladeConfig blades[] = {
  { 0, WS281XBladePtr<132, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >(),
 CONFIGARRAY(presets) },

Depends how they were wired and how the original BladeConfig was set up by your installer. That doesn’t appear to be the original config, I would ask your installer if you don’t have it.

Thing is this is an LGT saber (got it as a gift) not sure if that helps or not.

Not familiar, contact your seller or installer for the original config if its not on the SD.

Thank you!

A few things here.
First, to take advantage of all the editable parameters you have in the styles you added, you would either use the WebUSB ProffieOS Workbench in a browser, or on the saber itself using Edit Mode.
If it is an LGT config, it doesn’t come setup to use saber_fett263_buttons.h, which is the prop file that will allow you to use use Edit Mode on the saber.
To use it, you need to add ;common to the preset’s font path, add appropriate #define lines for the options you want to use, and understand how things work in general.
See this in-depth page for more info on that.

If you’re not interested in on-the-fly editing of styles, then you can use a different prop file. You should read through the top comment sections of the prop files themselves located in the ProffieOS/props folder to understand what options are available.
Whichever you choose, the prop file name gets set in the config file in the
#ifdef CONFIG_PROP section of the config.

As far as how to add the 2 additional blade styles for the quillons, there’s a couple of prerequisites to handle first.

#define NUM_BLADES in the config file needs to be set accordingly to include the 2 additional blades. Mind you, there may already be additional blades counted besides the main blade in the form of an accent LED somewhere (likely the power button is an illuminated AV switch, so that would count as 1 blade). This will also be determined based on how the side blades are wired, either together in parallel or independently. See more on that below.

Secondly, and most importantly, the BladeConfig section toward the bottom of the config file needs to have the correct number and type of blades declared.
Again, this section may or may not already have additional blades besides the main blade as mentioned above. Additionally, this completely depends on how the blades are wired. If the side blades are wired together in parallel, they would have a single blade definition and work in unison all the time. If they are wired independently, they would each have their own blade definition and blade style. This will determine how many blades you have in total for your NUM_BLADES value, how many styles per preset, and how many blades total are in the blades[] array in the BladeConfig.

With the main blade, the side blades wired together in PARALLEL, and the switch LED, it would look something like below. The bladePin numbers and the bladePowerPins are based on how the blades are wired to the Proffieboard data and LED pads respectively, so yours may be different than this example:

BladeConfig blades[] = {
{ 0,
  WS281XBladePtr<144, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >(), // Main Blade
  WS281XBladePtr<25, blade2Pin, Color8::GRB, PowerPINS<bladePowerPin4> >(), // Side Blades
  WS281XBladePtr<1, blade3Pin, Color8::GRB, PowerPINS<bladePowerPin6> >(), // AV Switch LED
CONFIGARRAY(preset) }, 
};

If the side blades are wired INDEPENDENTLY, the additional blade would need to be included, like this:

BladeConfig blades[] = {
{ 0,
  WS281XBladePtr<144, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >(),   // Main Blade
  WS281XBladePtr<25, blade2Pin, Color8::GRB, PowerPINS<bladePowerPin4> >(), // Side Blade #1
  WS281XBladePtr<25, blade3Pin, Color8::GRB, PowerPINS<bladePowerPin5> >(), // Side Blade #2
  WS281XBladePtr<1, blade4Pin, Color8::GRB, PowerPINS<bladePowerPin6> >(), // AV Switch LED
CONFIGARRAY(preset) }, 
};

Your preset starts with an opening brace { and ends with a closing brace }
Your additional blade styles need to be contained inside the preset’s braces.
So currently in your post above, you are closing the preset too early after only the first blade style. Move that closing brace to AFTER the 2 additional styles.
Your inclusion of 2 styles would follow the example of the 2 side blades being wired independently. If they are wired together in parallel, only 1 style would be used.
The format for your preset should look something like this:

{ "Bank01", "tracks/Ahsoka.wav",

/* copyright.....*/
StylePtr<...Main blade style...>(),

/* copyright.....*/
StylePtr<...Side Blade #1 style...>(),

/* copyright.....*/
StylePtr<...Side Blade #2 style...>(), "Ahsoka"},

I hope that is helpful :slight_smile:

1 Like