CVS Shield Package

This package is designed to equip shields on the off hand without installing any other package, or modifying the configuration of the user or player templates.

Just install the package from the community tab and drag and drop the included templates.

The templates include:

  • All basic shields available in Crayta by default

  • 20 custom shield designs

  • An unequipping platform

  • A widget to easily add heraldic images with 6 available designs


-Shields equippable by collision

-Shields equippable by interaction (default option)

-Integrated optional interaction customizable prompt interface

-Assignment of sound FX or/and visual FX when equipping and / or unequipping

-Possibility of adding heraldic images

-Events “Onequipped” and “OnUnEquipped” to be able to call functions of other scripts when equipping or unequipping shields.

All shields can be configured with 3 different behaviors, depending on the configuration, when trying to equip a new shield the previously equipped shield can:

  1. Change your shield (switch your shield with other one, changing one for another).

  2. Exchange it for the new, destroying the old

  3. Stack, both shields will stack, this can be useful primarily for creating cosmetic shield upgrades.

Template Settings

1 - Shields Named as “SP_shield_xxxx”

In the locator that groups all the elements of each template you will find the script “FC_generalProperties”

With the following properties:

  • Custom name: Name of the object, it will be the name that appears in the prompt.

  • Pick up on Interact: If enabled, you should interact with the object to pick it, otherwise it will be equipped when you collide with it.

  • Show Prompt Mssg: (only visible if pickup on interact is selected) allows activating or deactivating the interaction customizable prompt widget.

  • Prompt messg: message to show in the prompt widget, the name of the object will be added at the end of the text in the prompt.

  • Time prompt off: time that the prompt widget will remain active once the player moves away from the shield.

  • Stackable Object: If activated, the shield has the property of being stackable, otherwise one shield will be exchanged for the other. Both the equipped shield and the shield to equip must have this property activated for them to stack. This was designed to build composite objects ie: simple shield >> simple shield + chains >> simple shield + chains + spikes+ visual fx, but you can explore new options!

  • Destroy when remove: If enabled, this object will be destroyed when it is exchanged for a new one, otherwise the objects will exchange their position. Access to this property is only available if the object is not stackable.

  • Sfx Equip: Sound when equipping.

  • Vfx Equip: Visual effect when equipping.

  • Sfx Unequip: Sound when unequipping.

  • Vfx Unequip: Sound when unequipping.

  • Events: To call the events of other scripts when equipping or unequipping objects, we must look for the script “FC_inheritProperties” within the locator “Appearance (Item to equip)”: Imagine: you could open a closed door only holding a specific shield and when unequipping it, the door would close again…

  • Equip Event: This event is called when equipping the object.

  • Unequip Event: This event is called when unequipping the object.

All customizable properties have a tip message to help you using them

2 - Unequipping platform: “SP_Unequipping platform” template

The platform is decorated, but what is really interesting is the trigger, which allows you to assign by event in “OnInteract” or in “OnTriggerEnter” the function of unequipping shields.

3 - Heraldic images widget: “SP__Heraldic_Image”. A very easy template to use both in the world and within the shields, simply drag the template to the world or to the locator within the shield templates “Apparence (Item to equip)” and position it in the desired place.

Tips and Warnings:

  • IMPORTANT: Editing the templateTo work correctly, both the configuration of each shield and the changes of position and relative rotation of the template must be done from the template, never from the world hierarchy. If you want 2 shields with the same appearance but different functionalities, is a good practice duplicate the template

  • To move the relative position in the shield template, you must move the locator “_Item position and rotation”, otherwise the shield will not fit correctly to the hand.

  • Moving the relative position of the shield, will imply that the object will spawn in a different position when the world is generated or when exchanging one shield for another, useful for example if we want a shield to be shown lying on the ground or hanging on a wall.

  • In the case of moving the relative position of the shield in the template, the “PickTrig” must also be moved so that it can interact correctly and the “promptLocator” so that the widget is displayed in the desired position.

  • Changing the position or rotation of the “DropLocator” could cause strange behavior.

  • Once the shields have been dropped to the world, you must move or rotate the entire template from the locator named “SP_Shield_xxxxx” and marked in red, otherwise, when exchanging one shield for another it could appear in unwanted positions.

  • If you want to customize the cosmetic aspect of the shield, you will have to modify the elements found inside the “Apparence (Item to equip)” locator, respecting the position and rotation of the root object so that it fits correctly to the hand.

  • The “SP_X_Crazy_Example” template is a small (somewhat exaggerated) demonstration of what can be done with a little imagination by combining objects.




  • (on demand) add key binding to unnequip (I tried to make the package as simple as possible, and adding scripts neither in player nor user side, but i get , It could be easier to use a binding ley to unnequip )

  • (on demand) with the same explanation than the other one, the custom prompt message is on server side. If needed i can add a script on player/user to ser the prompt on local

  • With a few very simple modifications the pack can be used to equip any object in any socket with same behaviour. I could help someone to edit It and create a new package in different sockets