Difference between revisions of "Modding"

From Software Inc.
Jump to navigation Jump to search
Line 38: Line 38:
 
|-
 
|-
 
|NameGenerator
 
|NameGenerator
|The [[Modding#name generators|name generator]] to use for simulated companies or for when the player clicks the name button in the design document.
+
|The [[Modding#Name generators|name generator]] to use for simulated companies or for when the player clicks the name button in the design document.
 
|-
 
|-
 
|Needs
 
|Needs
Line 44: Line 44:
 
|-
 
|-
 
|Features
 
|Features
|All [[Modding#features|features]] that this software can implement.
+
|All [[Modding#Features|features]] that this software can implement.
 
|}
 
|}
  

Revision as of 15:18, 15 May 2015

Modding in Software Inc. is completely data driven. Software Inc. loads XML files found in the "Mods" folder of the root of the game when it launches.

A mod should be placed in its own folder in the "Mods" folder and can optionally contain each of the following folders: "Companies", "CompanyTypes", "Events", "NameGenerators", "Scenarios" and "SoftwareTypes".

Software types

Software types are the types of software you can choose to develop in Software Inc. in the design document window. Software types can be added to the game by creating an XML file in the "SoftwareTypes" folder. A software type XML file should contain the following tags:

SoftwareType This is the root tag, which all tags should be a child to. If this tag has the attribute Override="True", all tags are optional and will override the content of a software type by the same name. You can use this to override some values of the built-in software types. Note that if you override the Features tag, you will delete all features from the software type.
Name The name of the software as it will appear in dropdown lists, etc.
Delete Optional tag which deletes the software type from the game, if it is set to TRUE
Category How the field of the software will be referred to in articles, e.g. games are categorized as "Gaming"
Description The contents of the tooltip that will appear when hovering over the software type in the dropdown menu in the design document window.
Random How much sales will vary. When a product is released, a random number between this number and 1 is chosen and will be multiplied for all sales. As an example, for games it is 0.5, since you can't count on good sales for a game, but for operating systems, it is 1, since they are generally in demand and necessary for a computer to work.
Popularity How popular a software type is, which limits the maximum amount of income. Operating system have 1 and games have 0.8.
OSSpecific Whether you need to choose an operating system for this software.
OneClient Whether this software is for contract work. This does not currently work as expected, so you should probably avoid setting this to TRUE.
InHouse Whether you can lock this software to your own company. This makes sense for game engines, but not for games for example.
NameGenerator The name generator to use for simulated companies or for when the player clicks the name button in the design document.
Needs All software types that this software type depends on, each need should be defined in a <Name> tag in the <Needs> tag. This will be deprecated at some point in the future and decided by feature dependencies instead.
Features All features that this software can implement.

Example taken form the test mod:

<SoftwareType>
	<Name>Test Software</Name>
	<Description>This is part of a test mod. If you develop a perfect version, 50% of the population will want it, but 10% might randomly not want it.</Description>
	<Random>0.1</Random>
	<Popularity>0.5</Popularity>
	<OSSpecific>TRUE</OSSpecific>
	<OneClient>FALSE</OneClient>
	<InHouse>FALSE</InHouse>
	<Category>Test</Category>
	<NameGenerator>testgen</NameGenerator>
	<Needs>
		<Name>Visual Tool</Name>
	</Needs>
	<Features>
		<Feature Forced="TRUE">
			<Name>Test feat 1</Name>
			<Description>This feature will always be selected unless superseded by a feature with this as "From".</Description>
			<DevTime>2</DevTime>
			<Innovation>0</Innovation>
			<Usability>1</Usability>
			<Stability>1</Stability>
			<CodeArt>1</CodeArt>
			<Dependencies></Dependencies>
		</Feature>
		<Feature From="Test feat 1">
			<Name>Test feat 2</Name>
			<Description>This feature takes 6 months to make and has 4/6 Usability.</Description>
			<DevTime>6</DevTime>
			<Innovation>1</Innovation>
			<Usability>4</Usability>
			<Stability>1</Stability>
			<CodeArt>1</CodeArt>
			<Dependencies>
				<Dependency Software="Visual Tool">Image viewing</Dependency>
			</Dependencies>
		</Feature>
		<Feature>
			<Name>Test feat 3</Name>
			<Description>This feature takes just as many artists as programmers and offers no stability.</Description>
			<DevTime>5</DevTime>
			<Innovation>1</Innovation>
			<Usability>1</Usability>
			<Stability>0</Stability>
			<CodeArt>0.5</CodeArt>
			<Dependencies>
				<Dependency Software="Test Software">Test feat 2</Dependency>
			</Dependencies>
		</Feature>
	</Features>
</SoftwareType>

Features

Features are defined in the Feature tag of Software types. Optinally a base.xml file can be placed in the "SoftwareTypes" folder with feature definitions, which will then be added to all software. If the root tag of the base.xml file contains the attribute Override = "TRUE", it will remove any base features already defined, this would remove the built-in QA feature for example.