Here you go - I tried to strip out references to my stuff that would not be valid but it should work just fine. I could test later if needed. The item just increases or decreases a Cvar and there is a bit of buff code to show how to display the cvar.
As far as quests only rewarding items, if you want a super hokey workaround you could make a quest reward a follow up quest that is auto accepted without a confirmation. That quest could trigger an event similar to the challenge quests triggering spawns etc. I am not sure what the limitations are but it is the only way that I can think of to avoid having an item that needs to be read/consumed.
<item name="TESTCvarClub"> <!-- USED TO INCREASE OR DECREASE A CVAR -->
<property name="CustomIcon" value="meleeWpnClubT1CandyClub"/>
<property name="Tags" value="blunt,club,melee,grunting,light,longShaft,perkFlurryOfBlows,weapon,meleeWeapon,attStrength,perkPummelPete,canHaveCosmetic"/>
<property name="DisplayType" value="melee"/>
<property name="Group" value="Ammo/Weapons"/>
<property name="Meshfile" value="#Other/Items?Weapons/Melee/Candycane/candycanePrefab.prefab"/>
<property name="HoldType" value="2"/>
<property name="Material" value="Mmetal"/>
<property name="RepairTools" value="resourceRepairKit"/>
<property name="SoundDestroy" value="wooddestroy1"/>
<property name="RepairExpMultiplier" value="5.5"/>
<property name="EconomicBundleSize" value="1"/>
<property name="EconomicValue" value="350"/>
<property name="FuelValue" value="250"/>
<property name="ShowQuality" value="true"/>
<property class="Action0">
<property name="Class" value="Melee"/>
<property name="Delay" value=".1"/>
<property name="Range" value="1.65"/>
<property name="Sphere" value=".1"/>
<property name="Block_range" value="2.5"/>
<property name="DamageEntity" value="10"/>
<property name="DamageBlock" value="16"/>
<property name="Sound_start" value="swoosh"/>
</property>
<property class="Action1">
<property name="Class" value="Melee"/>
<property name="Delay" value=".1"/>
<property name="Range" value="1.65"/>
<property name="Sphere" value=".1"/>
<property name="Block_range" value="2.5"/>
<property name="DamageEntity" value="10"/>
<property name="DamageBlock" value="16"/>
<property name="Sound_start" value="swoosh"/>
</property>
<effect_group tiered="false">
<triggered_effect trigger="onSelfPrimaryActionEnd" action="ModifyCVar" cvar="myCvar" operation="add" value="1"/>
<triggered_effect trigger="onSelfSecondaryActionEnd" action="ModifyCVar" cvar="myCvar" operation="add" value="-1"/>
</effect_group>
</item>
<buff name="showMyCvarBuff" icon="ui_game_symbol_destruction2" remove_on_death="false">
<stack_type value="ignore"/>
<update_rate value="1"/>
<display_value value="myCvar"/>
<display_value_key value="Your Text {0:0.00}"/>
<effect_group tiered="false">
<triggered_effect trigger="onSelfBuffStart" action="ModifyCVar" cvar="myCvar" operation="set" value="20"/>
<triggered_effect trigger="onSelfBuffUpdate" action="ModifyCVar" cvar="myCvar" operation="add" value="-0.1">
<requirement name="CVarCompare" cvar="myCvar" operation="GTE" value="0"/>
</triggered_effect>
<triggered_effect trigger="onSelfBuffUpdate" action="AddBuff" buff="buffStatusHungry01">
<requirement name="CVarCompare" cvar="myCvar" operation="LT" value="15"/>
<requirement name="CVarCompare" cvar="myCvar" operation="GTE" value="10"/>
<requirement name="NotHasBuff" buff="buffStatusHungry01"/>
</triggered_effect>
<triggered_effect trigger="onSelfBuffUpdate" action="AddBuff" buff="buffStatusHungry02">
<requirement name="CVarCompare" cvar="myCvar" operation="LT" value="10"/>
<requirement name="CVarCompare" cvar="myCvar" operation="GTE" value="5"/>
<requirement name="NotHasBuff" buff="buffStatusHungry02"/>
</triggered_effect>
<triggered_effect trigger="onSelfBuffUpdate" action="AddBuff" buff="buffStatusHungry03">
<requirement name="CVarCompare" cvar="myCvar" operation="LT" value="5"/>
<requirement name="NotHasBuff" buff="buffStatusHungry03"/>
</triggered_effect>
<triggered_effect trigger="onSelfBuffUpdate" action="RemoveBuff" buff="buffStatusHungry01">
<requirement name="CVarCompare" cvar="myCvar" operation="GTE" value="15"/>
<requirement name="HasBuff" buff="buffStatusHungry01"/>
</triggered_effect>
<triggered_effect trigger="onSelfBuffUpdate" action="RemoveBuff" buff="buffStatusHungry01">
<requirement name="CVarCompare" cvar="myCvar" operation="LT" value="10"/>
<requirement name="HasBuff" buff="buffStatusHungry01"/>
</triggered_effect>
<triggered_effect trigger="onSelfBuffUpdate" action="RemoveBuff" buff="buffStatusHungry02">
<requirement name="CVarCompare" cvar="myCvar" operation="GTE" value="10"/>
<requirement name="HasBuff" buff="buffStatusHungry02"/>
</triggered_effect>
<triggered_effect trigger="onSelfBuffUpdate" action="RemoveBuff" buff="buffStatusHungry02">
<requirement name="CVarCompare" cvar="myCvar" operation="LT" value="5"/>
<requirement name="HasBuff" buff="buffStatusHungry02"/>
</triggered_effect>
<triggered_effect trigger="onSelfBuffUpdate" action="RemoveBuff" buff="buffStatusHungry03">
<requirement name="CVarCompare" cvar="myCvar" operation="GTE" value="5"/>
<requirement name="HasBuff" buff="buffStatusHungry03"/>
</triggered_effect>
</effect_group>
</buff>