docs socketandpivot.com

This page is the Documentation.html shipped in SP_CornerStorePropsStarter_v1.0.0.zip.

Corner Store Props Starter

Version 1.0.0, released 7 November 2026 by Socket & Pivot.

The Props Starter contains 35 props for dressing a modern corner shop, and most of them do something when the player uses them. Doors on the fridge, drink cooler, ice merchandiser, lockers, fuse box and bins open on their hinges. Drawers slide, the card reader turns towards the customer, and boxes, baskets, the mop bucket and the wet-floor sign can be carried. Shelves, coolers, the freezer and the back-room rack fill themselves with product from a data table, and players can take items out and put them back.

The free Corner Store Sampler is part of this kit: its ten props are included among the 35 and use the same asset names. All brands on the packaging are fictional, and no generative AI was used to make the meshes, textures or label artwork.

1. Contents

Fixtures

Prop Unreal Engine asset Behaviour
Fridge BP_Fridge Door opens 100°. Interior light. Shelf sockets Slot_1 to Slot_3.
Glass-door drink cooler BP_DrinkCooler Glass door opens 100°. Interior light. Shelf sockets Slot_1 to Slot_4.
Chest freezer BP_ChestFreezer Windowed lid opens 75°. A raised wire deck carries the shelf socket Slot_1.
Wall shelf, 100 cm SM_Shelf_Wall_100 Shelf sockets Slot_0 to Slot_4.
Gondola shelf, 120 cm, double-sided SM_Shelf_Gondola_120 Shelf sockets Slot_A0 to Slot_A3 on the front and Slot_B0 to Slot_B3 on the back.
Checkout counter BP_CheckoutCounter Operator-side drawer slides 40 cm. Sockets Place_Register and Place_CardReader.
Cash register BP_Register Cash drawer slides 26 cm.
Card reader on a swivel stand BP_CardReader Terminal turns 150° to face the customer.
Basket stand SM_BasketStand Socket Place_Basket for the first basket.
Shopping basket BP_Basket Can be carried.
Pedal bin BP_PedalBin Lid opens 75°.

Back room

Prop Unreal Engine asset Behaviour
Storage rack, 120 cm SM_Rack_Storage_120 Deck sockets Slot_0 to Slot_3, for stock boxes or products.
Staff locker BP_StaffLocker Door opens 105°.
Fuse box BP_FuseBox Wall-mounted. Door opens 110°.
Cardboard boxes, small and medium BP_Box_Small, BP_Box_Medium Can be carried. Each size is also a data-table row, so racks can be stocked with them.
Mop bucket BP_MopBucket Can be carried.
Wet-floor sign BP_WetFloorSign Can be carried.

Exterior

Prop Unreal Engine asset Behaviour
Ice merchandiser BP_IceChest Printed door opens 100°.
Newspaper box BP_NewsBox Window door tips forward 70°.
Outdoor litter bin BP_OutdoorBin Emptying door opens 100°.

Products

Every product is a mesh plus a row in DT_StoreItems. Any product can stock a shelf slot, and the player can pick it up, carry it and put it back.

Product Mesh Data-table rows
Socket Soda can SM_Can_Soda SocketSoda_Lime, SocketSoda_Cherry, SocketSoda_Orange
Pivot Spring water SM_Bottle_Water PivotSpring_500
Greybox Dairy milk SM_Carton_Milk GreyboxDairy_Milk1L
Tessel Crisps SM_Bag_Crisps TesselCrisps_SeaSalt
Morning Grid cereal SM_Box_Cereal MorningGrid_500g
Loopcut Energy can SM_Can_Energy LoopcutEnergy_500
Node Noodles cup SM_Cup_Noodles NodeNoodles_Chicken
Bevel Bar chocolate SM_Bar_Chocolate BevelBar_Milk
Keyframe Juice carton SM_Carton_Juice KeyframeJuice_Orange
Lerp Jam jar SM_Jar_Jam LerpJam_Strawberry
Spline Wash detergent SM_Bottle_Detergent SplineWash_1500
Quad Soft toilet rolls SM_Pack_ToiletRoll QuadSoft_4Roll
Vertex Creamery ice cream SM_Tub_IceCream VertexCreamery_Vanilla
Render Roast coffee cup SM_Cup_Coffee RenderRoast_Coffee
Stock boxes SM_Box_Cardboard_S, SM_Box_Cardboard_M Stock_Box_Small, Stock_Box_Medium

