You are viewing a potentially older version of this package. View all versions.
viliger-CharacterAPI-0.9.1 icon

CharacterAPI

API for loading custom characters. Removed BRCCustomCharacters support (READ THE CHANGELOG)!

Date uploaded 9 months ago
Version 0.9.1
Download link viliger-CharacterAPI-0.9.1.zip
Downloads 2384
Dependency string viliger-CharacterAPI-0.9.1

This mod requires the following mods to function

BepInEx-BepInExPack-5.4.2100 icon
BepInEx-BepInExPack

BepInEx pack for Mono Unity games. Preconfigured and ready to use.

Preferred version: 5.4.2100
viliger-HookGenPatcher-1.2.10 icon
viliger-HookGenPatcher

MMHOOK generation at runtime.

Preferred version: 1.2.10

README

BRC_CharacterAPI

Custom character loader for Bomb Rush Cyberfunk. Currently support importing models as custom characters with up to 4 outfits with custom names. You can also add custom personal graffiti and character can have custom sounds. The repository contains example of custom character under BRC_CharacterAPI_ExamplePlugin folder, everything there is commented so people even unfamiliar with code should be able to make and compile necessary plugin. You can find the example here.

You can find a guide on making custom characters here.

If you don't know how\want to compile a plugin, ActualMandM made a pluginless loader for compatable asset bundles. You can find it here together with instructions.

Characters made for BrcCustomCharacters can be loaded with a help of CharacterAPI_BRCCCLoader.

Known issues

  • Custom personal graffiti load as gray squares if you painted custom personal graffiti and then disabled CharacterAPI.

Long term goals (aka never ever)

  • Custom models as outfits
  • More than 4 outfits
  • Custom animations

I am a mod maker, why does my character have skates angled at wrong position?

Now you can use skateOffsetL and skateOffsetR transorms to position skates. I'll write a wiki page sometime in the future.

If you want the old method of fixing via bones you can still find it here.

CHANGELOG

0.9.4
  • Fixed an issue with game crashing on exit while trying to save vanilla save file.
    • Didn't have that many reports on this one, but decided to "fix" it anyway. And by "fixing" I mean that you might encounter a small stutter whenever modded characters are saved (changing character, outfit and ride). I'll look into fixing stutter in the future.
  • Made ModdedCharacter class public.
    • This is for mod support, if someone wants to get information whether modded character exists or not. Done mainly to support SlopCrew, but obviously it is now open to everyone.
0.9.3
  • Fixed an issue with creating new save file.
0.9.2
  • Moved save location from config folder to CharacterAPI folder under Bepin
    • As it turns out r2modman empties entire mod folder on each update. While it doesn't matter for saves, it matters for characters created with Loaders, so I decided to move everything related to this mod into its own folder. For CharacterAPI you don't have to do anything, save will be moved automatically. For CharacterAPI BRCCCLoader back up your characters before updating via r2modman, if you update manually they will be moved to new location.
  • Added a check and a message if prefab with silent sound is not present or damaged.
0.9.1
  • Removed BRCCustomCharacters (BRCCC) support and moved it to its own plugin.
    • I separated loading of BRCCC into its own plugin loader which can be found here. I did it because of two reasons. First, implementing loader directly into CharacterAPI transforms it from library into a mod, I want to keep it as a library so if someone wants to either take over from me, implement their own solution to loading characters or make their own loader, we would be 100% sure that the library itself won't do anything. Second, BRCCC is licensed under GPL-3 and it prevents me from adding necessary dependencies to this mod (that's why we needed BRCCC in the first place with 0.9.0). Separate loader solves both issues. If you used BRCCC characters with 0.9.0 you don't have to do anything but to download a new loader, it will grab everything automatically.
