ProbonkBeta

You Are Empty: 6000-Pellet Shotgun Guide

On this page (4)
  1. Find the weapon scripts
  2. Make the Obrez fire 6000 pellets
  3. Weapon variable reference
  4. Player and NPC variables

You can make the shotgun in You Are Empty fire 6000 pellets with one trigger pull by editing a single text file. This page shows which file to open, which lines to change, and what the other weapon and player variables do.

The short version: the weapon and player values are plain .lua scripts in the game folder, so any text editor will do and no extra tools are needed. Open weapon_obrez.lua, set m_bullets_in_shot to 6000 and save. The game lags for a few seconds on each shot at that setting. Changes like these can make the game easier, so I would play through on the unmodified files first.

Find the weapon scripts

To reach the game folder, right-click You Are Empty in your Steam library, pick Manage, then Browse local files. From there go into gameres\scripts\you_are_empty\prototypes\weapons. Each weapon has its own .lua file in that folder, and you can open any of them in a text editor such as Notepad++. The game's shotgun, the Obrez, is weapon_obrez.lua.

Steam library right-click menu for You Are Empty: Absolute Edition with Manage open and the Browse local files option visible

The file lays out the weapon's variables in a clear structure, with some basic scripting around them. Change a value next to a variable and save the file.

Text editor showing the top of weapon_obrez.lua with variables such as loaded_ammo, all_ammo, max_ammo and light_enable

Make the Obrez fire 6000 pellets

These game values can be edited simply, and the result is the Obrez firing a huge cloud of pellets. Only m_bullets_in_shot is needed for that. The other changes are optional tuning around it. As of the launch build, the Obrez fires 5 pellets per shot by default. Restart the game after saving if it was running. The meaning of each variable is in the reference below.

First-person view of the double-barrelled Obrez shotgun firing a huge cloud of pellets that forms a glowing ball in front of a brick building

VariableOriginalChangedReason
weapon_obrez.single.m_bullets_in_shot (required)56000The 6000-pellet shot
max_ammo (in the properties block)60666Carry far more shells
weapon_obrez.single.m_bullet_damage501Each pellet does much less damage
weapon_obrez.single.m_shot_disp25150A wider cone of spread
weapon_obrez.single.m_shot_recoil3.59A harder kick when firing
weapon_obrez.m_clip_size26A larger magazine

m_ammo_for_shot stays at 1, so each shot still uses one round.

Weapon variable reference

These variables appear across the various weapon scripts. The lists are a starting point and not a complete reference, and they may change with game updates. The generic weapon behaviour, such as how reloading and ammo handling work, lives in base files under gameres\scripts\engine\prototypes\weapons.

Ammo and magazine

VariableWhat it controlsExtra notes
loaded_ammoRounds in the gunDoes not set magazine capacity. It appears to decide how much ammo is loaded when you first pick the weapon up.
all_ammoAmmo you receive when picking the gun up
max_ammoTotal ammo the player can carry for this gun
m_clip_sizeMagazine capacityMust be equal to or higher than loaded_ammo
m_ammo_for_shotAmmo used per trigger pull0 gives infinite ammo
m_ammo_className of the ammo the gun usesThe prototypes\ammos folder lists the available classes
m_ammo_typeCompanion setting to the ammo classCopy it from another weapon script

Damage and range

VariableWhat it controlsExtra notes
m_bullets_in_shotBullets or pellets per trigger pullRaise it on any gun to turn it into a shotgun
m_bullet_damageDamage per bullet or pellet
m_bullet_impulseForce applied to physics objects and NPCsVery high values send enemies through the terrain
m_bullet_min_distShortest distance a bullet can travelSeems to add some randomness to bullet range
m_bullet_max_distLongest distance a bullet can travel
m_bullet_distAverage bullet travel distanceUnclear, but it appears to set how far the wrench can hit

Spread and recoil

VariableWhat it controlsExtra notes
m_shot_dispShot spreadHigher means more spread
m_shot_disp_zoomedShot spread while aimingHigher means more spread
m_shot_recoilRecoilHigher means a harder kick
m_shot_recoil_zoomedRecoil while aimingHigher means a harder kick

Fire rate and effects

VariableWhat it controlsExtra notes
m_rate_of_fireRounds fired per secondFor comparison, an AK fires about 10 rounds per second
fire_finish_interruption_timeDelay before the next shot while the firing animation playsAt 0, the whole firing animation plays out before the next shot
light_enableWhether the muzzle flash gives off lighttrue or false
m_shot_effect_nameName of the muzzle flash effect fileFor example, the SMG could use the shotgun's flash
m_shot_point_namePoint on the gun where the muzzle flash appears
m_trace_bullet_effect_nameBullet tracer effect

View and aiming

VariableWhat it controlsExtra notes
m_normal_fovField of view tied to the gunAt the time of writing it seems to do little, since the game has a FOV slider
m_model_fovField of view used to draw and position the gun modelA higher number shows more of the gun, as if it were pushed forward
m_zoomed_fovHow much aiming zooms the viewA smaller value means a stronger zoom
m_zoomed_mouse_sens_scaleMouse sensitivity while aiming
m_hide_crosshair_in_zoomWhether the crosshair is hidden while aimingtrue or false

Animations

Each states_design entry sets the animation and its playback speed for one state of the gun. A higher anim_speed plays the animation faster, and you could swap in a different animation, for example the reload animation for drawing the gun. The reload entry also sets reload time, and a higher number reloads faster.

VariableState it covers
states_design["show"]Drawing the gun
states_design["hide"]Putting the gun away
states_design["idle"]Idle
states_design["fire"]Firing
states_design["zoom_in"]Aiming
states_design["fire_zoomed"]Firing while aiming
states_design["reload"]Reloading

Player and NPC variables

The player values live in actor_player_design.lua, in the folder gameres\scripts\you_are_empty\prototypes\actors\actor_player. The NPC rows are in the same table.

Player

VariableWhat it controlsExtra notes
stay_heightPlayer height
sit_heightCrouch height
max_healthPlayer maximum health
walk_forward_speedSprint speedThe names are swapped: this one is sprinting, and run_forward_speed is normal walking
walk_backward_speedBackwards walking speedYou can make backwards movement many times faster than forwards
run_forward_speedNormal walking speed
jump_heightPlayer jump heightHandy for getting unstuck and for reaching out of bounds areas
min_steps_timeShortest time between footstep sounds
max_steps_timeLongest time between footstep soundsSetting both to around 25 gives very slow footsteps
m_health_regenerationHealth regeneration speed0 by default. Raising it turns regeneration on, and 20 is the value suggested.
actor_spawn_props_defaultA large array of what the player starts with on each levelCopying the default table into a level's array starts a game with all weapons

NPC

VariableWhat it controlsExtra notes
turn_speedHow fast NPCs turn
view_fovNPC vision cone, in degrees
view_distHow far NPCs can see, in meters