Systems and maps

Item Assets
Interaction system BPC_Interactable, BPC_Interactor, BP_Pickup
Stocked shelf row BP_ShelfSlot
Product data DT_StoreItems (18 rows), struct S_SP_StoreItem, enum E_SP_SizeClass
Input and demo player IA_SP_Move, IA_SP_Look, IA_SP_Jump, IA_SP_Interact, IMC_SP_Demo, BP_SP_DemoCharacter, BP_SP_DemoHUD, BP_SP_DemoGameMode
Demo map L_PropsStarter_Demo, a stocked 10 by 8 metre shop with a checkout, a back-room corner and an entrance
Overview map L_PropsStarter_Overview, every asset and every data-table row with a label

The download contains an Unreal Engine project, a Blender asset library with 37 assets (the soda can appears once per flavour), and FBX files with their textures for other software.

2. Compatibility

Software Tested with Notes
Unreal Engine 5.8.3 on Windows 11, DirectX 12, Shader Model 6 The project is saved in 5.8 and cannot be opened in earlier versions. Mac, Linux, consoles and mobile have not been tested.
Blender 5.2 LTS Assets were tested with both Append and Link. Blender 4.5 LTS and 5.3 have not been tested.
Rendering Lumen, Virtual Shadow Maps, Nanite Every mesh also has LODs for platforms without Nanite. Baked lighting has not been tested.

3. Installation

Opening the Unreal Engine project

Open UE5/SP_CornerStorePropsStarter/SP_CornerStorePropsStarter.uproject in Unreal Engine 5.8. The editor starts on L_PropsStarter_Demo, and Play drops you at the shop entrance. Unreal compiles shaders for the kit's materials the first time the project opens, so that start is slower than later ones.

Adding the props to an existing project

  1. Close the project.
  2. Copy UE5/SP_CornerStorePropsStarter/Content/SocketAndPivot into the project's Content folder, keeping the folder name.
  3. Open the project and load SocketAndPivot/CornerStore/Maps/L_PropsStarter_Demo.

If the free Sampler is already in the project, allow the copy to replace its files. The Starter contains every Sampler asset under the same name.

The demo maps carry their own GameMode override, so no project settings need to change. Unreal Engine 5 projects use Enhanced Input by default. For an older project that still uses the legacy input classes, open Project Settings > Input and set Default Player Input Class to EnhancedPlayerInput and Default Input Component Class to EnhancedInputComponent.

Blender

In Edit > Preferences > File Paths > Asset Libraries, click Add and choose the Blender folder from this download. The Asset Browser then lists the props under Corner Store, in the catalogues Fixtures, Back Room, Exterior and Products. Append (Reuse Data) is the recommended import method, and Link also works. The Showcase collection in the .blend file places every asset in a row for a quick look.

FBX files

There is one FBX file per prop in Exports/FBX, in centimetres with Z up. In Blender's axes each prop faces -Y, which becomes +Y after import into Unreal Engine. Each file also contains the UCX_ collision hulls and SOCKET_ sockets that Unreal Engine reads on import; other software can ignore or delete them. Textures are in Exports/Textures, and Exports/materials.csv gives the textures and settings for each material.

4. Demo controls

Action Keyboard and mouse Gamepad
Move W, A, S, D Left stick
Look Mouse Right stick
Jump Space Bottom face button
Interact E Left face button

When you look at an object you can use, its edges light up in chartreuse and its prompt appears beside the crosshair.

5. Folder structure and naming

