BeanCan-Instruments4Music icon

Instruments4Music

[Update: Fixes] This plugin aims to introduce some musical instruments to the Lethal Company. You can use items as instruments like in Genshin or Sky: CoL. Play them using your keyboard. Change key bindings with InputUtils. Now sync with other players!

Last updated 2 weeks ago
Total downloads 10932
Total rating 4 
Categories Audio Client-side Server-side
Dependency string BeanCan-Instruments4Music-2.1.0
Dependants 7 other packages depend on this package

This mod requires the following mods to function

Rune580-LethalCompany_InputUtils-0.6.3 icon
Rune580-LethalCompany_InputUtils

API/Library for creating Unity InputActions with in-game re-binding support. Provides an alternative UI that allows for supporting mods to have in-game re-bindable keybinds.

Preferred version: 0.6.3

README

Instruments4Music

Introduction:

This plugin aims to introduce some musical instruments to the Lethal Company.

This plugin utilizes LethalCompany InputUtils for configuring key binds.

The developer has limited knowledge of C# or Unity, so this plugin may not work very well.

How to use:

Aim at a possible stationary instrument or holding a portable instrument and press "BackSpace" for 1 second.

Possible stationary instruments: Ship Horn, Light Switch, Pumpkin Head...

Possible portable instruments: Clown Horn, Air Horn, Air Blower...

Recommended: You can replace the origin audio with CustomSound and create your own instrument.


You can then play an instrument with the default key bindings:

