Copy the folder. Put NVSurvivalCore into your project's Plugins folder.
2
Open your project. If Unreal asks to rebuild, say yes. The plugin loads automatically.
3
Import the spreadsheets. In the Content Browser click Import, pick the JSON files from the plugin's Data folder, and choose the matching row type when asked. Full list is in The 13 Spreadsheets.
4
Point the plugin at them once.Edit โ Project Settings โ NV Survival Core. Drop each Data Table into its slot. Now you never have to plug them into anything else.
5
Add components. Select your character, click + Add Component, type NV. Pick what you need.
Nothing to inherit from. Your character stays your character. No special GameMode, no base class swap. Everything is a component you drop on.
๐ง How It Works
Every system follows the same four steps:
1
Add the component to your actor
2
Set values in the Details panel, or fill in a spreadsheet row
3
Call nodes from your Blueprint or your widget
4
Bind events to react - play an animation, update a bar, show a message
The one rule to remember. Nodes that start with Request are the ones you call from a widget or a key press. They work in single player and in multiplayer, and they handle the server for you. Everything else runs on the server only. If a node does nothing when you click it in a menu, look for a Request version of it.
Multiplayer is already done. Health bars, backpacks, built walls, tamed animals - all of it syncs by itself. You never touch replication, RPCs or authority.
Content lives in spreadsheets, not in Blueprints. A new item, a new recipe, a new animal or a new wall is a new row in a Data Table. You do not open a Blueprint to add content.
๐ง Player Setup
This is the shopping list for a normal survival character. Add these to your player Blueprint and you have the full game loop.
NV Statshunger, thirst, health, bladder, everything that drainsrequired
NV Inventorythe backpackrequired
NV Interactionlook at things, press E, right-click menurequired
NV Equipmentclothes and the weapon in handrecommended
NV Consumableeating and drinkingrecommended
NV Combatshooting, reloading, knockoutsoptional
NV Buildingbuild mode with the ghost previewoptional
NV Footstepfootstep sounds per ground typeoptional
NV Spellmagic, if your game has itoptional
1
Open your character Blueprint, click + Add Component, type NV, add the ones above.
2
Select the character's root and tick Replicates in the Details panel. Multiplayer will not work without it.
3
Leave every Table slot on the components empty. They fill themselves from Project Settings.
4
Press Play. Hunger and thirst already tick down. That is the whole setup.
๐บ Building the HUD
Every bar on screen works the same way. Here it is once, with hunger as the example.
1
Make a Widget Blueprint with a Progress Bar in it.
2
On Event Construct: Get Owning Player Pawn โ Get Component by Class (NV Stats). Promote it to a variable called Stats.
3
Drag off Stats, find the red event On Stat Changed, and click Bind Event.
4
Inside that bound event you get Stat Tag, New Value and New Percent. Check if Stat Tag matches NV.Stat.Hunger, then Set Percent on your bar with New Percent.
5
Repeat for thirst, stamina, health. Same event, different tag.
Do not use Tick for bars. The event fires only when the value actually changes, which is cheaper and always correct. Use Get Stat Percent on Event Construct once, so the bar starts at the right value.
Same pattern everywhere. Backpack grid listens to On Inventory Changed. Crosshair text listens to On Target Changed. Level popup listens to On Level Up. Ammo counter listens to On Ammo Changed. Find the component, bind its event, update your widget.
๐ณ Game Recipes
Pick the game you are making. Add these. Press Play.
Combat + Equipment + Land Claim + Explosives + Bed + Daily Events
๐ Survival Needs
๐NV Stats
MULTIPLAYERUSES DT_STATS
Everything that fills up or drains: health, stamina, hunger, thirst, bladder, bowels, nausea, stress, mana, sleep, hygiene, drunkenness and body temperature.
What to set in Details panel
Stat Tableleave empty, it takes the one from Project Settingsempty
Update Intervalhow often needs recalculate, in seconds0.2
Everything else is in the spreadsheet
Max Valuehow big the bar is100
Start Percenthow full you spawn with it1.0
Base Rate Per Secondminus drains it, plus refills it, zero holds it still-0.05
Replicate To Everyoneon for health bars over heads, off for private stuff like bladderOff
Thresholds"when this bar drops under 25%, shout a message"list
What you can do (Blueprint nodes)
Get Stat Percentโ0 to 1, plug straight into a progress bar
Get Stat Valueโthe raw number, for text like "68 / 100"
Get Effective Rateโis it going up or down right now, for a trend arrow
Get All Statsโevery bar at once, for a full status screen
Modify Statโ add or remove an amount (minus takes away)
Set Stat Maxโ make the bar bigger, e.g. more max stamina from a skill
Add Rate Modifierโ"drain 3x faster while sprinting". Keep the handle it gives you!
Remove Rate Modifierโ plug in the handle to stop the effect
Reset To Defaultsโ everything back to spawn values, use this on respawn
Events you can bind
On Stat Changed fires on any change. Gives: which stat, new value, new percent. This is your HUD event.
On Stat Threshold fires when a bar crosses a line you set. Gives: which stat, which message. This is your "you are starving" event.
Sprint example. On sprint start: Add Rate Modifier (Stamina, Multiplier 3), save the handle in a variable. On sprint stop: Remove Rate Modifier with that handle. That is the whole sprint drain system.
Poison example.Add Rate Modifier (Health, Multiplier 1, Additive -2) takes 2 HP per second no matter what else is going on. Remove the handle when the poison wears off.
Thresholds are how needs talk to your game. In the spreadsheet you say "Hunger at 10% sends NV.Event.Stat.Critical". In your character you bind On Stat Threshold, check for that pair, and start dealing starvation damage. Bladder at 100% sends a message too, and you play the discomfort animation. The plugin never decides what a threshold means - you do.
๐ฅซNV Consumable
MULTIPLAYERUSES DT_CONSUMABLES
Eating, drinking, smoking, injecting, bandaging. A sandwich, a bottle of water, vodka and a cigarette all run through this one component.
What to set in Details panel
Consumable Tableleave empty for the Project Settings oneempty
What one spreadsheet row gives you
MethodEat, Drink, Smoke, Inject or Apply - pick your animation from thisEat
Consume Time Secondshow long the animation lasts3.0
Instant Effects"+45 hunger, +8 bowels" - happens right awaylist
Effect Tagyour hook for smoke, screen blur, a needle flashNV.Effect.Eat
Addiction Attributewhich skill grows every time you use itoptional
Leftover Item Idwhat stays in your hands - empty bottle, used syringeoptional
What you can do (Blueprint nodes)
Request Consumeโcall this one from the inventory UI or a hotkey
Is Consumingโtrue while the animation is playing, use it to block other input
Get Consumable Definitionโthe row, for tooltips like "+45 Food"
Clear All Timed Effectsโ sober up instantly, use on death or on medical treatment
Events you can bind
On Consumed fires when it is finished. Gives: item, method, effect tag. Play sound, particles, screen effect here.
Whole workflow. Player right-clicks food in the backpack โ your widget calls Request Consume with the item id โ plugin removes one unit, applies the effects, fires On Consumed โ you play the eating montage. You wrote two nodes.
One actor covers everything the player walks up to and uses to fix a need. The toilet and the weight bench are the same actor with a different action list.
What to set on the actor
Actionsthe list of things this object offers on right-clicklist
Single User At A Timeone person on the toilet, pleaseOn
What one action looks like
Labelthe text in the menu, e.g. "Use toilet"text
Stat Tag + Stat Deltawhich bar it moves and by how much (minus empties it)Bladder -100
Required Stat + Min Percentgrey the option out when it makes no senseBladder 5%
Duration Secondshow long the animation runs3.0
Trained Attribute + XPthis is what turns a bench into a gymStrength 12
Events you can bind
On Utility Used fires when the action finishes. Gives: who used it, which action. Flush sound goes here.
Make a gym in one minute. Place the actor, add one action: Label "Bench press", Stat Tag Stamina -15, Required Stat Stamina 20%, Trained Attribute NV.Attribute.Strength with 12 XP, Duration 4 seconds. Done - repeatable strength training with a stamina cost.
๐๏ธBed & Respawn
MULTIPLAYERACTOR
A bed is a place to sleep and the spot where that player wakes up after dying. One bed per player.
What to set on the actor
Respawn Offsetwhere the player lands next to the bed0, 120, 20
Allow Stealingon = anyone can take over someone else's bedOff
Actionsit is also a Placeable Utility, so "Sleep" refills the sleep barlist
What you can do (Blueprint nodes)
Is Claimedโis this bed taken
Claim Forโ assign the bed to a player
Release Claimโ free it up
Get Respawn Transform Forโon the Respawn Subsystem: where should this player wake up
Events you can bind
On Bed Claimed fires when a player takes the bed. Gives: player id, bed.
In your GameMode. When a player respawns, call Get Respawn Transform For. If it returns true, spawn them there. If it returns false they have no bed, so use your normal Player Start. That is the entire respawn system.
๐ Skills & Levels
๐NV Attribute
MULTIPLAYERUSES DT_ATTRIBUTES + DT_LEVELS
Two ways to get better at the same time: earn XP, level up, spend skill points - and get better at things just by doing them. Dying takes some of it back.
What to set in Details panel
Attribute Table / Level Tableleave empty for Project Settingsempty
Death Level Loss Percenthow much of your skill levels death eats0.1
Refund Lost Levels As Pointson = death sets you back but does not delete the workOn
What you can do (Blueprint nodes)
Add Experienceโ character XP. Levels and skill points happen by themselves.
Add Attribute Experienceโ learning by doing: swinging a pickaxe raises mining
Request Spend Pointโcall this from the skill screen when a player clicks "+"
Get Attribute Snapshotโthe whole skill screen in one node: names, levels, XP, and can-I-afford-it
Get Attribute Valueโthe number other systems should ask for (level ร value per level)
Get Character Level / Get Available Pointsโfor the top of the screen
Has Unlockโ"can this player build stone yet?"
Grant Unlockโ hand out an unlock from a quest reward or an admin command
Apply Death Penaltyโ call this when the player dies
Events you can bind
On Level Up gives: new level, points from this level. Fanfare and popup go here.
On Available Points Changed refresh the "3 points to spend" badge
On Attribute Changed one skill went up
On Unlocked gives the new unlock tags. Perfect for a "New blueprints available" toast.
Unlocks are how you gate content. Walls, recipes and spells never ask "what level are you". They ask "do you have this unlock". So moving stone building from level 5 to level 12 is one cell in the Levels spreadsheet, not a hunt through Blueprints.
๐งโ๐คNV Appearance
MULTIPLAYER
The character creator's numbers: which head, which hair, slider positions, colours, voice, name. The plugin stores and syncs them, you decide what they look like.
What to set in Details panel
Part Variant Countshow many heads, how many hairstyles - used when randomisinglist
Slider Counthow many 0-1 sliders your creator has0
Color Palettecolours a random NPC can rolllist
Name Poolnames a random NPC can rolllist
What you can do (Blueprint nodes)
Request Set Appearanceโcall this when the player confirms in the creator
Get Appearanceโcurrent values, to fill the creator sliders
Randomize Appearanceโa fresh random look, great for spawning NPCs
Events you can bind
On Appearance Changed fires on every machine. This is where you swap the head mesh, set hair colour, pick the voice.
Why it is only numbers. The plugin has no idea what your art looks like. It syncs "head 3, hair 7, skin colour blue" to everyone and fires the event; your Blueprint turns that into meshes. That means the creator works in multiplayer without you doing anything.
๐ Items
๐NV Inventory
MULTIPLAYERUSES DT_ITEMS
The backpack. The same component is also every storage crate, every corpse and every merchant's stock - only the slot count changes.
What to set in Details panel
Num Slotssize of the grid30
Max Weight0 means no weight limit at all0
Default World Item Classthe actor that appears when you drop somethingclass
Drop Distancehow far in front of you dropped items land120
Max Container Reachhow far you can reach into a crate500
What you can do (Blueprint nodes)
Get Slotsโthe full list for your inventory grid
Get Stack Atโwhat is in slot number X
Get Item Definitionโname, icon, weight - everything for the tooltip
Get Item Countโ"how much wood do I have"
Has Itemsโcheck a whole cost list at once, for greying out buttons
Get Total Weight / Get Free Slot Countโfor the "24/30 - 41 kg" line
Add Item By Idโgive the player something. Returns how many actually fit.
Remove Item By Idโ take something away
Consume Itemsโ take a whole cost list, all or nothing. Building and crafting use this.
Request Move Itemโ drag and drop inside the same bag
Request Split Stackโ split a pile in two
Request Drop Itemโ throw it on the ground
Request Dismantleโ break an item down into parts
Request Transferโ push from your bag into a crate
Request Pull Fromโ take from a crate into your bag
Events you can bind
On Inventory Changed fires whenever anything moves. Rebuild your grid here and nowhere else.
The one mistake everyone makes. When moving items between your bag and a crate, always call Request Transfer / Request Pull From on the player's inventory component, never on the crate's. A crate has no player behind it, so a request sent from the crate goes nowhere.
Why two rifles will not stack. Items only merge into one pile when neither has attachments, neither has durability and neither is broken. Otherwise you would merge a scoped rifle into a plain one and lose the scope. Resources stack because their durability is 0 in the spreadsheet.
๐ฅพNV Equipment
MULTIPLAYERUSES DT_ITEMS
What the character is wearing and holding. Nine slots ready to go: head, face, torso, hands, legs, feet, back, main hand, off hand.
What to set in Details panel
Permanent Damage Typesdamage that can ruin gear forever, e.g. bullets and knivestag list
Permanent Break Chancechance such a hit destroys the piece for good0.15
What you can do (Blueprint nodes)
Request Equipโcall from the backpack when a player drags a shirt onto a slot
Request Unequipโ take it off, back into the bag
Get Equippedโwhat is in a given slot
Get Primary Hand Itemโthe weapon in hand, shortcut for the combat system
Apply Durability Damageโ wear gear down when the player gets hit
Repair Slotโ fix gear (refuses anything ruined for good)
Drop All To Inventoryโ dump everything into a corpse or a loot bag
Events you can bind
On Equipment Changed gives: slot, item. This is where you attach or hide the mesh. Fires on every machine so other players see the clothes.
On Item Broken gives: slot, and whether it is gone for good. Play a cloth-tear sound.
How to show clothes. Bind On Equipment Changed. If the item is empty, hide the mesh you keep for that slot. If it is not, load Equip Mesh from the item row and attach it. Ten nodes, and it works in multiplayer.
Need a hip holster or a second backpack slot? Slots are tags, not a fixed list. Add NV.EquipSlot.Holster in Project Settings โ Gameplay Tags and use it in the item row. No rebuild, no programmer.
๐ฆItems On The Ground
MULTIPLAYERACTOR
The actor that appears when something is dropped, when a crate is destroyed, or when an animal is looted. Walk up, press E, it goes in your bag.
What to set on the actor
Life Span Seconds0 means it lies there forever; set it to clean up litter on a server0
What you can do (Blueprint nodes)
Setup From Stackโ fill it with items and it swaps to the right mesh by itself
Get Stackโwhat is lying there
You usually never touch this. Dropping from the inventory spawns it for you. You only spawn it by hand for loot piles you place in the level.
โ๏ธWorkbench
MULTIPLAYERACTORUSES DT_RECIPES
One actor is your carpentry table, forge, kitchen and lab. Which recipes it offers depends on one tag you set on it.
What to set on the actor
Bench Tagwhich recipes belong here, e.g. NV.Bench.Forgetag
Max Queue Lengthhow many jobs can wait in line8
Speed Multiplier0.5 makes this bench twice as fast as the recipe says1.0
What you can do (Blueprint nodes)
Get Recipe Menuโthe whole crafting list for this player, with "has materials", "unlocked" and "skill high enough" already worked out
Enqueue Craftโ order something. Materials are taken right away.
Cancel Jobโ cancel and get the materials back
Get Queue / Is Busyโfor the progress list in the UI
Events you can bind
On Craft Finished gives: recipe, who ordered it. The item is already in their bag - just play the ding.
On Craft Queue Changed refresh the queue widget
Your crafting UI is one node.Get Recipe Menu hands you everything you need per row: name, icon, ingredients, and three true/false flags. Grey out the button when a flag is false. No maths on your side.
Hand crafting. Leave Required Bench empty in the recipe row and the player can make it anywhere, with no bench at all.
๐งฑ Base Building
๐๏ธNV Building
MULTIPLAYERUSES DT_BUILDPIECES
Build mode: a see-through preview in front of the player that snaps to what is already built, turns red when it cannot go there, and turns into a real wall when you click.
What to set in Details panel
Build Distancehow far in front of you can place500
Snap Distancehow close to a socket before it snaps200
Rotation Stepdegrees per mouse wheel click15
Max Ground Anglesteeper than this and foundations refuse35
Preview Materialthe ghost material; you tint it from the resultmaterial
Water Actor Tagactors with this tag count as waterNVWater
What you can do (Blueprint nodes)
Get Build Menuโone tab of the build menu with costs and "can I afford it"
Get Available Categoriesโonly tabs that actually have something in them
Start Build Modeโ player picked a wall, show the ghost
Stop Build Modeโ cancel
Rotate Yaw / Rotate Pitchโ mouse wheel and arrow keys
Confirm Placementโ left click, builds it if the ghost is green
Get Placement Resultโwhy the ghost is red, so the HUD can say something useful
Events you can bind
On Placement Result Changed tint the ghost green or red here, and show the reason text
On Build Mode Changed show or hide the build HUD
The reasons a ghost is red
No Surfaceyou are pointing at the sky
Blockedsomething is already there
Outside Land Claimthis piece needs a claim and there is none
Foreign Land Claimsomeone else's plot
On Wateronly boat foundations may sit on water
Missing Resourcesnot enough materials
Not Unlockedthe player has not earned this tier
Too Steepthe slope is worse than Max Ground Angle
Key mapping that works. Mouse wheel โ Rotate Yaw. Left click โ Confirm Placement. Right click โ Stop Build Mode. Q โ open the build menu. That is the layout players already know from other survival games.
Snapping is done with sockets. Put sockets on your wall meshes and name them starting with Snap_. That is all - the system finds them. No grid to configure.
๐งฑBuildable Piece (walls, floors, crates)
MULTIPLAYERACTOR
Everything the player places is one of these: it has health, can be raided, can be repaired, can be taken back down, and survives a server restart.
What to set on the actor
Max Healthhow much punishment before it falls500
Snap Prefixthe socket name prefix used for snappingSnap_
Refund On Dismantlewhat the owner gets back when taking it downlist
What you can do (Blueprint nodes)
Get Healthโcurrent health, for a repair hammer readout
Repair Byโ patch it up after a raid
Get Snap Transformsโall snap points, if you want your own snapping UI
Events you can bind
On Piece Damaged gives: new health, percent. Swap to a cracked material here.
On Piece Destroyed debris, dust, sound
๐ฉLand Claim
MULTIPLAYERACTOR
Marks the ground your group owns. Other players cannot build inside it. It pays rent from its own box, so an abandoned base eventually stops being protected.
What to set on the actor
Claim Radiusprotected area, in centimetres3000
Upkeep Interval Secondshow often rent is taken3600
Upkeep Costwhat one period costs. Leave empty for a free claim.list
Grace Periodsmissed payments allowed before the claim dies2
What you can do (Blueprint nodes)
Authorize Playerโ let a friend build here
Revoke Playerโ kick them off the list
Is Authorizedโis this player on the list
Is Inside Claimโis this spot inside my plot
Is Lapsedโdid it stop paying rent - show a warning on the HUD
Check Land Claimโon the Building Subsystem: "may this player build at this spot"
Upkeep drives server drama. Empty the upkeep list and claims are permanent and free. Fill it and players must keep coming back with wood and stone, which is what makes a base worth raiding.
๐ชคTrap
MULTIPLAYERACTOR
One actor is both a spike trap and a cage. It never triggers on the owner or on friends authorised in the claim, so you can walk around your own yard.
What to set on the actor
Trigger Radiushow close before it goes off120
Damagewhat it does when it hurts60
Capture Insteadon = hold the victim instead of hurting them. This is your animal cage.Off
Capture Secondshow long they are stuck30
Only Capture Baby Creaturesa cage that ignores angry adultsOff
Single Use / Rearm Secondsone-shot, or resets itself after a delayOn / 20
Events you can bind
On Trap Triggered gives: victim, and whether it was a capture. Snap sound and animation here.
๐ฃExplosive
MULTIPLAYERACTOR
The raiding charge. Plant it, a fuse burns down, then it damages everything nearby - buildings harder than people, so you can price a raid separately from PvP.
What to set on the actor
Fuse Secondstime from planting to boom10
Blast Radius / Blast Damagesize and power600 / 400
Structure Damage Multiplierwalls take this much more than players2.5
Edge Damage Fractionhow much damage is left at the edge of the blast0.25
Require Line Of Sighton = a wall in the way blocks the blastOn
What you can do (Blueprint nodes)
Armโ light the fuse
Detonateโ blow it now, skip the fuse
Get Fuse Remainingโseconds left, for the beeping countdown
Events you can bind
On Explosive Armed start the beeping and the blinking light
On Explosive Detonated gives the location. Particles, camera shake, sound.
๐ซ Combat
๐ซNV Combat
MULTIPLAYERUSES DT_WEAPONS
Shooting, ammo, reloading, weapon attachments, and knocking people out instead of killing them.
What to set in Details panel
Knockout Duration Secondshow long someone stays down before waking up60
Health On Recoverhealth they wake up with, so nobody stands up on zero25
Max Skill Spread Reductionhow much better aim gets at max skill0.5
Max Muzzle Offsetanti-cheat limit, leave it alone unless your camera is unusual250
What you can do (Blueprint nodes)
Request Fireโone shot. For automatics, loop it on a timer at the weapon's fire rate.
Request Reloadโ start reloading
Get Active Weapon Statsโdamage, range, magazine after attachments - your weapon info panel
Get Rounds In Magazineโthe ammo counter
Is Reloading / Is Knocked Outโblock input, show the down state
Apply Knockoutโ put someone down without killing them
Reviveโ wake them early with a medkit or a teammate
Events you can bind
On Weapon Fired gives: impact point, did it hit. Muzzle flash, tracer, decal.
On Ammo Changed update the ammo counter
On Knockout Changed gives: down or up, and who did it. Ragdoll and camera here.
Non-lethal weapons are a checkbox. Tick Non Lethal in the weapon row - a bat, a taser, rubber rounds - and hits knock people out instead of killing them. Their gear can then be looted while they are down.
Attachments just work. A suppressor with Spread Multiplier 0.85 really does make the gun steadier, because Get Active Weapon Stats already did the maths for you.
๐ฅTaking Damage
INTERFACE
Players, animals, walls and crates all take damage the same way, so a knife and a raid charge can behave differently against a wall than against a person.
What one hit carries
Amounthow much damagenumber
Damage Typebullet, explosive, melee - drives armour and gear weartag
Instigator / Causerwho did it, and with whatactor
Hit Location / Hit Bonefor blood decals and headshotswhere
Non Lethalknock out instead of killOff
What you can do (Blueprint nodes)
Apply Damage Infoโhurt anything. Returns how much actually went through.
Get Health Percentโworks on a player, an animal or a wall - great for one shared health bar widget
Is Dead Or Destroyedโtrue or false
Want your own destructible object? Add the NV Damageable interface to your Blueprint and fill in those three events. Now bullets, traps and explosions all work on it with no extra code.
๐ World & NPCs
๐Creature (animals, taming, breeding)
MULTIPLAYERACTORUSES DT_CREATURES
Babies run away and can be caught, adults fight back, tamed animals belong to a player, and a fed pair makes more. The actor holds the state, your Behaviour Tree decides what to do with it.
What one spreadsheet row gives you
Baby Mesh / Adult Mesh / Baby Scalehow it looks at each age; one mesh scaled down also worksassets
Growth Time Secondshow long until the baby grows up1800
Adult Is Hostile / Attack Damagedoes the adult attack on sight, and how hardOn / 18
Tame Food Item Id / Feeds To Tamewhat to feed and how many timesBerries / 3
Min Hunger Percent To Breedhungry herds refuse to breed - this stops the server drowning in pigs0.6
Loot On Deathmeat, hide, fatlist
What you can do (Blueprint nodes)
Feed Fromโ feed it from a player's bag. Enough times and it becomes theirs.
Tame Byโ tame instantly, for cages and scripted moments
Breed Withโmakes a baby between two parents
Is Tamed / Get Tamed By Player Idโwhose animal is this
Get Time To Adultโseconds left, for a "grows up in 12:40" label
Is Hostileโwill it attack me right now
Events you can bind
On Creature Tamed gives: animal, new owner. Heart particles, name tag.
On Creature Grown baby became an adult
On Creature Died loot is dropped for you already
Every animal carries its own Stats component with health, hunger and thirst. That is why the same AI nodes work for a boar and for a villager.
๐คNV Relationship (trade, prices, stealing)
MULTIPLAYER
Put this on an NPC and every player gets their own score with them. The same merchant can love one survivor, refuse to serve another, and remember forever who tried to rob him.
What to set in Details panel
Currency Item Idwhich item is moneyCoin
Sell Markup1.25 = he sells to you 25% above value1.25
Buy Rate0.6 = he pays you 60% of value0.6
Max Relation Discountbest price a true friend can get0.25
Min Relation To Tradebelow this he will not trade at all-15
Base Steal Chancepickpocket odds with no skill0.35
Caught Stealing Penaltyhow much he hates you after catching you40
What you can do (Blueprint nodes)
Get Sell Price / Get Buy Priceโthe numbers to show in the shop window
Get DispositionโHostile, Unfriendly, Neutral, Friendly or Allied - drives your dialogue
Can Trade Withโshould the Trade button even appear
Modify Relationโ reward or punish: quests, gifts, punching him
Loot Playerโ the NPC robs a knocked-out player back
Events you can bind
On Relation Changed gives: player, new value, new mood. Swap the NPC's face or voice line.
On Rob Attempt gives: thief, success or not. Guards react here.
Trading goes through the player. Call Request Trade and Request Rob on the player's NV Interaction component, not on the NPC. An NPC has no player behind it, so requests sent from the NPC never arrive.
๐ง AI Nodes
BEHAVIOUR TREE
Five ready-made Behaviour Tree nodes plus an AI Controller that already knows the standard blackboard names. Works for animals and for humans.
Blackboard keys the controller expects
TargetActorwho we are afterObject
MoveLocationwhere to walkVector
ShouldFleerun instead of fightBool
NeedsAttentionhungry or thirstyBool
HomeLocationthe den or camp it returns toVector
The nodes you drop into your tree
NV Find Targetโ service. Finds the nearest target, and flips ShouldFlee when health is low.
NV Check Needsโ service. Watches hunger and thirst, raises NeedsAttention.
NV Attack Targetโ task. Hits the target, using the animal's own damage value.
NV Find Flee Locationโ task. Picks an escape point, with a bit of scatter so the herd does not run in a line.
NV Find Wander Locationโ task. Picks a spot to stroll to around home.
A working animal brain in five minutes. Selector โ branch 1: if ShouldFlee, NV Find Flee Location + Move To. Branch 2: if TargetActor is set, Move To + NV Attack Target. Branch 3: NV Find Wander Location + Move To + Wait. Add both services on the root.
๐ฉ๏ธDaily Events
USES DT_EVENTS
The server rolls an event now and then - a raid, a storm, a good trading day - and tells the whole game about it with one tag.
What one spreadsheet row gives you
Event Tagwhat the rest of the game listens fortag
Weighthigher = happens more often1.0
Duration Secondshow long it lasts600
Announceshould players see it on screenOn
What you can do (Blueprint nodes)
Start Random Eventโ roll one now (never the same one twice in a row)
Start Eventโ force a specific one, for admin commands and story beats
Get Active Event Tagโwhat is going on right now
Get Active Event Time Remainingโcountdown for the HUD
Events you can bind
On Server Event Started gives: id and the whole row. Banner, weather change, spawn a raid party.
On Server Event Ended put everything back
๐ ๏ธ Extras
๐๏ธNV Interaction
MULTIPLAYER
Looking at things and using them. One component covers opening a crate, picking up a rock, talking to an NPC and the right-click menu on a toilet.
What to set in Details panel
Interact Distancehow far you can reach300
Trace Intervalhow often it checks what you look at0.1
Trace Radiusbigger forgives sloppy aim12
What you can do (Blueprint nodes)
Get Current Promptโ"Open crate" - the text under your crosshair
Get Current Targetโwhat you are looking at
Request Interactโ your E key
Get Context Actionsโthe right-click menu list, ready to build buttons from
Request Context Actionโ player clicked one of those buttons
Request Trade / Request Robโ shop and pickpocket, always called from here
Events you can bind
On Target Changed gives: new target, prompt text. Show or hide your interaction widget here.
Making your own usable object. Add the NV Interactable interface to any Blueprint. Fill in Get Interaction Prompt (the crosshair text) and On Interact (what happens). Optional: Get Context Actions for extra right-click entries. Your object now works with the whole system.
๐ฃNV Footstep
USES DT_FOOTSTEPS
The right footstep sound for the ground under the foot: grass, mud, wood, metal, water.
What to set in Details panel
Auto Footstepson = it plays steps by itself, no animation work neededOn
Stride Lengthhow far you walk between steps, in centimetres160
Run Speed Thresholdfaster than this counts as running450
Foot Bonesnames of the foot bones, it alternates between themlist
Landscape Fallback Surfacewhat terrain sounds like before you bake landscape physical materialsSurface1
What you can do (Blueprint nodes)
Play Footstepโ call from an animation notify, with the foot bone name
Probe Surfaceโwhat am I standing on - handy for splashes and dust
Events you can bind
On Footstep gives: location, surface. Footprint decals and AI noise go here.
Start with Auto on. You get sound immediately. Later, when you add footstep notifies to your animations, turn Auto off and call Play Footstep from the notify - then the sound lands exactly with the foot.
โตSeats & Boats
MULTIPLAYER
Two components: one puts people in seats (cars, boats, chairs), the other makes a boat float without the Water plugin.
NV Seat - what to set
Seatsone entry per seat: socket name, is it the driver, prompt textlist
Exit Offsetwhere the player lands when getting out0, 200, 100
NV Seat - nodes
Enter Seatโ sit someone down
Leave Seatโ get out
Get Free Seat Indexโfirst free seat, driver first if you ask for it
Get Driverโwho is steering
Eject Allโ throw everyone out when the boat breaks apart
NV Buoyancy - what to set
Buoyancy Pointsfour hull corners = a stable boat; one point = a bobbing buoylist
Water Level Zheight of the water surface in the world0
Buoyancy Strengthabove 1 it rides high, below 1 it sinks1.2
Vertical / Lateral Dampingwithout damping the boat bounces like a ball2.0 / 0.8
Events you can bind
On Seat Changed gives: seat, who, in or out. Swap the camera and the animation here.
โจNV Spell (optional magic)
MULTIPLAYERUSES DT_SPELLS
Mana, cooldowns and cast times. Until the player earns the magic unlock, this component quietly does nothing - so you can ship a game with no magic at all.
What one spreadsheet row gives you
KindProjectile, Instant Hit, Self Buff, Heal or ShapeshiftProjectile
Mana Cost / Cooldown / Cast Time / Rangethe casting economynumbers
Powerhow much it hurts or heals50
Required Unlock / Attribute Levelwho is allowed to learn itgates
What you can do (Blueprint nodes)
Request Castโ the spell bar button or hotkey
Can Castโgives the exact reason: no mana, on cooldown, skill too low. Colour the icon with it.
Get Cooldown Remainingโfor the sweeping cooldown circle
On Spell Cast Started the charge-up animation and glow
On Spell Cast it actually landed. Impact effect here.
On Spell Learned new page in the spellbook
๐พSaving The World
SERVER
Built walls, crate contents, tamed animals and player progress survive a server restart. It finds everything by itself - there is no list to maintain.
What you can do (Blueprint nodes)
Save Worldโ write everything to a save slot
Load Worldโ put it all back, no duplicates
Does Save Existโfor a Continue button
Count Saveable Actorsโhandy sanity check while testing
Making your own object persistent
1. Add the interfaceNV Saveable on your Blueprint
2. Tick SaveGameon every variable that must survive, in Advanced on the variable
3. Answer one questionShould Respawn On Load: true if players built it, false if it was already in the level
Autosave is already on. Every 5 minutes by default, set in Project Settings. Set it to 0 to turn it off and drive saving yourself.
๐ฅ๏ธ The HUD Pack
The plugin ships a complete, working HUD: needs bars, health and stamina, hotbar, backpack, interaction prompt and notifications. Every one of these widgets has a C++ parent that already does the work โ reads the values, listens for changes, redraws itself. You only change how it looks.
You do not write a single node to make it run. Add one component to your character, point it at the HUD widget, press Play. Bars move, the backpack fills up, the prompt appears when you look at things.
๐๏ธNV Hud Manager
MULTIPLAYERADD TO CHARACTER
The one component that turns the HUD on. It creates the widgets, opens and closes screens, switches the mouse cursor on and off, and takes over the keys.
What to set in Details panel
Hud Widget Classthe always-on HUDWBP_NV_HUD
Inventory Widget Classopens on TabWBP_NV_Inventory
Crafting / Build Menu / Skills Widget Classyour own screens, leave empty until you make themempty
Hud Mapping Contextthe key set, added on top of your movement keysIMC_NV_HUD
Mapping Priorityhigher than movement, so Esc always works10
IA Toggle Inventory / Crafting / Building / Skillsone input action eachIA_NV_*
IA Close Screen / Interact / Use Hotbar / Cycle Hotbarthe rest of the keysIA_NV_*
IA Hotbar Slotsarray of six actions, order = slot number6 entries
What you can do (Blueprint nodes)
Open Screenโ open Inventory, Crafting, Building or Skills
Close Screenโ close whatever is open
Toggle Screenโ open it, or close it if it is already up
Show Toastโ a message in the corner from anywhere in your game
Is Screen Openโblock shooting while the backpack is up
Get Active Screenโwhich one is open right now
Get Screen Widgetโthe open screen, e.g. to point the backpack at a crate
Get Hudโthe main HUD widget
Events you can bind
On Screen Changed gives the new screen. Pause your ambient sound, blur the background, whatever fits.
Cursor and input mode are handled. Open a screen and the mouse appears, the game keeps running behind it. Close it and the cursor goes away. You do not touch Set Input Mode anywhere.
What is in the pack
Widget
What it is
WBP_NV_HUD
The screen you always see. Holds the five pieces below.
One bar. Both panels above build themselves out of these.
WBP_NV_Hotbar
Six slots along the bottom, keys 1-6.
WBP_NV_ItemSlot
One item square: icon, count, condition strip. Used by the hotbar and the backpack.
WBP_NV_Inventory
The backpack: grid, weight, item details, Use / Drop / Scrap.
WBP_NV_Prompt
The "E โ PICK UP" line under the crosshair.
WBP_NV_Toast
One notification.
WBP_NV_ToastStack
The corner where notifications pile up. Four at a time, three seconds each.
๐ Wiring It Up
1
Add the component. Open your character Blueprint, + Add Component, type NV Hud Manager.
2
Point it at the widgets. Hud Widget Class โ WBP_NV_HUD, Inventory Widget Class โ WBP_NV_Inventory.
3
Point it at the keys. Hud Mapping Context โ IMC_NV_HUD, then drop each IA_NV_* action into its matching slot. The six hotbar actions go into the array in order.
4
Press Play. Bars are moving, Tab opens the backpack, E picks things up.
Only the local player gets a HUD. The component checks that for you, so the same character Blueprint works on a dedicated server without spawning widgets nobody sees.
If the HUD does not appear: the character must have the survival components too. The bars read from NV Stats, the backpack from NV Inventory, the prompt from NV Interaction. Missing a component means that part of the HUD simply stays empty.
๐ท๏ธ Child Names
This is the one rule when you restyle. Each HUD widget has a C++ parent that looks for children by name. Rename, delete or retype a child and that part stops updating. Everything else in the widget is yours to move, recolour and rebuild.
Optional really means optional. Do not want a value number on your bars? Delete Text_Value. The bar keeps working. Want a bare hotbar with no counts? Delete Text_Quantity from the slot.
Want a different bar look? Duplicate WBP_NV_NeedBar, restyle the copy, then set Bar Class on the panel to your copy. One field, whole HUD changes.
โจ๏ธ Key Bindings
Keys live in IMC_NV_HUD and run on Enhanced Input, so players can rebind them in your options menu like any other control. The layout follows what players already know from Rust, 7 Days to Die and Valheim.
Key
Does
Input Action
Tab
Open / close the backpack
IA_NV_Inventory
C
Crafting screen
IA_NV_Crafting
B
Build menu
IA_NV_Building
K
Skills screen
IA_NV_Skills
Esc
Close whatever is open
IA_NV_CloseScreen
E
Interact with what you are looking at
IA_NV_Interact
F
Use the selected hotbar item
IA_NV_UseHotbar
1 - 6
Pick a hotbar slot
IA_NV_HotbarSlot1 โฆ 6
Mouse wheel
Scroll through the hotbar
IA_NV_CycleHotbar
Changing a key
1
Open IMC_NV_HUD.
2
Find the row with the action, click the key field, press the new key.
3
Done. Nothing else to update โ the component asks for the action, not for the key.
E is deliberately routed through the HUD. With a screen open, E belongs to the interface, not to the world โ so you do not pick up a rock while clicking around your backpack.
Your movement keys stay untouched. The HUD context is added on top of whatever you already use, at a higher priority. Nothing in your existing input setup needs changing.
๐จ Restyling
The pack ships in a worn industrial look: khaki panels, thin near-black outlines, brass accents, stencil headings. Three things keep it consistent, and all three are one field each.
Colours
Get Palette Colora node that hands you the exact colour by name, so you never paste hex codes into widgetsnode
Red / Brass / Olive / Mossalarm, warning and accents, headings, good newsaccents
F_NVSurvival ยท Headingstencil caps for titles, buttons and numbersBlack Ops One
F_NVSurvival ยท Bodydescriptions and labelsOswald SemiBold
F_NVSurvival ยท BodyBold / BodyLightemphasis and quieter textOswald Bold / Medium
Bar colours come from your data, not from the widget. A bar turns amber and then red on its own, using the thresholds you set in DT_Stats. Change the threshold in the spreadsheet and every bar in the game follows.
๐ The 13 Spreadsheets
This is where your game actually lives. Import each JSON from the plugin's Data folder and pick the row type below when Unreal asks.
Spreadsheet
Row type to pick on import
What you put in it
DT_Items
FNVItemDefinition
Every item: name, icon, stack size, weight, price, durability, which slot it is worn in, what you get for scrapping it
DT_Stats
FNVStatDefinition
Every bar: size, start value, drain speed, who can see it, threshold messages
DT_Attributes
FNVAttributeDefinition
Skills: level cap, what one level is worth, point cost, XP per level
DT_Levels
FNVLevelDefinition
The XP curve: how much for each level, points given, what it unlocks
DT_BuildPieces
FNVBuildPieceDefinition
Everything placeable: tab, tier, cost, health, claim and water rules
DT_Recipes
FNVRecipeDefinition
Crafting: what goes in, what comes out, how long, which bench, which skill
DT_Weapons
FNVWeaponDefinition
Guns: damage, rate of fire, range, spread, magazine, recoil, ammo, reload time
DT_Attachments
FNVAttachmentDefinition
Scopes, grips, suppressors: multipliers for damage, spread, recoil, range
DT_Consumables
FNVConsumableDefinition
Food and drugs: what it fixes, what it breaks, how long the buzz lasts
Row names are the ids. The name of the row is the item id. So a rifle in DT_Items called HuntingRifle must have a row called exactly HuntingRifle in DT_Weapons. Same for consumables and attachments. Mismatched names are the number one reason something "does nothing".
Adding content is adding a row. New item, new recipe, new wall, new animal - a row, not a Blueprint. You do not need the editor's Blueprint graph open at all to add a week of content.
๐ท๏ธ Tag List
All of these are already in the dropdowns. You never type them by hand.
Strength, Athleticism, Swimming, Vehiclesbody and movement
Mana, Addictionmagic and bad habits
Threshold messages - NV.Event.Stat.*
Low, Critical, Depleted, Fullwhat a bar shouts when it crosses a line you set
Clothing slots - NV.EquipSlot.*
Head, Face, Torso, Hands, Legs, Feet, Backwhat you wear
PrimaryHand, SecondaryHandwhat you hold
Tags you invent yourself (just type them in the spreadsheet)
NV.Damage.*Bullet, Explosive, Melee - drives gear wear and armour
NV.Bench.*Forge, Kitchen - which bench a recipe belongs to
NV.Unlock.*Mana, StoneTier - your content gates
NV.Effect.*Eat, Smoke - your hook for particles and screen effects
โ๏ธ Project Settings
Edit โ Project Settings โ NV Survival Core. Set once, used by everything.
The 13 table slotsdrop each Data Table here and forget about itassets
Event Interval Secondshow often a daily event is rolled1800
Auto Start Eventsoff = events only when you call themOn
Auto Save Interval Seconds0 turns autosave off300
Default Save Slotname of the autosave slotNVWorld
A table on a component beats the setting. Leave the slot empty and you get the global table. Fill it in and that one actor uses yours - a special loot table for an event, different recipes for the bench in the starter town.
๐ง Troubleshooting
"I click the button and nothing happens"
Use the Request versionfrom a widget, always call the node that starts with Request
Tick Replicateson the character, or nothing works in multiplayer
"My bars do not move"
Table not setcheck Project Settings has DT_Stats in the slot
Tag typothe tag in the row must match the tag you ask for exactly
Rate is zeroa bar with Base Rate 0 never moves by itself, which is right for health
"My HUD never updates"
Bind, do not tickbind On Stat Changed instead of reading the value every frame
Private statstats with Replicate To Everyone off only reach their owner - that is on purpose
"Items will not stack"
Durabilityset Max Durability to 0 for resources, otherwise every unit is unique
"I cannot move things into a crate"
Wrong componentcall Request Transfer on the player's inventory, not the crate's
Too far awaythe server checks the 500 cm reach even if the UI is open
"The build ghost is always red"
Read the reasonGet Placement Result names it: no claim, too steep, not unlocked
Sockets missingno Snap_ sockets on the mesh means no snapping
"Shooting does nothing"
Row names differthe weapon row must be named exactly like the item row
Target is not damageablethe target needs the NV Damageable interface
"Footsteps are silent on terrain"
Set the fallbackLandscape Fallback Surface must point at a surface that exists in DT_Footsteps
"My base is gone after restart"
Interface missingthe actor needs NV Saveable and Should Respawn On Load set to true
Variables not markedtick SaveGame on the variables that must survive
"A player lost access to their own base"
Player id changedclaims, beds, taming and NPC memory all key off Get Player Id - it must stay the same between logins
"The server is drowning in animals"
Raise the breeding gatesMin Hunger Percent To Breed and Breed Cooldown in DT_Creatures