Vendor Restock Script by Mustang
Related: Snippet
Description from the author:
//Script created by Mustang#1702
//In order to prevent overlapping items, separate containers for cores/scrolls/extracts etc. are recommended
//Item placement is designed for small paragon chests, items in other containers might overlap which each other
//If you want to add other items to this script
//keep in mind that some items like tmaps, skillscrolls, etc. have the same ID and hue
overhead 'Loading prices, please wait...' 2263
//=========================================
//Change this parameter value to 0 if you don't want to set target containers every time
setvar! setContainerVariables '1'
//=========================================
//Set your prices here:
//Cores
setvar! AirCorePrice '14000'
setvar! ArtisanCorePrice '36000'
setvar! BloodCorePrice '3000'
setvar! CommandCorePrice '42000'
setvar! DeathCorePrice '3000'
setvar! DisciplineCorePrice '3000'
setvar! EarthCorePrice '3000'
setvar! EldritchCorePrice '9500'
setvar! FireCorePrice '3000'
setvar! FortuneCorePrice '12000'
setvar! HolyCorePrice '4500'
setvar! LyricCorePrice '25000'
setvar! PoisonCorePrice '16000'
setvar! ShadowCorePrice '3000'
setvar! VoidCorePrice '13000'
setvar! WaterCorePrice '3000'
//Extracts
setvar! AirExtractPrice '24000'
setvar! ArtisanExtractPrice '12000'
setvar! BloodExtractPrice '6500'
setvar! CommandExtractPrice '11000'
setvar! DeathExtractPrice '7000'
setvar! DisciplineExtractPrice '4000'
setvar! EarthExtractPrice '4000'
setvar! EldritchExtractPrice '11000'
setvar! FireExtractPrice '4000'
setvar! FortuneExtractPrice '11000'
setvar! HolyExtractPrice '7000'
setvar! LyricExtractPrice '16000'
setvar! PoisonExtractPrice '38000'
setvar! ShadowExtractPrice '9000'
setvar! VoidExtractPrice '9000'
setvar! WaterExtractPrice '6500'
//Distillations
setvar! AirDistillationPrice '24000'
setvar! ArtisanDistillationPrice '12000'
setvar! BloodDistillationPrice '6500'
setvar! CommandDistillationPrice '11000'
setvar! DeathDistillationPrice '7000'
setvar! DisciplineDistillationPrice '4000'
setvar! EarthDistillationPrice '4000'
setvar! EldritchDistillationPrice '11000'
setvar! FireDistillationPrice '4000'
setvar! FortuneDistillationPrice '11000'
setvar! HolyDistillationPrice '7000'
setvar! LyricDistillationPrice '16000'
setvar! PoisonDistillationPrice '38000'
setvar! ShadowDistillationPrice '9000'
setvar! VoidDistillationPrice '9000'
setvar! WaterDistillationPrice '6500'
//Skill Scrolls
setvar! AlchemyPrice '15000'
setvar! AnimalLorePrice '14000'
setvar! AnimalTamingPrice '14000'
setvar! ArmsLorePrice '8000'
setvar! BeggingPrice '7500'
setvar! BlacksmithyPrice '7500'
setvar! CampingPrice '8000'
setvar! CarpentryPrice '8000'
setvar! CartographyPrice '8500'
setvar! ChivalryPrice '18000'
setvar! CookingPrice '8000'
setvar! DetectHiddenPrice '8500'
setvar! DiscordancePrice '11000'
setvar! FishingPrice '8500'
setvar! ForensicEvalPrice '11000'
setvar! HerdingPrice '7500'
setvar! InscriptionPrice '13000'
setvar! ItemIdPrice '9000'
setvar! LockpickingPrice '9000'
setvar! LumberjackingPrice '9000'
setvar! MusicanshipPrice '18000'
setvar! MiningPrice '9000'
setvar! NecromancyPrice '48000'
setvar! PeacemakingPrice '11000'
setvar! PoisoningPrice '15000'
setvar! ProvocationPrice '10000'
setvar! RemoveTrapPrice '9500'
setvar! SpiritSpeakPrice '9500'
setvar! StealthPrice '9500'
setvar! TailoringPrice '28000'
setvar! TasteIdPrice '21000'
setvar! TinkeringPrice '9000'
setvar! TrackingPrice '9000'
setvar! VeterinaryPrice '8000'
//Maps
setvar! T1Price '7000'
setvar! T2Price '8000'
setvar! T3Price '27000'
setvar! T4Price '30000'
setvar! T5Price '45000'
setvar! T6Price '60000'
setvar! T8Price '250000'
//Other
setvar! SkillOrbPrice '21999'
setvar! MastercraftingDiagramPrice '175000'
setvar! ResearchMaterialsPrice '35000'
setvar! ArcaneScrollPrice '30000'
//=========================================
//Cores
if setContainerVariables == '1'
overhead 'Set container for Aspect Cores' 2263
setvar aspectCoreContainer
endif
while findtype 'aspect core' backpack as item
getlabel item label
if 'Air' in label
lift item 1
drop aspectCoreContainer 30 60 0
pause 500
promptresponse AirCorePrice
elseif 'Artisan' in label
lift item 1
drop aspectCoreContainer 45 60 0
pause 500
promptresponse ArtisanCorePrice
elseif 'Blood' in label
lift item 1
drop aspectCoreContainer 60 60 0
pause 500
promptresponse BloodCorePrice
elseif 'Command' in label
lift item 1
drop aspectCoreContainer 75 60 0
pause 500
promptresponse CommandCorePrice
elseif 'Death' in label
lift item 1
drop aspectCoreContainer 90 60 0
pause 500
promptresponse DeathCorePrice
elseif 'Discipline' in label
lift item 1
drop aspectCoreContainer 105 60 0
pause 500
promptresponse DisciplineCorePrice
elseif 'Earth' in label
lift item 1
drop aspectCoreContainer 120 60 0
pause 500
promptresponse EarthCorePrice
elseif 'Eldritch' in label
lift item 1
drop aspectCoreContainer 135 60 0
pause 500
promptresponse EldritchCorePrice
elseif 'Fire' in label
lift item 1
drop aspectCoreContainer 30 80 0
pause 500
promptresponse FireCorePrice
elseif 'Fortune' in label
lift item 1
drop aspectCoreContainer 45 80 0
pause 500
promptresponse FortuneCorePrice
elseif 'Holy' in label
lift item 1
drop aspectCoreContainer 60 80 0
pause 500
promptresponse HolyCorePrice
elseif 'Lyric' in label
lift item 1
drop aspectCoreContainer 75 80 0
pause 500
promptresponse LyricCorePrice
elseif 'Poison' in label
lift item 1
drop aspectCoreContainer 90 80 0
pause 500
promptresponse PoisonCorePrice
elseif 'Shadow' in label
lift item 1
drop aspectCoreContainer 105 80 0
pause 500
promptresponse ShadowCorePrice
elseif 'Void' in label
lift item 1
drop aspectCoreContainer 120 80 0
pause 500
promptresponse VoidCorePrice
elseif 'Water' in label
lift item 1
drop aspectCoreContainer 135 80 0
pause 500
promptresponse WaterCorePrice
endif
endwhile
if setContainerVariables == '1'
overhead 'Set container for Aspect Extracts' 2263
setvar aspectExtractContainer
endif
//Extracts
while findtype 'bottle' backpack as item
getlabel item label
if 'Air' in label
lift item 1
drop aspectExtractContainer 30 60 0
pause 500
promptresponse AirExtractPrice
elseif 'Artisan' in label
lift item 1
drop aspectExtractContainer 45 60 0
pause 500
promptresponse ArtisanExtractPrice
elseif 'Blood' in label
lift item 1
drop aspectExtractContainer 60 60 0
pause 500
promptresponse BloodExtractPrice
elseif 'Command' in label
lift item 1
drop aspectExtractContainer 75 60 0
pause 500
promptresponse CommandExtractPrice
elseif 'Death' in label
lift item 1
drop aspectExtractContainer 90 60 0
pause 500
promptresponse DeathExtractPrice
elseif 'Discipline' in label
lift item 1
drop aspectExtractContainer 105 60 0
pause 500
promptresponse DisciplineExtractPrice
elseif 'Earth' in label
lift item 1
drop aspectExtractContainer 120 60 0
pause 500
promptresponse EarthExtractPrice
elseif 'Eldritch' in label
lift item 1
drop aspectExtractContainer 135 60 0
pause 500
promptresponse EldritchExtractPrice
elseif 'Fire' in label
lift item 1
drop aspectExtractContainer 30 80 0
pause 500
promptresponse FireExtractPrice
elseif 'Fortune' in label
lift item 1
drop aspectExtractContainer 45 80 0
pause 500
promptresponse FortuneExtractPrice
elseif 'Holy' in label
lift item 1
drop aspectExtractContainer 60 80 0
pause 500
promptresponse HolyExtractPrice
elseif 'Lyric' in label
lift item 1
drop aspectExtractContainer 75 80 0
pause 500
promptresponse LyricExtractPrice
elseif 'Poison' in label
lift item 1
drop aspectExtractContainer 90 80 0
pause 500
promptresponse PoisonExtractPrice
elseif 'Shadow' in label
lift item 1
drop aspectExtractContainer 105 80 0
pause 500
promptresponse ShadowExtractPrice
elseif 'Void' in label
lift item 1
drop aspectExtractContainer 120 80 0
pause 500
promptresponse VoidExtractPrice
elseif 'Water' in label
lift item 1
drop aspectExtractContainer 135 80 0
pause 500
promptresponse WaterExtractPrice
endif
endwhile
if setContainerVariables == '1'
overhead 'Set container for Aspect Distillations' 2263
setvar aspectDistillationContainer
endif
while findtype 'flask' backpack as item
getlabel item label
if 'Air' in label
lift item 1
drop aspectDistillationContainer 25 50 0
pause 500
promptresponse AirDistillationPrice
elseif 'Artisan' in label
lift item 1
drop aspectDistillationContainer 40 50 0
pause 500
promptresponse ArtisanDistillationPrice
elseif 'Blood' in label
lift item 1
drop aspectDistillationContainer 55 50 0
pause 500
promptresponse BloodDistillationPrice
elseif 'Command' in label
lift item 1
drop aspectDistillationContainer 70 50 0
pause 500
promptresponse CommandDistillationPrice
elseif 'Death' in label
lift item 1
drop aspectDistillationContainer 85 50 0
pause 500
promptresponse DeathDistillationPrice
elseif 'Discipline' in label
lift item 1
drop aspectDistillationContainer 100 50 0
pause 500
promptresponse DisciplineDistillationPrice
elseif 'Earth' in label
lift item 1
drop aspectDistillationContainer 115 50 0
pause 500
promptresponse EarthDistillationPrice
elseif 'Eldritch' in label
lift item 1
drop aspectDistillationContainer 130 50 0
pause 500
promptresponse EldritchDistillationPrice
elseif 'Fire' in label
lift item 1
drop aspectDistillationContainer 30 80 0
pause 500
promptresponse FireDistillationPrice
elseif 'Fortune' in label
lift item 1
drop aspectDistillationContainer 45 80 0
pause 500
promptresponse FortuneDistillationPrice
elseif 'Holy' in label
lift item 1
drop aspectDistillationContainer 60 80 0
pause 500
promptresponse HolyDistillationPrice
elseif 'Lyric' in label
lift item 1
drop aspectDistillationContainer 75 80 0
pause 500
promptresponse LyricDistillationPrice
elseif 'Poison' in label
lift item 1
drop aspectDistillationContainer 90 80 0
pause 500
promptresponse PoisonDistillationPrice
elseif 'Shadow' in label
lift item 1
drop aspectDistillationContainer 105 80 0
pause 500
promptresponse ShadowDistillationPrice
elseif 'Void' in label
lift item 1
drop aspectDistillationContainer 120 80 0
pause 500
promptresponse VoidDistillationPrice
elseif 'Water' in label
lift item 1
drop aspectDistillationContainer 135 80 0
pause 500
promptresponse WaterDistillationPrice
endif
endwhile
//Skill Scrolls
if setContainerVariables == '1'
overhead 'Set container for Skill Scrolls' 2263
setvar skillScrollsContainer
endif
while findtype 'scroll of calling' backpack as item
getlabel item label
if 'alchemy' in label
lift item 1
drop skillScrollsContainer 15 50 0
pause 500
promptresponse AlchemyPrice
elseif 'animal lore' in label
lift item 1
drop skillScrollsContainer 25 50 0
pause 500
promptresponse AnimalLorePrice
elseif 'animal taming' in label
lift item 1
drop skillScrollsContainer 35 50 0
pause 500
promptresponse AnimalTamingPrice
elseif 'arms lore' in label
lift item 1
drop skillScrollsContainer 45 50 0
pause 500
promptresponse ArmsLorePrice
elseif 'begging' in label
lift item 1
drop skillScrollsContainer 55 50 0
pause 500
promptresponse BeggingPrice
elseif 'blacksmithy' in label
lift item 1
drop skillScrollsContainer 65 50 0
pause 500
promptresponse BlacksmithyPrice
elseif 'camping' in label
lift item 1
drop skillScrollsContainer 75 50 0
pause 500
promptresponse CampingPrice
elseif 'carpentry' in label
lift item 1
drop skillScrollsContainer 85 50 0
pause 500
promptresponse CarpentryPrice
elseif 'cartography' in label
lift item 1
drop skillScrollsContainer 95 50 0
pause 500
promptresponse CartographyPrice
elseif 'chivalry' in label
lift item 1
drop skillScrollsContainer 105 50 0
pause 500
promptresponse ChivalryPrice
elseif 'cooking' in label
lift item 1
drop skillScrollsContainer 115 50 0
pause 500
promptresponse CookingPrice
elseif 'detect hidden' in label
lift item 1
drop skillScrollsContainer 125 50 0
pause 500
promptresponse DetectHiddenPrice
elseif 'discordance' in label
lift item 1
drop skillScrollsContainer 135 50 0
pause 500
promptresponse DiscordancePrice
elseif 'fishing' in label
lift item 1
drop skillScrollsContainer 20 70 0
pause 500
promptresponse FishingPrice
elseif 'forensic eval' in label
lift item 1
drop skillScrollsContainer 30 70 0
pause 500
promptresponse ForensicEvalPrice
elseif 'herding' in label
lift item 1
drop skillScrollsContainer 40 70 0
pause 500
promptresponse HerdingPrice
elseif 'inscription' in label
lift item 1
drop skillScrollsContainer 50 70 0
pause 500
promptresponse InscriptionPrice
elseif 'item id' in label
lift item 1
drop skillScrollsContainer 60 70 0
pause 500
promptresponse ItemIdPrice
elseif 'lockpicking' in label
lift item 1
drop skillScrollsContainer 70 70 0
pause 500
promptresponse LockpickingPrice
elseif 'lumberjacking' in label
lift item 1
drop skillScrollsContainer 80 70 0
pause 500
promptresponse LumberjackingPrice
elseif 'musicianship' in label
lift item 1
drop skillScrollsContainer 90 70 0
pause 500
promptresponse MusicanshipPrice
elseif 'mining' in label
lift item 1
drop skillScrollsContainer 100 70 0
pause 500
promptresponse MiningPrice
elseif 'necromancy' in label
lift item 1
drop skillScrollsContainer 110 70 0
pause 500
promptresponse NecromancyPrice
elseif 'peacemaking' in label
lift item 1
drop skillScrollsContainer 120 70 0
pause 500
promptresponse PeacemakingPrice
elseif 'poisoning' in label
lift item 1
drop skillScrollsContainer 130 70 0
pause 500
promptresponse PoisoningPrice
elseif 'provocation' in label
lift item 1
drop skillScrollsContainer 15 90 0
pause 500
promptresponse ProvocationPrice
elseif 'remove trap' in label
lift item 1
drop skillScrollsContainer 25 90 0
pause 500
promptresponse RemoveTrapPrice
elseif 'spirit speak' in label
lift item 1
drop skillScrollsContainer 35 90 0
pause 500
promptresponse SpiritSpeakPrice
elseif 'stealth' in label
lift item 1
drop skillScrollsContainer 45 90 0
pause 500
promptresponse StealthPrice
elseif 'tailoring' in label
lift item 1
drop skillScrollsContainer 55 90 0
pause 500
promptresponse TailoringPrice
elseif 'taste id' in label
lift item 1
drop skillScrollsContainer 65 90 0
pause 500
promptresponse TasteIdPrice
elseif 'tinkering' in label
lift item 1
drop skillScrollsContainer 75 90 0
pause 500
promptresponse TinkeringPrice
elseif 'tracking' in label
lift item 1
drop skillScrollsContainer 85 90 0
pause 500
promptresponse TrackingPrice
elseif 'veterinary' in label
lift item 1
drop skillScrollsContainer 95 90 0
pause 500
promptresponse VeterinaryPrice
endif
endwhile
//Maps
if setContainerVariables == '1'
overhead 'Set container for Maps' 2263
setvar mapsContainer
endif
while findtype 'map' backpack as item
getlabel item label
if 'level 1' in label
lift item 1
drop mapsContainer 30 60 0
pause 500
promptresponse T1Price
elseif 'level 2' in label
lift item 1
drop mapsContainer 45 60 0
pause 500
promptresponse T2Price
elseif 'level 3' in label
lift item 1
drop mapsContainer 60 60 0
pause 500
promptresponse T3Price
elseif 'level 4' in label
lift item 1
drop mapsContainer 75 60 0
pause 500
promptresponse T4Price
elseif 'level 5' in label
lift item 1
drop mapsContainer 90 60 0
pause 500
promptresponse T5Price
elseif 'level 6' in label
lift item 1
drop mapsContainer 105 60 0
pause 500
promptresponse T6Price
elseif 'level 8' in label
lift item 1
drop mapsContainer 120 60 0
pause 500
promptresponse T8Price
endif
endwhile
//Other rares
if setContainerVariables == '1'
overhead 'Set container for other items' 2263
setvar otherItemsContainer
endif
while findtype 'Book of Truth' backpack as item
lift item 5
drop otherItemsContainer 45 60 0
pause 500
promptresponse MastercraftingDiagramPrice
endwhile
while findtype 'void orb' backpack as item
lift item 1
drop otherItemsContainer 65 60 0
pause 500
promptresponse SkillOrbPrice
endwhile
while findtype 'research materials' backpack as item
lift item 5
drop otherItemsContainer 85 60 0
pause 500
promptresponse ResearchMaterialsPrice
endwhile
while findtype 'blank scroll%s%' backpack 2609 as item
lift item 20
drop otherItemsContainer 105 60 0
pause 500
promptresponse ArcaneScrollPrice
endwhile
overhead 'Script Finished' 2263This script will automatically restock your vendor and set a price for each item. All you need is to set your prices in the script. I've included rare loot such as cores/extracts/skillscrolls/MCDs, but you can use this script as a baseline to add other items.
Known issues:
If you have a Firebreathing potion in backpack the script will break, as it shares the same item name with extracts. Unfortunately you have to put this item out of your backpack to fix the script