Modding Tools > Lucas' Simpsons Hit & Run Mod Launcher > Hacks > Mod Requirable Hacks > Custom Shop Support

Custom Shop Support

This hack must be required by a mod to be enabled.

This hack allows mods to specify custom NPCs for car shops.

It also allows mods to include and exclude specific cars and skins at specific phone booths and skin shops respectively.

Requiring This Hack

To require this hack, add this line to your mod's Meta.ini:

RequiredHack=CustomShopSupport

Your mod must provide a configuration file when requiring this hack.

Configuring This Hack

To configure this hack, create a file named CustomShopSupport.xml and add the parameters necessary for your mod inside it.

<?xml version="1.0" encoding="utf-8"?>
<CustomShopSupport>
	<!--
	
	<CarShop>
		Level: The level the charshop is in.
		Character: The name of the character that runs the shop (including the "reward_" prefix).
		Conversation: The name of the conversation to use when talking to the character. Leave blank to disable the conversation.
	<PhoneBooth>
		Drawable: Change the drawable that displays above the phonebooth. Optional.
		<Selector>
			Level: The level to use this phonebooth on.
			Locator: The Type 9 SummonVehiclePhone locator to use this phonebooth on.
		<FreeItems>
			<Car>
				[Contents]: Specify the name of the car.
				Path: The path to the car. Defaults to "art\cars\CARNAME.p3d".
				RepairCost: The cost to repair this car.
		<ExcludedItems>
			<Car>
				[Contents]: Specify the name of the car.
		<IncludedItems>
			<Car>
				[Contents]: Specify the name of the car.
				RepairCost: The cost to repair this car.
	<SkinShop>
		Drawable: Change the drawable that represents this shop. Optional.
		<Selector>
			Level: The level to use this SkinShop on.
			Locator: The Type 9 PurchaseSkin locator to use this SkinShop on.
		<FreeItems>
			<Skin>
				[Contents]: Specify the name of the character.
				Path: The path to the character. Defaults to "art\chars\CHARNAME.p3d".
		<ExcludedItems>
			<Skin>
				[Contents]: Specify the name of the character.
		<IncludedItems>
			<Skin>
				[Contents]: Specify the name of the character.
		
	-->

	<!-- Default Car Shops -->
	<CarShop Level="1" Conversation="plowking" Character="reward_barney" />
	<CarShop Level="2" Conversation="son" Character="reward_homer" />
	<CarShop Level="3" Conversation="bus" Character="reward_otto" />
	<CarShop Level="4" Conversation="tractor" Character="reward_tractor" />
	<CarShop Level="5" Conversation="borrowing" Character="reward_homer" />
	<CarShop Level="6" Conversation="swine" Character="reward_kearney" />
	<CarShop Level="7" Conversation="" Character="zombie" />
	
	<!-- Custom Phone Booth Examples -->
	<PhoneBooth>
		<!-- Use this Phonebooth in Level 1 and Level 7 -->
		<Selector Level="1" />
		<Selector Level="7" />
		
		<!--  Make it so Homer can't use Apu's car -->
		<ExcludedItems>
			<Car>apu_v</Car>
		</ExcludedItems>
	</PhoneBooth>
	
	<PhoneBooth Drawable="wrench"> 
		<!-- Use this PhoneBooth in Level 1 on the locator named "Z1p1" -->
		<Selector Level="1" Locator="Z1p1"/>
		
		<!-- Specify an empty IncludedItems to exclude all Reward Cars -->
		<IncludedItems />
		
		<FreeItems>
			<!-- And then here we add a couple cars to the phonebooth -->
			<Car>bart_v</Car>
			<Car>homer_v</Car>
		</FreeItems>
	</PhoneBooth>
	
	<!-- Custom Skin Shop Examples -->
	<SkinShop Drawable="dice">
		<Selector Level="1" Locator="z1_skin2"/>
		
		<FreeItems>
			<Skin>h_fat</Skin>
			<Skin>h_scuzzy</Skin>
		</FreeItems>
	</SkinShop>
	
	<SkinShop Drawable="wrench">
		<Selector Level="1" Locator="z1_skin3"/>
		
		<FreeItems>
			<Skin>h_stcrobe</Skin>
			<Skin>h_undrwr</Skin>
		</FreeItems>
	</SkinShop>
</CustomShopSupport>

These properties have been superseded by new properties in other sections. They are still supported for backwards compatibility but we don't recommend mods targetting newer versions use these.

<?xml version="1.0" encoding="utf-8"?>
<CustomShopSupport>
	<!--
	
	<PhoneBooth>
		<Blacklist> (Use ExcludedItems instead)
		<Whitelist> (Use IncludedItems instead)
		
	<SkinShop>
		<Blacklist> (Use ExcludedItems instead)
		<Whitelist> (Use IncludedItems instead)
		
	-->
</CustomShopSupport>

Version History

1.25

Changed the Whitelist and Blacklist elements used inside PhoneBooth and SkinShop elements to IncludedItems and ExcludedItems.

The old names are still supported for backwards compatibility.

1.22

Added support for a SkinShop element in this hack's configuration file that works similarly to the existing PhoneBooth element.

1.18.2

Fixed a crash on startup that occurred with certain game executables in certain circumstances:

  • If the mod used the Locator attribute on a Selector element inside a PhoneBooth element.
  • If the mod used a Car element inside a FreeItems element inside a PhoneBooth element.

1.18

Added this hack.

Donut Team © 2023 · v4.0