docs socketandpivot.com

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

Corner Store Sampler

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

The Corner Store Sampler is a free set of ten props from the Corner Store universe. Each prop is built to be used in a game, not only rendered: the fridge door opens and its shelves are stocked, the register drawer slides out, the pedal bin lid lifts, and packaged products can be taken off a shelf and put back. One small interaction system and one data table drive all of it, and both can be reused for props of your own.

The brands on the packaging are invented for this kit. No generative AI was used to make the meshes, the textures or the label artwork.

1. Contents

Prop Unreal Engine assets Behaviour
Fridge BP_Fridge, using SM_Fridge_Body and SM_Fridge_Door The door opens 100° on its hinge. An interior light and three shelf sockets (Slot_1 to Slot_3).
Wall shelf, 100 cm SM_Shelf_Wall_100 Five shelf sockets (Slot_0 to Slot_4) for stocked rows of product.
Cash register BP_Register, using SM_Register_Body and SM_Register_Drawer The cash drawer slides out 26 cm.
Pedal bin BP_PedalBin, using SM_Bin_Pedal_Body and SM_Bin_Pedal_Lid The lid opens 75° on its rear hinge.
Shopping basket BP_Basket, using SM_Basket_Shopping Can be picked up, carried and dropped.
Socket Soda can (lime, cherry, orange) SM_Can_Soda Products can be taken from a shelf slot, carried, dropped and put back.
Pivot Spring water SM_Bottle_Water As above.
Greybox Dairy milk SM_Carton_Milk As above.
Tessel Crisps SM_Bag_Crisps As above.
Morning Grid cereal SM_Box_Cereal As above.

The kit also contains:

Item Assets
Interaction system BPC_Interactable, BPC_Interactor, BP_Pickup
Stocked shelf row BP_ShelfSlot
Product data DT_StoreItems (7 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
Maps L_Sampler_Demo, a lit and stocked corner of a shop; L_Sampler_Overview, every asset and data-table row with a label

The download contains three versions of the kit: an Unreal Engine project, a Blender asset library, 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_CornerStoreSampler/SP_CornerStoreSampler.uproject in Unreal Engine 5.8. The editor starts on L_Sampler_Demo; press Play to walk around it. The first time the project opens, Unreal compiles shaders for the two master materials, so the first start takes longer than later ones.

Adding the props to an existing project

  1. Close the project.
  2. Copy the folder UE5/SP_CornerStoreSampler/Content/SocketAndPivot into the project's Content folder. Keep the folder name unchanged.
  3. Open the project and load SocketAndPivot/CornerStore/Maps/L_Sampler_Demo.

The demo maps set their own GameMode override, so no project settings need to change. Projects created in Unreal Engine 5 use Enhanced Input by default. An older project may still use the legacy input classes; in that case, open Project Settings > Input and set Default Player Input Class to EnhancedPlayerInput and Default Input Component Class to EnhancedInputComponent.

Blender

Open Edit > Preferences > File Paths > Asset Libraries, click Add, and choose the Blender folder from this download. That folder contains SP_CornerStoreSampler_Library.blend, the catalogue file and the textures. The props then appear in the Asset Browser under Corner Store, split into Fixtures and Products. Append (Reuse Data) is the recommended import method; Link also works.

Opening the .blend file directly shows every asset side by side in the Showcase collection.

FBX files

Exports/FBX holds one FBX file per prop, in centimetres with Z up. Seen in Blender's axes, the front of each prop faces -Y; once imported into Unreal Engine it faces +Y. The files include the collision hulls (UCX_) and sockets (SOCKET_) that Unreal Engine reads on import. Other software can ignore or delete them. Textures are in Exports/Textures, and Exports/materials.csv lists the textures and settings for every 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/            BP_Fridge, BP_Register, BP_PedalBin, BP_Basket, BP_ShelfSlot

    Data/                  DT_StoreItems

    Maps/                  L_Sampler_Demo, L_Sampler_Overview

    Materials/             MI_Label_ instances for the printed packaging

    Meshes/Fixtures/       Fridge, shelf, register, bin and basket meshes

    Meshes/Products/       Packaged product meshes

    Textures/              T_Label_ textures

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

The Core folder is the same in every Socket & Pivot kit. When a second kit is installed into the same project, both use one Core folder, and the newer copy should be kept.

Asset names use these prefixes:

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

Two Blueprint components handle every interaction in the kit.

BPC_Interactor belongs on the player pawn. Twenty times a second it traces a line from the camera along the Visibility channel, up to TraceDistance (250 cm by default). If the line hits an actor that owns a BPC_Interactable, that component becomes the focus. The focused object is highlighted, and GetPromptText returns the prompt the HUD displays.

TryInteract is called when the player presses Interact. 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 belongs on anything the player can use. Its settings:

Setting Purpose
MovingPart The component that moves when the object opens. Set it in the owning actor's construction script.
OpenRotation, OpenOffset The change in relative rotation and location between closed and open.
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 instead of opening it.
HighlightWholeActor Highlights every mesh of the actor rather than only the one in view.
OnInteracted Event dispatcher, called with the interactor and the hit component, for custom behaviour.

The highlight is done in the material. When an object gains focus, its meshes receive the value 1 in Custom Primitive Data index 0. M_SP_Master and M_SP_Glass read that value as their Highlight parameter and add a chartreuse Fresnel rim with a 16 % tint towards the same colour. Because nothing is drawn as an overlay or post-process pass, the effect also works on Nanite meshes. To highlight objects that use your own materials, add a scalar parameter to them with Use Custom Primitive Data enabled at index 0.

7. Shelf slots

BP_ShelfSlot represents one row of a single product on a shelf. It attaches to any socket whose name starts with Slot_. The wall shelf has five such sockets and the fridge has three.

Variable Purpose
ItemRow The DT_StoreItems row to stock.
Width, Depth Usable shelf area in centimetres: 92 × 34 on the wall shelf, 50 × 46 in the fridge.
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.

The construction script works out how many units fit from the product mesh's bounds and the row's Facings value, and lays them out. During play, taking a unit spawns a BP_Pickup in the player's hands. The unit can go back into any empty position of a slot that stocks the same product; a slot holding a different product shows no prompt and keeps it out.

To place a slot by hand, drag BP_ShelfSlot into the level. In the Details panel, set its parent to the shelf or fridge, choose the socket, and reset its relative location and rotation to zero. In a Blueprint, use Attach Actor To Component with the Snap to Target rules. Both shelves and the fridge in L_Sampler_Demo are set up this way.

8. The product data table

DT_StoreItems uses the struct S_SP_StoreItem, which has these fields:

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

9. Prop Blueprints

Blueprint Moving part Movement Body socket
BP_Fridge Door Rotates -100° in yaw Hinge_Door. A 900 lm, 7000 K rect light sits at Light_Interior.
BP_Register Drawer Slides 26 cm Slide_Drawer
BP_PedalBin Lid Rotates -75° in roll Hinge_Lid
BP_Basket None Carried as a whole None

On the fridge, looking at any part of the cabinet and pressing Interact opens or closes the door. Carried items are held in front of the camera, and they drop to the floor under physics when released.

10. Using your own character

Add BPC_Interactor to your player pawn and call its TryInteract function from your own Interact input. For the prompt, either read GetPromptText from your interface or bind to the OnFocusChanged dispatcher. BP_SP_DemoHUD exists only to make the demo playable and can be replaced with your own UMG widget.

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 for it to DT_StoreItems, then use that row in a BP_ShelfSlot or a BP_Pickup.

Adding a variant of an existing product

Duplicate the product's label material instance, for example MI_Label_SocketSoda_Lime, and assign a new BaseColorMap. Then add a data-table row that names the label's material slot in OverrideSlot and the new instance in OverrideMaterial.

Making another actor interactive

Add a BPC_Interactable component. For a door, drawer or lid, set MovingPart in the actor's construction script, as BP_Fridge does, and give the component an OpenRotation or an OpenOffset. For any other behaviour, such as switching a light or playing a sound, bind an event to OnInteracted.

Creating a new surface

Create a material instance of M_SP_Master, or of M_SP_Glass for transparent surfaces, and set its parameters:

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 repeat of the textures. The kit's UVs are authored in metres.
EmissiveColor, EmissiveStrength Light emitted by the surface.

Changing the highlight colour

Change HighlightColor and HighlightStrength on the two master materials, or override them on individual material instances.

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_Demo_Room (demo maps only) 630 × 530 × 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. Moving parts pivot on their hinge or slide point.
Collision Simple convex collision on every mesh. The fridge's collision is hollow so that its shelves stay reachable.
LODs Four per mesh, at 100, 50, 25 and 12.5 % of the triangles.
Nanite Enabled on opaque meshes. Disabled on the fridge body, the fridge door and the water bottle, because their transparent parts cannot render through Nanite.
Materials 2 master materials and 29 material instances.
Textures 38 textures. Tiling surfaces are 1024 × 1024 and are applied at 1024 pixels per metre, or 2048 on brushed metal and rubber. Packaging prints are 1024 pixels wide. Prints whose height is not a power of two are stretched to one on import, so they get mipmaps and compression while their UVs stay unchanged.
Texture format Occlusion, roughness and metal masks are packed into one ORM texture. 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 printed labels. No separate lightmap UV channel was authored.
Asset count 106 assets in Content/SocketAndPivot.
Blender library 12 collection assets at metre scale, using Principled BSDF materials that render in EEVEE and Cycles.

In the Blender library, each moving part is parented to its body and limited to the same travel as in Unreal Engine:

Part Constraint Travel
Fridge door Limit Rotation, Z axis 0° to 100°
Bin lid Limit Rotation, X axis 0° to -75°
Register drawer Limit Location, Y axis 0 to -0.26 m

13. Known limitations

  • The kit has been tested in Unreal Engine 5.8.3 and Blender 5.2 LTS only. See section 2 for details.
  • Interactions are designed for single-player games and do not replicate over a network.
  • The kit includes no sound effects.
  • The demo HUD is a minimal Canvas HUD with English text. Prompts are stored as Text, so they can be localised.
  • Interaction uses a single line trace. If the crosshair falls exactly on the 8 mm gap between two products, the trace reaches the shelf behind them instead.
  • Materials that do not read Custom Primitive Data index 0 will not show the focus highlight. Both included master materials read it.
  • The Blender library leaves out the collision hulls and sockets that Unreal Engine uses. They are present in the FBX files.
  • GLB and USD exports are not included in 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.

15. Licence and credits

The terms of use are in LICENSE.txt. In short, the props are free to use in any number of projects, including commercial ones and client work. They 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.

Some surface textures were made from CC0 scans published by ambientCG and Poly Haven, and the packaging artwork uses fonts licensed under the SIL Open Font License. THIRD-PARTY-NOTICES.txt lists each source.

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.