Knowledge base
Knowledge base
Knowledge base
Free, anonymous browsing of Unreal Engine Blueprint examples, node references, and best practices. The same content the WoalzCraft plugin uses to generate Blueprints.
21 results for pickup
Pattern: Pickup actor with SphereCollision(overlap), StaticMesh visual. OnComponentBeginOverlap → CastTo PlayerCharacter → Success: call AddScore/AddItem interface on player → PlaySoundAtLocation → SpawnEmitterAtLocation → DestroyActor(self). Set collision to OverlapOnlyPawn for performance.
Two collision shapes occupying the same space without blocking. Use for triggers (volume, pickup).
PossessPawnUE 5.3, 5.4, 5.5, 5.6, 5.7updated 2mo agoLegacy Cascade system. Prefer Niagara (SpawnSystemAtLocation) for new projects.
SpawnEmitterAtLocationUE 5.3, 5.4, 5.5, 5.6, 5.7updated 2mo agoPattern: Variables CurrentWave(int)=0, EnemiesAlive(int)=0, EnemiesPerWave(Array<int>). StartWave: CurrentWave++ → SET EnemiesAlive=EnemiesPerWave[CurrentWave]. Timer looping: Branch(SpawnedThisWave < EnemiesPerWave[CurrentWave]) → SpawnActor(EnemyClass, RandomSpawnPoint) → SpawnedThisWave++. OnEnemyDeath: EnemiesAlive-- → Branch(EnemiesAlive <= 0) → StartNextWave or Victory.
Create struct FInventoryItem: {ItemName (Name), ItemCount (int), ItemData (object ref)}. Variable: Inventory (Array<FInventoryItem>). AddItem: ForEachLoop(Inventory) → CastTo/Break FInventoryItem → Branch(ItemName==NewItem.Name) → True: Get → Modify Count → Array Set (replace at index) → return. If not found: Make FInventoryItem → Array Add. RemoveItem: Find by name → Branch(Count>1) → True: decrement → Set at index. Else: Array Remove at index. Key: Arrays of structs require 'Array Set' with index to modify in place — getting and modifying a copy does NOT update the array.
string
UGameplayStatics::SpawnEmitterAtLocation. For Niagara, use SpawnSystemAtLocation.
Spawn Emitter at LocationUE 5.0, 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, 5.7updated 2mo agoPattern: Variables bIsSprinting(bool), Stamina(float)=100, MaxStamina(float)=100, SprintSpeed(float)=1200, WalkSpeed(float)=600, DrainRate(float)=20, RecoverRate(float)=10. Sprint pressed: bIsSprinting=true → SetMaxWalkSpeed(SprintSpeed). Released: bIsSprinting=false → SetMaxWalkSpeed(WalkSpeed). Tick: Branch(bIsSprinting) → Stamina -= DrainRate*DT. Else: Stamina += RecoverRate*DT. Clamp(0, Max). If Stamina<=0 → force stop sprint.