Content/SocketAndPivot/

  Core/                    Shared by every Socket & Pivot kit

    Blueprints/            BPC_Interactable, BPC_Interactor, BP_Pickup, BP_SP_DemoCharacter, BP_SP_DemoHUD, BP_SP_DemoGameMode

    Data/                  S_SP_StoreItem, E_SP_SizeClass

    Input/                 IA_SP_Move, IA_SP_Look, IA_SP_Jump, IA_SP_Interact, IMC_SP_Demo

    Materials/             M_SP_Master, M_SP_Glass and the MI_SP_ surface instances

    Textures/              T_Surface_ and T_Default_ textures

  CornerStore/             This kit

    Blueprints/            One Blueprint per interactive or carryable prop, plus BP_ShelfSlot

    Data/                  DT_StoreItems

    Maps/                  L_PropsStarter_Demo, L_PropsStarter_Overview

    Materials/             MI_Label_ instances for packaging and signs

    Meshes/                Fixtures, BackRoom, Exterior and Products subfolders

    Textures/              T_Label_ textures

    Demo/                  Rooms, counter and light panel used only by the demo maps

Core is identical across Socket & Pivot kits. A project with two kits installed shares one Core folder; keep the newer copy.

Prefix Asset type Prefix Asset type
SM_ Static mesh M_ Material
BP_ Blueprint MI_ Material instance
BPC_ Blueprint component T_ Texture (_D colour, _N normal, _ORM packed masks)
DT_ Data table IA_, IMC_ Enhanced Input action and mapping context
S_, E_ Struct, enum L_ Level

6. The interaction system

Every interaction in the kit goes through two Blueprint components.

BPC_Interactor sits on the player pawn. It traces a line from the camera twenty times a second, on the Visibility channel and up to TraceDistance (250 cm by default). The first actor hit that owns a BPC_Interactable becomes the focus. Its meshes are highlighted, and GetPromptText returns the prompt for the HUD.

When the player presses Interact, TryInteract resolves the action. With empty hands, a carryable actor in view is picked up, and anything else runs the focused component's Interact function. With an item in hand, the outcome depends on what is in view:

In view Result
A slot that stocks the same product The item goes back on the shelf.
A door, drawer or lid It opens or closes, and the player keeps holding the item.
A slot for another product, or another carryable actor No prompt is shown and nothing happens.
Nothing interactive The item is dropped.

BPC_Interactable is added to anything usable and has these settings:

Setting Purpose
MovingPart The component that moves when the object opens. Set it in the owning actor's construction script.
OpenRotation, OpenOffset Change in relative rotation and location between the closed and open states.
OpenTime Duration of the eased movement, in seconds.
Prompt, PromptWhenOpen, PromptWhileHolding Text shown to the player in each state.
PickUp When enabled, the player carries the whole actor.
HighlightWholeActor Highlights every mesh of the actor, not only the one in view.
OnInteracted Event dispatcher, called with the interactor and the hit component.

The highlight lives in the materials. Focusing an object writes 1 into Custom Primitive Data index 0 on its meshes, and M_SP_Master and M_SP_Glass respond with a chartreuse Fresnel rim and a 16 % tint. Since no overlay or post-process pass is involved, Nanite meshes highlight like any other. Your own materials can take part by adding a scalar parameter with Use Custom Primitive Data enabled at index 0.

7. Shelf slots

A BP_ShelfSlot is one row of a single product. It attaches to a socket whose name starts with Slot_, and its construction script works out how many units fit from the product mesh's bounds and the row's Facings value.

Variable Purpose
ItemRow The DT_StoreItems row to stock.
Width, Depth Usable area in centimetres. See the table below.
MaxRows Maximum number of rows from front to back.
Gap Space between units, in centimetres.
FillPercent How full the slot starts, from 0 to 1.
Seed Changes which positions start empty.
Fixture Width × depth (cm)
Wall shelf 92 × 34
Gondola shelf 112 × 34
Fridge 50 × 46
Drink cooler 58 × 55
Chest freezer 104 × 52
Storage rack 114 × 48

During play the player can take any unit, which spawns a BP_Pickup in their hands, and return it to an empty position in a slot of the same product. A slot that stocks something else shows no prompt and refuses the item. The gondola's back-side sockets are turned 180°, so slots attached to them face the second aisle.

To place a slot by hand, drag BP_ShelfSlot into the level, set its parent to the fixture and its parent socket to the slot you want, and reset its relative location and rotation. From a Blueprint, use Attach Actor To Component with Snap to Target. Every stocked fixture in L_PropsStarter_Demo is set up this way.