Note Name C D E F G H I
Primary
Higher q w e r t y u
Mid a s d f g h j
Lower z x c v b n m
Secondary
Higher /
Mid k l ; n m , .
Lower y u i o p h j
  • Press "Shift" to play semitone: C#, D#, F#, G#, A#
  • Press "Ctrl" as the soft padel.
  • Press "Space" as the sustain padel.
  • Press "Tab" to switch to the secondary key binding scheme. (The player can't move or interact in the primary mode, but is free in the secondary mode.)
  • Press "Enter" to input an autoplay code, press again to start autoplay.
  • Press "ESC" to exit playing mode.
  • Press "" (backslash) to switch to the secondary tune scheme.

A Demo Video

A Demo Bad Apple

Auto Play:

The design of autoplay code is more readable than simpler.

This is an example of the code for autoplay. (start from 02:55)

AutoPlay Demo

2.7,01030,,,,030,,,,032,,,,042,,,,0b030,,,,030,,,,030,,,,
010,,020,,0a030,,,,030,,,,032,,,,042,,,,0g052,,,,040,,,,030,,,,020,,,,
0f010,,,,010,,,,010,,,,022,,,,0e010,,,,010,,,,010,,,,050,,,,
0d010,,,,010,,020,,030,,020,,010,,,,0g010,,,,010,,020,,030,,020,,010,,020,,
0c030,,0g0,,0e030,,0g0,,0c032,,0g0,,0d042,,0g0,,0b030,,0g0,,0d030,,0g0,,0b030,,0g0,,
0c010,,020,,0a030,,0e0g0,,0c030,,0g0,,0a032,,0e0g0,,0c032,,040,,0g052,,0e0g0,,0c010,,0e0g0,,0g050,,040,,0c030,,0e020,,
0f010,,0c0g0,,0a010,,0c0g0,,0f010,,0c0g0,,0a052,,0c0g0,,0e0C0,,0c010,,0g050,,0c040,,0e030,,020,,0g010,,0c0g0,,
0d010,,0c0g0,,0f010,,0a020,,0d030,,020,,0f010,,0c0g0,,0g010,,0c0g0,,0c010,,0f050,,0g040,,030,,0b020,,,,
0c030,,0g0,,0e030,,0c0g0,,0c032,,0c0g0,,0f042,,0g0,,0b030,,0c0g0,,0d030,,0c0g0,,0e030,,0d0g0,,
0g010,,0d020,,0a030,,0e0a0,,0c030,,0e0a0,,0a032,,0e0a0,,0d042,,0e0a0,,0g052,,0c010,,0a0C0,,0f0,,0c050,,040,,0e030,,0d020,,
0f010,,0c0g0,,0f010,,0c0g0,,0g010,,0c0g0,,0a052,,,,0e0C0,,0d0,,0g050,,0c040,,0e030,,020,,0g010,,0c0g0,,
0d010,,0c0g0,,0f010,,0a020,,0d030,,020,,010,,0g0,,0g010,,0c0g0,,0c010,,0g050,,0f040,,0e033,,0c024,,,,,,
0c017,,0g0,,,,2g0,,,,2g0,,,,,,0c0

The first value, 2.7 is the playback speed. The higher the faster (similar to bmp somehow).

The other values, for example 0f012GA:

  • The head number 0 controls the soft padel and the sustain padel.
Value IsSoft IsSustaining
0 false false
1 false true
2 true false
3 true true
  • The f0 means play Lower F for 1 cycle.
  • The 12 means play Mid C for 3 cycles, at the same time.
  • The GA means play Higher G# for 3 cycles, at the same time.

You can play a single note or multiple notes at the same time.

Type The Note
Lower note: c, d, e, f, g, a, b
Mid note: 1, 2, 3, 4, 5, 6, 7
Higher note: C, D, E, F, G, A, B
  • The hex number 0/2/A following the note represents the duration of the note, range 0-7.

When the note is a semitone, the duration number needs to be increased by 8.

Semi? The Hex Number
Duration 0, 1, 2, 3, 4, 5, 6, 7
Duration(#) 8, 9, A, B, C, D, E, F
  • Use commas "," to separate the notes played in each cycle.

Future Plans:

  1. ✅Introduce more stationary or portable instruments.
  2. ✅Implement a user interface for music playback.
  3. ✅Prevent the player from moving or interacting with objects while playing music.
  4. ✅Synchronize music playback with other players.
  5. ✅Implement auto music playing function.
  6. ✅Add more custom configurations.

This project studied the following repositories:

  1. LethalCompanyInputUtils(LGPL-3.0 license)
  2. LCBetterSprayPaint(MIT license)
  3. LC-Touchscreen(null)
  4. MirrorDecor(null)
  5. EladsHUD(GPL-3.0 license)

I'm not entirely certain about the licensing, but I have studied their code superficially.

Please let me know if there's anything I've overlooked or done incorrectly.

Notes

  • チルノのパーフェクトさんすう教室
5.5,

031E1,,041F1,,049F9,,052G2,,251G1,,051G1,,049F9,,041F1,,
031E1,,041F1,,049F9,,052G2,,251G1,,051G1,,049F9,,041F1,,
031E1,,041F1,,049F9,,051G1,,061A1,,071B1,,0C1,,061A1,,
0D1,,0C1,,071B1,,051G1,,,,,,,,,,

031E1,,041F1,,049F9,,052G2,,251G1,,051G1,,049F9,,051G1,,
061A1,,071B1,,0C1,,0E1,,2E1,,0E1,,0D1,,0E1,,
0F9,,0E1,,0F9,,0D1,,071B1,,061A1,,071B1,,051G1,,
0C1G1,,0C1G1,,0C1G1B1,,0C1G1,,,,0a161,,0b171,,011C1,,

03565C5,,,,,,0E1,,0C1,,0E1,,0C1,,071,,
061,,060A1,,0C1,,0E1,,0A1,,061,,0C1,,0E1,,
065C5F5A5,,,,,,0A1,,0G1,,0A1,,0G1,,0D1,,
030E1,,0F1,,0E0,0F0,0E0,0D0,033E3,,,,073,,,,

03565C5,,,,,,0C1,,071,,0C1,,0E1,,061,,
02161D1,,02161D0,02161D0,02161D1,,02161D1,,02161C9,,02161D1,,02161C9,,02161D1,,
019C9,,021,,029D9,,031,,031E1,,041,,049F9,,051,,
0E1,,0E0,0E0,0C9,,0C9,,0C9,,0C1B1,,0C1B1,,,,

accompaniment

5.5,

0e1,,0f1,,0f9,,0g2,,2g1,,0g1,,0f9,,0f1,,
0e1,,0f1,,0f9,,0g2,,2g1,,0g1,,0f9,,0f1,,
0c1,,0c9,,0d1,,0e1,,0f9,,0g1,,0a1,,0f9,,
0b1,,0a1,,0g1,,0g1,,,,0f8g1,,0f8g1,,,,

0e1,,0f1,,0f9,,0g2,,2g1,,0g1,,0f9,,0g1,,
041,,031,,021,,01a3272,,2183071,,0e1,,0d1,,0e1,,
0b7274777,,,,,,,,0b72757,,,,,,,,
031,,029,,021,,019,,,,,,,,,,

1a7,,,,,,,,,,,,,,,,
3a7,,,,,,,,,,,,,,,,
0c7f7,,,,,,,,0d7g7,,,,,,,,
1e7,,,,,,,,,,,,,,,,

0a7,,,,,,,,0g7,,,,,,,,
0fa,,,,,,,,0d7,,,,,,,,
,,,,0fa,,,,,,,,0g3,,,,
,,,,,,,,,,,,,,,,