0.9.0
  • Implemented BRCCustomCharacters (BRCCC) support.
    • Support is done in two modes - loading asset bundles created for BRCCC or loading them directly from BRCCC, controlled by options "Load BRCCustomCharacters" and "Load BRCCustomCharacters from Plugin" respectively.
    • You will need BRCCustomCharacters for this feature to work.
    • First mode loads asset bundles directly, you have to put them inside "BrcCustomCharacters" folder.
    • Second mode loads characters directly from BRCCC plugin, HOWEVER, and this is important, replacements will still be in place. Let's say you have a character that replaces Red, his voice and his personal graffiti and then decide to enable this option. Then Red will be replaced by new character, his voice and graffiti also will be replaced AND you will get a new character separate from Red's replacement. In essence, you will get two characters. This mode is here mostly for comparability and maybe SlopCrew.
    • First mode is enabled by default, second is disabled. You can have both on and off at the same time.
    • This is not tested with SlopCrew, but what most likely will happen is that your "new" character will show up as Red to everyone else and your "replacement" character will show up as usual if other people have the mod.
      • Please, send all crash logs to me via discord or github, this is highly experimental.
  • Added silent sound for custom characters to prevent crashing.
    • If character had custom sounds but one of seven needed arrays was empty for whatever reason, whenever the game would try to play a sound from that array it would crash. I decided to just add silent sounds to that array so crashes would stop. It is kinda hacky, but it is substantially easier than fixing it in code.
  • Added custom shader support. Set usesCustomShader to true and your character's shader will not be replaced with game's shader.
  • Implemented BRCCC skates positioning support.
    • If you don't like fixing bones - well, here we are. It was mostly done for comparability with BRCCC characters, but can be used for plugin characters all the same. Just add skateOffsetL and skateOffsetR transforms to footL and footR respectively and adjust the position\angle. Then the mod will automatically find them and if present will use their position for skates.
0.8.0
  • Minor performance improvements.
  • Fixed issue where loaded modded character didn't use correct move style on character select screen.
  • Added option to allow modded characters to blink. Set canBlink to true in your ModdedCharacterConstructor to use it.
    • This is not a magic solution where you set it and it will just work. You will need to setup Shape keys (or blend shapes as Unity calls them) in Blender or your modelling software of choice. Base game characters that can blink use two meshes with open and closed eyes and then scale them from 0 to 100 and in reverse for blinking. This feature is not tested, but should be fairly straightforward to implement if you have experience with shape keys.
  • Removed save warning from mod page.
    • It has been almost two weeks since initial release and I haven't got a single report of broken save file. So I am going to assume that saving works as intended and there is no risk of breaking your save file.
0.7.1
  • Fixed an issue where all AIs (and by extension SlowCrew players) were loaded as last played custom character.
0.7.0
  • Implemented save system.
    • The game now remembers last custom character played, all custom characters loadouts (outfit, ride, its skin), loads applied custom personal graffiti.
    • Saves can be found inside your Bepin config folder, inside CharacterAPISaves folder.
    • If you disable last modded character that you played as, you will be loaded as Red, while its graffiti will be replaced with Red's.
    • Completely disabling CharacterAPI will result in applied custom personal graffiti loaded as gray squares. This is something I might fix in the future, since currently custom graffiti are saved into main save, however, unlike with characters, game safely handles missing graffiti and loads replacement in a form of gray square.
    • Modded character saves are saved per save slot.
    • Characters are kept in save independant of if they are loaded or not as long as they have been saved, special config option is added to clear save file off them if you want, since their saves do take RAM.
    • Characters are indentified by their hash, that is made from combination of their name, outfit names, default outfit and ride.
      • With this release all "major" planned features are complete. Once I get enough reports that things are stable I will do another code pass and release it as 1.0, after that updates will slow down considerably.
0.6.0
  • Implemented custom voice suppport.
    • It is not as straightforward as I wish it would be, but the guide covers it and example plugin has everything you need.
0.5.2
  • Fixed currently played as modded character being selectable on dance pad.
    • This comes with pretty decent refactor job, so while I tested everything that it afffects, you still might encounter a new crash. Please, report all crashes on github or in my DMs on discord.
  • SlowCrew is not longer incompatible.
    • SlopCrew now assignes modded characters as Red for everyone who don't have the mods. While you won't see other people using mods, at least you can now yourself play as modded character and be allowed to join AND not crash the server.
0.5.1
  • Fixed character list doubling every time you change character via dance pad.
  • Made SlopCrew incompatible.
    • Sadly, playing on SlopCrew with new characters added via CharacterAPI made everyone who don't have the mod crash their game. While SlopCrew added autokick for those players, I decided, for now, to just completely disable ChracterAPI if SlowCrew is present among mods. Once me and NotNite come up with a solution we both agree on, mod will continue disabling itself in presence of SlowCrew.
  • Fixed max outfits check for new modded character being incorrect.
0.5.01
  • Readme fix because I love markdown.
0.5.0
  • Initial release