8. Placement sockets

Some fixtures carry sockets for placing other props. Attach the prop to the socket with Snap to Target.

Socket Fixture Intended prop
Place_Register Checkout counter BP_Register, facing the operator
Place_CardReader Checkout counter BP_CardReader, on the customer side
Place_Basket Basket stand The first BP_Basket; further baskets nest on top of it

9. The product data table

DT_StoreItems uses the struct S_SP_StoreItem:

Field Purpose
DisplayName Name shown to the player.
Category Shelf category, such as Drinks, Frozen or Household.
Price Shelf price in your game's currency.
SizeClass Small, Medium or Large.
Mesh The product's static mesh.
Facings How many units stand side by side when the product fills a slot.
OverrideSlot, OverrideMaterial Optional material replacement. The three Socket Soda flavours share one can mesh this way.
Pickable Whether the player can pick the product up.

10. Using your own character

Add BPC_Interactor to your player pawn and call TryInteract from your Interact input. Your interface can read GetPromptText or listen to OnFocusChanged. BP_SP_DemoHUD is only there to make the demo playable.

11. Extending the kit

Adding a product

Import the mesh with its pivot at the centre of its base and its front facing +Y, add a row to DT_StoreItems, and use the row in a BP_ShelfSlot or BP_Pickup.

Adding a variant of an existing product

Duplicate the product's label material instance and give it a new BaseColorMap. A new data-table row then points OverrideSlot at the label's material slot and OverrideMaterial at the new instance.

Making another actor interactive

Add a BPC_Interactable. A door, drawer or lid needs MovingPart set in the construction script, as the kit's Blueprints do, plus an OpenRotation or OpenOffset. Other behaviour, such as a light switch, can be bound to OnInteracted.

Making a mesh carryable

Create a child Blueprint of BP_Pickup and set its PickupMesh. The kit's boxes, mop bucket and wet-floor sign are built exactly like this.

Creating a new surface

Make a material instance of M_SP_Master, or of M_SP_Glass for transparent surfaces:

Parameter Purpose
BaseColorMap, Tint Colour texture and a colour it is multiplied by.
NormalMap, NormalStrength Normal texture and how strongly it applies.
ORMMap Packed masks: R ambient occlusion, G roughness variation, B metal.
RoughnessMin, RoughnessMax The roughness range that the G channel is mapped into.
Metallic Metalness where the B channel allows it.
TileMetres Metres covered by one texture repeat. UVs are authored in metres.
EmissiveColor, EmissiveStrength Light emitted by the surface.

Changing the highlight colour

Adjust HighlightColor and HighlightStrength on the master materials, or override them per material instance.

12. Technical specifications

Mesh Size in cm (W × D × H) Triangles at LOD0 LODs Nanite Convex hulls Sockets Material slots
SM_Fridge_Body 60.3 × 74.8 × 181.4 7,152 4 No 8 Hinge_Door, Light_Interior, Slot_1, Slot_2, Slot_3 6
SM_Fridge_Door 60 × 21.85 × 165 13,432 4 No 2 None 5
SM_Shelf_Wall_100 100 × 47.6 × 200 1,700 4 Yes 8 Slot_0, Slot_1, Slot_2, Slot_3, Slot_4 3
SM_Register_Body 43 × 42 × 38 5,156 4 Yes 2 Slide_Drawer 5
SM_Register_Drawer 38.2 × 40.3 × 8 4,192 4 Yes 1 None 4
SM_Bin_Pedal_Body 29.7 × 37.2 × 41 2,516 4 Yes 2 Hinge_Lid 4
SM_Bin_Pedal_Lid 29.5 × 30.65 × 2.8 1,084 4 Yes 1 None 2
SM_Basket_Shopping 44 × 45.8 × 24.9 2,886 4 Yes 1 None 2
SM_Can_Soda 6.4 × 6.4 × 12 1,212 4 Yes 1 None 2
SM_Bottle_Water 6.6 × 6.6 × 21.4 2,448 4 No 1 None 3
SM_Carton_Milk 7 × 7 × 25.4 148 4 Yes 2 None 1
SM_Bag_Crisps 20 × 7.34 × 28 3,296 4 Yes 1 None 1
SM_Box_Cereal 26 × 7 × 36 108 4 Yes 1 None 1
SM_Cooler_Body 68.01 × 70.6 × 200 15,016 4 Yes 9 Hinge_Door, Light_Interior, Slot_1, Slot_2, Slot_3, Slot_4 6
SM_Cooler_Door 66 × 8.6 × 168 832 4 No 1 None 4
SM_Freezer_Body 120.1 × 66 × 86.2 6,052 4 Yes 6 Hinge_Lid, Slot_1 5
SM_Freezer_Lid 120 × 66.5 × 6 712 4 No 1 None 3
SM_Counter_Checkout_Body 154.2 × 75.1 × 92 1,890 4 Yes 7 Place_CardReader, Place_Register, Slide_Drawer 3
SM_Counter_Checkout_Drawer 52 × 56.6 × 15.5 712 4 Yes 1 None 4
SM_CardReader_Base 10.86 × 10.86 × 9 692 4 Yes 1 Swivel_Terminal 2
SM_CardReader_Terminal 8.4 × 7.4 × 17.92 2,192 4 Yes 1 None 4
SM_Shelf_Gondola_120 124 × 90 × 153 29,026 4 Yes 9 Slot_A0, Slot_A1, Slot_A2, Slot_A3, Slot_B0, Slot_B1, Slot_B2, Slot_B3 3
SM_BasketStand 50 × 38 × 100 6,848 4 Yes 6 Place_Basket 4
SM_IceChest_Body 100 × 72 × 132.02 3,788 4 Yes 5 Hinge_Door 4
SM_IceChest_Door 83.5 × 10 × 96 796 4 Yes 1 None 4
SM_Locker_Body 38 × 46 × 180 1,016 4 Yes 5 Hinge_Door 3
SM_Locker_Door 36 × 4 × 170 4,988 4 Yes 1 None 4
SM_FuseBox_Body 36 × 12 × 46 2,404 4 Yes 1 Hinge_Door 6
SM_FuseBox_Door 35.6 × 2.1 × 45 4,660 4 Yes 1 None 4
SM_NewsBox_Body 46.01 × 42.3 × 104.2 1,512 4 Yes 4 Hinge_Door 6
SM_NewsBox_Door 41 × 4.5 × 40 424 4 No 1 None 3
SM_Rack_Storage_120 121.2 × 51.2 × 200 1,744 4 Yes 8 Slot_0, Slot_1, Slot_2, Slot_3 4
SM_Box_Cardboard_S 40.18 × 30.08 × 25.09 216 4 Yes 1 None 4
SM_Box_Cardboard_M 60.18 × 40.08 × 40.09 216 4 Yes 1 None 4
SM_MopBucket 40.9 × 34.39 × 75.4 2,836 4 Yes 2 None 5
SM_Sign_WetFloor 30 × 23.56 × 65.02 752 4 Yes 1 None 2
SM_Bin_Outdoor_Body 52.38 × 53 × 100 1,480 4 Yes 5 Hinge_Door 3
SM_Bin_Outdoor_Door 40 × 3.3 × 64 1,816 4 Yes 1 None 3
SM_Can_Energy 6.6 × 6.6 × 16.8 1,212 4 Yes 1 None 2
SM_Cup_Noodles 10.24 × 11.32 × 10.16 1,044 4 Yes 1 None 3
SM_Bar_Chocolate 15 × 1.3 × 6.2 188 4 Yes 1 None 1
SM_Carton_Juice 6.3 × 4.5 × 10.5 260 4 No 1 None 3
SM_Jar_Jam 7.28 × 7.28 × 10.2 2,496 4 No 1 None 4
SM_Bottle_Detergent 12 × 7.32 × 29 1,292 4 Yes 2 None 3
SM_Pack_ToiletRoll 21 × 21 × 10.5 428 4 Yes 1 None 1
SM_Tub_IceCream 16.56 × 16.56 × 10.21 1,408 4 Yes 1 None 2
SM_Cup_Coffee 8.52 × 8.52 × 12.75 1,236 4 Yes 1 None 3
SM_Demo_RoomLarge (demo maps only) 1030 × 830 × 320 124 4 Yes 8 None 4
SM_Demo_Counter (demo maps only) 166 × 66 × 91 484 4 Yes 1 None 3
SM_Demo_LightPanel (demo maps only) 124 × 34 × 3 232 4 Yes 1 None 2
Property Specification
Scale Real-world size in centimetres.
Pivots Centre of the base for every prop, including the wall-mounted fuse box, which can be placed at any height. Moving parts pivot on their hinge or slide point.
Collision Simple convex collision on every mesh. Cabinets have hollow collision so their shelves stay reachable.
LODs Four per mesh, at 100, 50, 25 and 12.5 % of the triangles.
Nanite Enabled on opaque meshes. Disabled on meshes with transparent parts, which Nanite cannot render: the fridge body and door, the cooler door, the freezer lid, the newspaper box door, the water bottle, the jam jar and the juice carton (because of its clear straw wrapper).
Heaviest meshes The gondola shelf, about 29,000 triangles because of its pegboard holes, and the drink cooler body, about 15,000. Both use Nanite. The heaviest mesh without Nanite is the fridge door, about 13,400 triangles with its bins, gasket and handle.
Materials 2 master materials and 49 material instances.
Textures 51 textures. Tiling surfaces are 1024 × 1024 and are applied at 1024 pixels per metre, or 2048 on brushed metal and rubber. Packaging and sign prints are 1024 pixels on their longer side. Prints whose sides are not powers of two are stretched up to the next power of two on import, so they get mipmaps and compression while their UVs stay unchanged.
Texture format Occlusion, roughness and metal masks are packed into ORM textures. Normal maps are authored in the OpenGL convention and imported with the green channel flipped.
UVs UV0 is measured in metres on tiling surfaces and runs from 0 to 1 across prints. No separate lightmap UV channel was authored.
Asset count 186 assets in Content/SocketAndPivot.
Blender library 37 collection assets at metre scale. Materials use the Principled BSDF and render in EEVEE and Cycles. Every moving part is parented to its body and limited by a Limit Rotation or Limit Location constraint to the same travel as in Unreal Engine.

13. Known limitations

  • The kit has been tested in Unreal Engine 5.8.3 and Blender 5.2 LTS only. Section 2 has the details.
  • Interactions are designed for single-player games and do not replicate over a network.
  • There are no sound effects.
  • The kit contains props and their interactions only. It has no customers, economy or save system.
  • The demo HUD is a minimal Canvas HUD with English text. Prompts are stored as Text and can be localised.
  • Interaction uses a single line trace, so aiming exactly at the 8 mm gap between two products reaches the shelf behind them.
  • Reaching into the chest freezer works best from right beside it, looking down over the rim.
  • Only materials that read Custom Primitive Data index 0 show the focus highlight. Both included master materials do.
  • Collision hulls and sockets are left out of the Blender library. The FBX files include them.
  • GLB and USD exports are not part of this version.
  • Baked lighting has not been tested, and the meshes have no dedicated lightmap UV channel.

14. Version history

Version Date Changes
1.0.0 7 November 2026 First release: the ten Sampler props plus 25 new ones, 18 data-table rows, and new demo and overview maps.

15. Licence and credits

The terms of use are in LICENSE.txt. The Personal licence covers individuals and organisations whose revenue and funding in the last 12 months was under US$100,000, with no limit on seats. Larger organisations need a Studio licence, which covers up to 10 seats. Under either licence the props can be used in any number of projects, including commercial ones and client work, but may not be resold or redistributed as assets, put in a public repository in source form, or used to train, evaluate or prompt AI models. Copies bought on Fab or Superhive are covered by that store's licence instead.

Surface textures made from CC0 scans by ambientCG and Poly Haven, and the fonts used for the packaging and lettering, are listed with their licences in THIRD-PARTY-NOTICES.txt. The brands, logos and the newspaper shown on the props were all invented for this kit.

For help with the product, email support@socketandpivot.com with the product version, your engine or Blender version and a description of the problem. We reply within two business days. Licence questions go to hello@socketandpivot.com, and the full licence text is at socketandpivot.com/licence.