Total Miner Forums

Total Miner => Total Miner Discussion => Topic started by: Craig on November 08, 2015, 08:35:53 PM

Title: TM PC Modding API
Post by: Craig on November 08, 2015, 08:35:53 PM
Modding API Overview:

You can browse all my test mod projects here: https://github.com/cmartin99/TotalMinerMods

In the game save folder there is a subfolder named Mods. Each mod will have it's own subfolder in the Mods folder. All files associated with the mod will be in that folder. The folder name will be the name of the mod.

e.g.

C:\Games\TotalMiner\Mods\Garys Mod\ItemData.xml
C:\Games\TotalMiner\Mods\Garys Mod\SkillData.xml
C:\Games\TotalMiner\Mods\Garys Mod\BlockTextures16.xml
C:\Games\TotalMiner\Mods\Garys Mod\ItemTextures32.xml
C:\Games\TotalMiner\Mods\Garys Mod\tp_16.png
C:\Games\TotalMiner\Mods\Garys Mod\tpi_32.png


Adding New Items or Changing Existing Items:
Adding new items into the game requires the modder to supply certain XML files which define properties for the items, and PNG files to define their textures. Each mod can add multiple items. No programming is required. Changing existing items is the same as adding new items except you specify an existing ItemID rather than a new one.


Changing Existing Blocks:
Adding new blocks is not yet supported, but you can change existing blocks. Changing blocks requires the modder to supply certain XML files which redefine the blocks properties, and PNG files to redefine their textures. Each mod can change multiple blocks. No programming is required.


Adding New NPCs:
Adding new NPCs to the game works in a similar manner to adding new items, but the XML files that need to be supplied will pertain to NPC data instead. Modders will also need to create an avatar if they are adding a new NPC, by making a component in the game, then saving and copying the component to the folder the mod is in. Each mod can add multiple NPCs. Custom NPC behaviours and dialog can also be provided in a mod. No programming is required.


Adding Particle Emitter Templates:
Adding particle emitter templates only requires the modder to supply a ParticleEmitterData.xml file with the necessary fields filled in and the game will add it to the custom particle template list for use. Note that these will act in the same manner as system templates, meaning you will not be able to save these templates in game unless you save it as a copy with a different name. No programming is required.


Adding Texture Packs:
If all you want to do is add a new texture pack to the game then that is simply a matter of supplying the required PNG files. No programming is required.


We may also develop a tool to make custom object creation easier for those that are not comfortable working with XML files directly.

Feel free to ask any questions you may have regarding the API, but please keep all modding discussions within this topic instead of making separate ones.
Title: Re: TM PC Modding API
Post by: Craig on November 08, 2015, 08:36:52 PM
Adding Items

The XML files that define an item are:

ItemData.xml
ItemTypeData.xml
ItemTypeClassData.xml
ItemCombatData.xml
ItemSwingTimeData.xml
ItemSwingData.xml
ItemModelData.xml
ItemSoundData.xml
SkillData.xml
BlueprintData.xml


For the purposes of explaining the data files, we've taken the entries used by the Steel Sword. Over time we will provide a description of each field in each file and what values they can specify.

--------------------------------------------------------------------------------------------------------------------------------------------

ItemData.xml

Defines general properties for Blocks and Items.

Sample File:
Simple Example: Name and Description change

<?xml version="1.0"?>
<ArrayOfModItemDataXML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <ModItemDataXML>
    <ItemID>WoodSword</ItemID>
    <Name>Club Of Pain</Name>
    <Desc>Hand out maximum pain to your enemies.</Desc>
  </ModItemDataXML>
  <ModItemDataXML>
    <ItemID>SteelSword</ItemID>
    <Name>The Vanquisher</Name>
    <Desc>Vanquish enemies at will.</Desc>
  </ModItemDataXML>
</ArrayOfModItemDataXML>

Full Example:

<?xml version="1.0"?>
<ArrayOfModItemDataXML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <ModItemDataXML>
    <ItemID>SteelSword</ItemID>
    <Name>Steel Sword</Name>
    <Desc>This sword will last 2 - 3 times longer than an iron sword.</Desc>
    <IsValid>true</IsValid>
    <IsEnabled>true</IsEnabled>
    <LockedDD>true</LockedDD>
    <LockedCR>false</LockedCR>
    <LockedSU>false</LockedSU>
    <MinCSPrice>633</MinCSPrice>
    <StackSize>100</StackSize>
    <Durability>1200</Durability>
    <StrikeDamage>20</StrikeDamage>
    <StrikeReach>3.6</StrikeReach>
    <HealPower>0</HealPower>
    <BurnTime>0</BurnTime>
    <SmeltTime>0</SmeltTime>
    <ParticleLight>0</ParticleLight>
    <CanDropIfLocked>false</CanDropIfLocked>
    <Plural>S</Plural>
  </ModItemDataXML>
</ArrayOfModItemDataXML>
Field Documentation:
ItemID: The Item identifier. No spaces. If modding an existing item, put the existing ItemID here. If adding a new item, put the new ItemID here.

Name: The name of the item as displayed on the screen. Should include spaces between words.

Desc: The full description text of the item as shown on the Interact/Prospect screen.

IsValid: True or False. The item will not be usable and cannot be enabled if False.

IsEnabled: True or False. The item will not be initially usable if False. The player will have to enable the item via the Item Options screen to use.

LockedDD: True or False. If True, the item will be initially locked in Dig Deep until the items blueprint is found or the item is equipped in inventory.

LockedCR: True or False. If True, the item will be initially locked in Creative until the item is equipped in inventory.

LockedSU: True or False. If True, the item will be initially locked in Survival until the item is equipped in inventory.

MinCSPrice: Base price for shop. 0 = free. -1 means the item will not be available to buy/sell in shops.

StackSize: Maximum stack size for the item. If the item has durability, this field is ignore (stack size is 1).

Durability: The durability of the item. Items with Durability > 0 are not stackable.

StrikeDamage: The base damage points the item will inflict when it strikes an opponent.

StrikeReach: The base reach distance for the item in metres. If an opponent is within this distance, it can be struck.

HealPower: The amount of health points gained when the item is used.

BurnTime: The amount of time in seconds it takes the item to burn in a furnace. A value of 0 means the item cannot burn.

SmeltTime: The amount of time in seconds it takes for the item to be smelted. Ignored if the item does not have a furnace blueprint.

ParticleLight: TBA

CanDropIfLocked: True or False. If false, the item cannot be dropped by mobs if the item is locked.

Plural: Instructs the game what text to add to the item name to describe the item in plural. Valid values are None, S and ES.

--------------------------------------------------------------------------------------------------------------------------------------------

ItemTypeData.xml

Defines types and categories for Blocks and Items.

Sample File:
<?xml version="1.0"?>
<ArrayOfModItemTypeDataXML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <ModItemTypeDataXML>
    <ItemID>SteelSword</ItemID>
    <Use>Item</Use>
    <Type>Weapon</Type>
    <SubType>None</SubType>
    <Class>Steel</Class>
    <Inv>Weapon</Inv>
    <Combat>None</Combat>
    <Model>Weapon</Model>
    <Swing>Weapon</Swing>
    <Equip>RightHand</Equip>
  </ModItemTypeDataXML>
</ArrayOfModItemTypeDataXML>
Field Documentation:
ItemID: The item identifier.

Use: Valid values - Block or Item.

Type: Valid values -  Block, Item, Tool, Weapon, Armor, Power, Food, Decor, Jewelry.

SubType: Sub types can be combined by separating multiple values with spaces. Valid values -  Bow, Arrow, Shield, Edible, TillTool, HarvestTool, Grenade, GrenadeLauncher, Key, Door, RangedWeapon, BlockCanBeOpened, Leaves,  Gun, RapidSwing, Potion.

Class: Valid values - None, CantMine, Hand, Wood, Bronze, Iron, Steel, GreenstoneGold, Platinum, Diamond, Ruby, Titanium, SledgeHammer.

Inv: Specifies which shop tab the item will be listed. Valid values for Blocks - Natural, Stone, Ore, Flora, Utility, Building, Color. Valid values for Items - Tool, Weapon, Armor, Food, Jewelry, Key, Other.

Combat: TBA

Model: Valid values - Block, IconBlock, BigIconBlock, Item, MediumItem, MediumItemFront, ItemTLBR, Tool, Hatchet, Weapon, WeaponTLBR, WeaponTRBL, BigWeapon, SteelScimitar, SteelClaymore, Bow, Arrow, Armor, Shield, Key, Jewelry, Door, Torch, GunHand, GunRifle, Clipboard, Staff.

Swing: Valid values - Block, Item, IconBlock, Ramp, Weapon, WeaponTRBL, Spear, Bow, Shield, Eating, Arrow, SwitchArrow, GunHand, GunRifle, Key, Staff.

Equip: Valid values - Head, Neck, Body, Legs, Feet, LeftSide, RightSide, LeftHand, RightHand.

--------------------------------------------------------------------------------------------------------------------------------------------

ItemTypeClassData.xml

Sample File:
<?xml version="1.0"?>
<ArrayOfModItemTypeClassDataXML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <ModItemTypeClassDataXML>
    <ItemClass>Steel</ItemClass>
    <Power>450</Power>
    <MaxResistance>3150</MaxResistance>
  </ModItemTypeClassDataXML>
</ArrayOfModItemTypeClassDataXML>
Field Documentation:
ItemClass: TBD
Power: TBD
MaxResistance: TBD

--------------------------------------------------------------------------------------------------------------------------------------------

ItemCombatData.xml

Defines Combat bonus buffs for Combat Items.

Sample File:
<?xml version="1.0"?>
<ArrayOfModItemCombatDataXML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <ModItemCombatDataXML>
    <CombatID>SteelSword</CombatID>
    <Health>0</Health>
    <Attack>40</Attack>
    <Strength>30</Strength>
    <Defence>30</Defence>
    <Ranged>0</Ranged>
    <Looting>0</Looting>
  </ModItemCombatDataXML>
</ArrayOfModItemCombatDataXML>
Field Documentation:
CombatID: The Combat identifier as specified in the <Combat> field in ItemTypeData.xml

Each of the following fields can have a value of -32767 to 32767.
Every 100 points is equivalent to 1 skill level.

Health:
Attack:
Strength:
Defence:
Ranged:
Looting:

--------------------------------------------------------------------------------------------------------------------------------------------

ItemSwingTimeData.xml

Defines timing data for the item swing.

Sample File:
<?xml version="1.0"?>
<ArrayOfModItemSwingTimeDataXML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <ModItemSwingTimeDataXML>
    <ItemID>SteelSword</ItemID>
    <Time>0.42</Time>
    <Pause>0</Pause>
    <ExtendedPause>0</ExtendedPause>
    <RetractTime>-1</RetractTime>
    <RetractSmooth>false</RetractSmooth>
  </ModItemSwingTimeDataXML>
  <ModItemSwingTimeDataXML>
    <ItemID>Pizza</ItemID>
    <Time>1.2</Time>
    <Pause>0.1</Pause>
    <ExtendedPause>0.85</ExtendedPause>
    <RetractTime>-1</RetractTime>
    <RetractSmooth>false</RetractSmooth>
  </ModItemSwingTimeDataXML>
</ArrayOfModItemSwingTimeDataXML>
Field Documentation:
ItemID: TBD
Time: TBD
Pause: TBD
ExtendedPause: TBD
RetractTime: TBD
RetractSmooth: TBD

--------------------------------------------------------------------------------------------------------------------------------------------

ItemSwingData.xml

Defines animation data for the item swing.

Sample File:
<?xml version="1.0"?>
<ArrayOfModItemSwingDataXML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <ModItemSwingDataXML>
    <SwingType>Weapon</SwingType>
    <IsSwingable>true</IsSwingable>
    <SwingTime>0</SwingTime>
    <RestPosition>
      <X>0.23462156</X>
      <Y>-0.165112343</Y>
      <Z>-0.4669441</Z>
    </RestPosition>
    <RestRotation>
      <X>0.13984846</X>
      <Y>0.41943686</Y>
      <Z>0</Z>
    </RestRotation>
    <ExtendedPosition>
      <X>0.2004708</X>
      <Y>0.25</Y>
      <Z>-0.45</Z>
    </ExtendedPosition>
    <ExtendedPositionFPV>
      <X>0.2004708</X>
      <Y>-0.08133192</Y>
      <Z>-0.45</Z>
    </ExtendedPositionFPV>
    <ExtendedRotation>
      <X>0.02</X>
      <Y>-0.2</Y>
      <Z>0.2</Z>
    </ExtendedRotation>
    <ExtendedRotationFPV>
      <X>-0.0619444</X>
      <Y>-0.4385138</Y>
      <Z>0.7777606</Z>
    </ExtendedRotationFPV>
    <CircularY>0.38</CircularY>
    <CircularZ>0.41</CircularZ>
    <CircularYFPV>0.11</CircularYFPV>
  </ModItemSwingDataXML>
  <ModItemSwingDataXML>
    <SwingType>Eating</SwingType>
    <IsSwingable>true</IsSwingable>
    <SwingTime>0</SwingTime>
    <RestPosition>
      <X>0.25</X>
      <Y>-0.17</Y>
      <Z>-0.45</Z>
    </RestPosition>
    <RestRotation>
      <X>0.2</X>
      <Y>0.4</Y>
      <Z>0</Z>
    </RestRotation>
    <ExtendedPosition>
      <X>0.04</X>
      <Y>0.17</Y>
      <Z>-0.63</Z>
    </ExtendedPosition>
    <ExtendedPositionFPV>
      <X>0.04</X>
      <Y>-0.17</Y>
      <Z>-0.55</Z>
    </ExtendedPositionFPV>
    <ExtendedRotation>
      <X>0.95</X>
      <Y>0</Y>
      <Z>0.2</Z>
    </ExtendedRotation>
    <ExtendedRotationFPV>
      <X>1.4</X>
      <Y>0</Y>
      <Z>0.3</Z>
    </ExtendedRotationFPV>
    <CircularY>0</CircularY>
    <CircularZ>0</CircularZ>
    <CircularYFPV>0</CircularYFPV>
  </ModItemSwingDataXML>
</ArrayOfModItemSwingDataXML>
Field Documentation:
SwingType: TBD
IsSwingable: TBD
SwingTime: TBD
RestPosition: TBD
RestRotation: TBD
ExtendedPosition: TBD
ExtendedPositionFPV: TBD
ExtendedRotation: TBD
ExtendedRotationFPV: TBD
CircularY: TBD
CircularZ: TBD
CircularYFPV: TBD

--------------------------------------------------------------------------------------------------------------------------------------------

ItemModelData.xml

Defines model orientation data for the item.

Sample File:
<?xml version="1.0"?>
<ArrayOfModItemModelDataXML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <ModItemModelDataXML>
    <ItemModelType>Weapon</ItemModelType>
    <Scale>2.2</Scale>
    <HandOffset>
      <X>0</X>
      <Y>0.03331069</Y>
      <Z>-0.04895301</Z>
    </HandOffset>
    <HandYPR>
      <X>0</X>
      <Y>-1.35</Y>
      <Z>0</Z>
    </HandYPR>
    <HUDScale>1</HUDScale>
    <HUDOffset>
      <X>0</X>
      <Y>-0.06391386</Y>
      <Z>-0.0002981975</Z>
    </HUDOffset>
  </ModItemModelDataXML>
</ArrayOfModItemModelDataXML>
Field Documentation:
ItemModelType: TBD
Scale: TBD
HandOffset: TBD
HandYPR: TBD
HUDScale: TBD
HUDOffset: TBD

--------------------------------------------------------------------------------------------------------------------------------------------

ItemSoundData.xml

Defines sounds / audio used by the item.

Sample File:
<?xml version="1.0"?>
<ArrayOfModItemSoundDataXML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <ModItemSoundDataXML>
    <ItemID>SteelSword</ItemID>
    <Group>ItemSteelTool</Group>
    <Sounds />
  </ModItemSoundDataXML>
</ArrayOfModItemSoundDataXML>
Field Documentation:
ItemID: TBD
Group: TBD
Sounds: TBD

--------------------------------------------------------------------------------------------------------------------------------------------

SkillData.xml

Defines Skill properties for Blocks and Items.

Sample File:
<?xml version="1.0"?>
<ArrayOfModSkillDataXML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <ModSkillDataXML>
    <ItemID>SteelSword</ItemID>
    <MineReq>0</MineReq>
    <UseReq>20</UseReq>
    <UseSkill>Attack</UseSkill>
    <CraftReq>24</CraftReq>
    <CraftSkill>Smithing</CraftSkill>
  </ModSkillDataXML>
</ArrayOfModSkillDataXML>
Field Documentation:
ItemID: The item identifier.

MineReq: The mining skill level required to mine the block.

UseReq: The [UseSkill] level required to use the item.

UseSkill: All XP associated with using the item will be applied to this skill. Valid values - Health, Strength, Attack, Defence, Ranged, Mining, Digging, Chopping, Building, Crafting, Smelting, Smithing, Farming, Cooking, Looting.

CraftReq: The [CraftSkill] level required to craft the item.

CraftSkill: All XP associated with crafting the item will be applied to this skill. Valid values - Health, Strength, Attack, Defence, Ranged, Mining, Digging, Chopping, Building, Crafting, Smelting, Smithing, Farming, Cooking, Looting.

--------------------------------------------------------------------------------------------------------------------------------------------

BlueprintData.xml

Defines how Blocks and Items are crafted.

Sample File:
<?xml version="1.0"?>
<ArrayOfModBlueprintDataXML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <ModBlueprintDataXML>
    <ItemID>SteelSword</ItemID>
    <CraftType>Crafting</CraftType>
    <IsDefault>false</IsDefault>
    <Depth>
      <X>0.274452627</X>
      <Y>0.4744526</Y>
    </Depth>
    <Result>
      <ItemID>SteelSword</ItemID>
      <Count>1</Count>
    </Result>
    <Material11>
      <ItemID>None</ItemID>
      <Durability>0</Durability>
      <Count>0</Count>
    </Material11>
    <Material12>
      <ItemID>Stick</ItemID>
      <Durability>0</Durability>
      <Count>1</Count>
    </Material12>
    <Material13>
      <ItemID>None</ItemID>
      <Durability>0</Durability>
      <Count>0</Count>
    </Material13>
    <Material21>
      <ItemID>None</ItemID>
      <Durability>0</Durability>
      <Count>0</Count>
    </Material21>
    <Material22>
      <ItemID>SteelIngot</ItemID>
      <Durability>0</Durability>
      <Count>1</Count>
    </Material22>
    <Material23>
      <ItemID>None</ItemID>
      <Durability>0</Durability>
      <Count>0</Count>
    </Material23>
    <Material31>
      <ItemID>None</ItemID>
      <Durability>0</Durability>
      <Count>0</Count>
    </Material31>
    <Material32>
      <ItemID>SteelIngot</ItemID>
      <Durability>0</Durability>
      <Count>1</Count>
    </Material32>
    <Material33>
      <ItemID>None</ItemID>
      <Durability>0</Durability>
      <Count>0</Count>
    </Material33>
  </ModBlueprintDataXML>
</ArrayOfModBlueprintDataXML>
Field Documentation:
ItemID: TBD
CraftType: TBD
IsDefault: TBD
Depth: TBD
Result: TBD
Material11: TBD
Material12: TBD
Material13: TBD
Material21: TBD
Material22: TBD
Material23: TBD
Material31: TBD
Material32: TBD
Material33: TBD

--------------------------------------------------------------------------------------------------------------------------------------------

ItemTextures16.xml and ItemTextures32.xml

These two files list the items whose textures are in the PNG files.
The items defined in ItemTextures16.xml will be loaded from TPI_16.PNG and placed into SD texture packs (when they are loaded).
The items defined in ItemTextures32.xml will be loaded from TPI_32.PNG and placed into HD texture packs (when they are loaded).
These files are not necessary if you are not supplying PNG files.
You can optionally supply textures for SD packs, HD packs, or both.
You can supply textures for different items for SD and HD packs, they don't have to match.

<?xml version="1.0"?>
<ArrayOfItemXML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <ItemXML>
    <ItemID>Revolver</ItemID>
  </ItemXML>
  <ItemXML>
    <ItemID>Bullet</ItemID>
  </ItemXML>
  <ItemXML>
    <ItemID>SniperRifle</ItemID>
  </ItemXML>
  <ItemXML>
    <ItemID>AssaultRifle</ItemID>
  </ItemXML>
</ArrayOfItemXML>

--------------------------------------------------------------------------------------------------------------------------------------------
Title: Re: TM PC Modding API
Post by: Craig on November 08, 2015, 08:36:58 PM
Changing Blocks

Currently it is not possible to add new Blocks to the game but you can change the definitions of existing blocks.

The XML files that define a Block are:

BlockData.xml
BlockMaterialData.xml
and all the Item*.xml files listed in the previous topic.

--------------------------------------------------------------------------------------------------------------------------------------------

BlockData.xml

Defines general properties for Blocks.

Sample File:
Simple Example: Name and Description change

<?xml version="1.0"?>
<ArrayOfModBlockDataXML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <ModBlockDataXML>
    <BlockID>Retro</BlockID>
    <Opacity>1</Opacity>
    <Buffer>4</Buffer>
    <IsRotated>true</IsRotated>
  </ModBlockDataXML>
  <ModBlockDataXML>
    <BlockID>CherryMetal</BlockID>
    <Opacity>1</Opacity>
    <Buffer>4</Buffer>
    <IsRotated>true</IsRotated>
  </ModBlockDataXML>
</ArrayOfModBlockDataXML>

Full Example:

<?xml version="1.0"?>
<ArrayOfModBlockDataXML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <ModBlockDataXML>
    <BlockID>Grass</BlockID>
    <Material>Earth</Material>
    <ClassType>None</ClassType>
    <Opacity>255</Opacity>
    <Luminance>0</Luminance>
    <Friction>0.35</Friction>
    <Dampen>0.1</Dampen>
    <Buffer>0</Buffer>
    <IsIcon>false</IsIcon>
    <IsAttached>false</IsAttached>
    <IsPassable>false</IsPassable>
    <IsRotated>false</IsRotated>
    <IsOrientated>false</IsOrientated>
    <IsOreDeposit>false</IsOreDeposit>
    <IsPowerEmitter>false</IsPowerEmitter>
    <IsPoweredMechanism>false</IsPoweredMechanism>
    <IsVertSunlightUnhindered>false</IsVertSunlightUnhindered>
    <BlastResistance>0</BlastResistance>
    <WindAffect>0</WindAffect>
    <TextureID>0</TextureID>
  </ModBlockDataXML>
</ArrayOfModBlockDataXML>
Field Documentation:
BlockID: The Block identifier. No spaces. This must identify an existing block. New BlockID's are not yet supported.
Material: TBD
ClassType: TBD
Opacity: TBD
Luminance: TBD
Friction: TBD
Dampen: TBD
Buffer: TBD
IsIcon: TBD
IsAttached: TBD
IsPassable: TBD
IsRotated: TBD
IsOrientated: TBD
IsOreDeposit: TBD
IsPowerEmitter: TBD
IsPoweredMechanism: TBD
IsVertSunlightUnhindered: TBD
BlastResistance: TBD
WindAffect: TBD
TextureID: TBD

--------------------------------------------------------------------------------------------------------------------------------------------

BlockMaterialData.xml

Defines a Blocks material.

Sample File:
<?xml version="1.0"?>
<ArrayOfModBlockMaterialDataXMLXML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <ModBlockMaterialDataXML>
    <Material>Earth</Material>
    <Resistance>1600</Resistance>
    <BaseEfficiency>100</BaseEfficiency>
    <PickEfficiency>75</PickEfficiency>
    <ShovelEfficiency>100</ShovelEfficiency>
    <HatchetEfficiency>50</HatchetEfficiency>
    <WeaponEfficiency>30</WeaponEfficiency>
    <XPAdjust>0</XPAdjust>
    <Flags />
  </ModBlockMaterialDataXML>
</ArrayOfModBlockMaterialDataXML>
Field Documentation:
Material: TBD
Resistance: TBD
BaseEfficiency: TBD
PickEfficiency: TBD
ShovelEfficiency: TBD
HatchetEfficiency: TBD
WeaponEfficiency: TBD
XPAdjust: TBD
Flags: TBD


--------------------------------------------------------------------------------------------------------------------------------------------

BlockTextures16.xml and BlockTextures64.xml

These two files list the blocks whose textures are in the PNG files.
The blocks defined in BlockTextures16.xml will be loaded from TP_16.PNG and placed into SD texture packs (when they are loaded).
The blocks defined in BlockTextures64.xml will be loaded from TP_64.PNG and placed into HD texture packs (when they are loaded).
These files are not necessary if you are not supplying PNG files.
You can optionally supply textures for SD packs, HD packs, or both.
You can supply textures for different blocks for SD and HD packs, they don't have to match.

<?xml version="1.0"?>
<ArrayOfItemXML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <ItemXML>
    <ItemID>Grass</ItemID>
  </ItemXML>
  <ItemXML>
    <ItemID>Retro</ItemID>
  </ItemXML>
</ArrayOfItemXML>

--------------------------------------------------------------------------------------------------------------------------------------------
Title: Re: TM PC Modding API
Post by: Craig on November 08, 2015, 08:37:10 PM
Adding NPCs

The XML files that define an NPC are:

ActorTypeData.xml
ActorAIData.xml
ActorAudioData.xml
ActorLevelData.xml
ActorPhysicsData.xml


A model for the NPC can also be supplied, either to create a new NPC or to replace the model of an existing NPC. If no model is supplied then the default one supplied with the game will be used. Models can be created in the game and saved as components, then copied into the same directory as the mod. When creating a component for an NPC model, ensure the 'model' is facing south in the world before you copy it to the clipboard so that the NPC will be facing the right direction when in game.

--------------------------------------------------------------------------------------------------------------------------------------------

ActorTypeData.xml

Defines general properties for NPCs.

Sample File:
<?xml version="1.0"?>
<ArrayOfModActorTypeDataXML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <ModActorTypeDataXML>
    <ActorType>Spider</ActorType>
    <LevelType>Spider</LevelType>
    <PhysicsType>Spider</PhysicsType>
    <AIType>Spider</AIType>
    <ComName>Spider</ComName>
    <ModelHeight>1.5</ModelHeight>
    <ModelYRotation>0</ModelYRotation>
    <IsValid>true</IsValid>
    <IsFemale>false</IsFemale>
    <IsPassive>false</IsPassive>
    <IsImmuneToFire>false</IsImmuneToFire>
    <HasNameplate>true</HasNameplate>
    <HandMaxHit>3</HandMaxHit>
    <NaturalSpawnFreq>10</NaturalSpawnFreq>
    <NaturalBehaviour>NPCs\Spider</NaturalBehaviour>
    <LootTable>
      <LootItem>
        <Chance>10</Chance>
        <DamageType>Combat</DamageType>
        <Item>DiamondSword</Item>
        <Count1>1</Count1>
        <Count2>2</Count2>
      </LootItem>
      <LootItem>
        <Chance>20</Chance>
        <DamageType>Combat</DamageType>
        <Item>SteelSpear</Item>
        <Count1>1</Count1>
        <Count2>2</Count2>
      </LootItem>
    </LootTable>
  </ModActorTypeDataXML>
</ArrayOfModActorTypeDataXML>
Field Documentation:
ActorType: TBD
LevelType: TBD
PhysicsType: TBD
AIType: TBD
ComName: TBD
ModelHeight: TBD
ModelYRotation: TBD
IsValid: TBD
IsFemale: TBD
IsPassive: TBD
IsImmuneToFire: TBD
HasNameplate: TBD
HandMaxHit: TBD
NaturalSpawnFreq: TBD
NaturalBehaviour: TBD
LootTable: TBD

--------------------------------------------------------------------------------------------------------------------------------------------

ActorAIData.xml

Defines properties used by the NPC AI.

<?xml version="1.0"?>
<ArrayOfModActorAIDataXML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <ModActorAIDataXML>
    <ActorAIType>Spider</ActorAIType>
    <StrikeDelay>1</StrikeDelay>
    <StrikeRange>3.5</StrikeRange>
    <RegardRange>40</RegardRange>
    <HearingRange>20</HearingRange>
    <AttackRange>35</AttackRange>
    <InactiveRange>60</InactiveRange>
  </ModActorAIDataXML>
</ArrayOfModActorAIDataXML>
Field Documentation:
ActorAIType: TBD
StrikeDelay: TBD
StrikeRange: TBD
RegardRange: TBD
HearingRange: TBD
AttackRange: TBD
InactiveRange: TBD

--------------------------------------------------------------------------------------------------------------------------------------------

ActorAudioData.xml

Defines Audio / Sounds for NPCs.

<?xml version="1.0"?>
<ArrayOfModActorAudioDataXML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <ModActorAudioDataXML>
    <ActorType>Spider</ActorType>
    <AudioPain>SpiderPain</AudioPain>
    <AudioStrike>SpiderStrike</AudioStrike>
    <AudioWarning>SpiderWarning</AudioWarning>
    <AudioDeath>SpiderDeath</AudioDeath>
  </ModActorAudioDataXML>
</ArrayOfModActorAudioDataXML>
Field Documentation:
ActorType: TBD
AudioPain: TBD
AudioStrike: TBD
AudioWarning: TBD
AudioDeath: TBD

--------------------------------------------------------------------------------------------------------------------------------------------

ActorLevelData.xml

Defines Combat Skill Levels for NPCs.

<?xml version="1.0"?>
<ArrayOfModActorLevelDataXML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <ModActorLevelDataXML>
    <ActorLevelType>Spider</ActorLevelType>
    <HealthLevel>14</HealthLevel>
    <AttackLevel>10</AttackLevel>
    <StrengthLevel>5</StrengthLevel>
    <DefenceLevel>1</DefenceLevel>
    <RangedLevel>1</RangedLevel>
  </ModActorLevelDataXML>
</ArrayOfModActorLevelDataXML>
Field Documentation:
ActorLevelType: TBD
HealthLevel: TBD
AttackLevel: TBD
StrengthLevel: TBD
DefenceLevel: TBD
RangedLevel: TBD

--------------------------------------------------------------------------------------------------------------------------------------------

ActorPhysicsData.xml

Defines physics properties for the NPC.

<?xml version="1.0"?>
<ArrayOfModActorPhysicsDataXML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <ModActorPhysicsDataXML>
    <ActorPhysicsType>Spider</ActorPhysicsType>
    <Acceleration>0.13</Acceleration>
    <MoveSpeed>0.13</MoveSpeed>
    <JumpSpeed>0.35</JumpSpeed>
    <RotateSpeed>0.03</RotateSpeed>
  </ModActorPhysicsDataXML>
</ArrayOfModActorPhysicsDataXML>
Field Documentation:
ActorPhysicsType: TBD
Acceleration: TBD
MoveSpeed: TBD
JumpSpeed: TBD
RotateSpeed: TBD

--------------------------------------------------------------------------------------------------------------------------------------------

Behaviour.db and Dialog.db

These files enable provision of NPC Behaviour and Dialog trees.

To create these files, use the Export button on the Behaviours tab in the world where you have created the behaviours or dialog for the mod, and export the files to your Mod folder.

--------------------------------------------------------------------------------------------------------------------------------------------
Title: Re: TM PC Modding API
Post by: Craig on November 08, 2015, 08:37:16 PM
Adding Particle Emitter Templates

The XML files that define a Particle Emitter Templates are:

ParticleData.xml

ParticleData.xml
<ArrayOfParticleData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <ParticleData>
    <Name>Garys Mod\Default</Name>
    <EmitFreq>1000</EmitFreq>
    <Duration>1500</Duration>
    <Rotation>0.1</Rotation>
    <Velocity>
      <X>0</X>
      <Y>1</Y>
      <Z>0</Z>
    </Velocity>
    <VelocityVariance>
      <X>0</X>
      <Y>0</Y>
      <Z>0</Z>
    </VelocityVariance>
    <EmitPosOffset>
      <X>0</X>
      <Y>0</Y>
      <Z>0</Z>
    </EmitPosOffset>
    <EmitPosVariance>
      <X>0</X>
      <Y>0</Y>
      <Z>0</Z>
    </EmitPosVariance>
    <Size>
      <X>0.1</X>
      <Y>0.1</Y>
      <Z>0.1</Z>
      <W>2</W>
    </Size>
    <WindFactor>0</WindFactor>
    <Gravity>0</Gravity>
    <StartColor>
      <R>255</R>
      <G>255</G>
      <B>255</B>
      <A>255</A>
    </StartColor>
    <EndColor>
      <R>0</R>
      <G>0</G>
      <B>255</B>
      <A>255</A>
    </EndColor>
  </ParticleData>
</ArrayOfParticleData>
Title: Re: TM PC Modding API
Post by: Craig on November 08, 2015, 08:37:26 PM
Reserved.
Title: Re: TM PC Modding API
Post by: Craig on November 08, 2015, 08:37:31 PM
Reserved.
Title: Re: TM PC Modding API
Post by: Craig on November 08, 2015, 08:37:41 PM
Reserved.
Title: Re: TM PC Modding API
Post by: Craig on November 08, 2015, 08:37:47 PM
Reserved.
Title: Re: TM PC Modding API
Post by: Craig on November 08, 2015, 08:37:52 PM
Reserved.
Title: Re: TM PC Modding API
Post by: Craig on November 08, 2015, 08:37:57 PM
Reserved.
Title: Re: TM PC Modding API
Post by: Craig on November 12, 2015, 07:59:40 PM
bump.

Feel free to discus, although I'd recommend not asking questions like - what does this field do, as we will fill that information in as time goes on.

This is not the place to learn about XML or ask questions about XML, and if I see posts of that nature, they'll likely disappear with no trace (along with anything else I consider to be spam).

The topic is intended as a discussion point for modders on the API itself.

If you don't know XML and would like to learn, there are literally thousands of resources on the internet to do that, so please do that over there..
Title: Re: TM PC Modding API
Post by: MrMarooca on November 12, 2015, 08:07:44 PM
Interesting. I never really imagined the API would use XML (I just assumed we'd use some dll's supplied by dev's or whatever). Do you guys think this could make the API somewhat limited compared to using supplied libraries or something similar? I do like the XML idea though, it offers the ability for everyone to make mods - even those not familiar with .NET.
Title: Re: TM PC Modding API
Post by: Craig on November 12, 2015, 08:45:10 PM
Do you guys think this could make the API somewhat limited compared to using supplied libraries or something similar?
No, the XML part of the API is just the start. We will start simple and build from that. For starters we'll try to expose as much as possible that can be modified via data only, then we'll add support for modification via programming.
Title: Re: TM PC Modding API
Post by: Cooldude8 on November 13, 2015, 12:42:17 PM
 
             
         You should make a side tool in the PC port for the people dont know what XML is or how to program in XML        You should make a side tool in the PC port for the people dont know what XML is or how to program in XML

You should make a side tool in the PC port for the people dont know what XML is or how to program in XML

You should make a side tool in the PC port for the people dont know what XML is or how to program in XML
Title: Re: TM PC Modding API
Post by: MrMarooca on November 13, 2015, 12:56:12 PM
             
         You should make a side tool in the PC port for the people dont know what XML is or how to program in XML        You should make a side tool in the PC port for the people dont know what XML is or how to program in XML

You should make a side tool in the PC port for the people dont know what XML is or how to program in XML

You should make a side tool in the PC port for the people dont know what XML is or how to program in XML

We may also develop a tool to make custom object creation easier for those that are not comfortable working with XML files directly.

XML is really easy to learn though, I suggest checking W3Schools (http://www.w3schools.com/xml/) out for some examples.
Title: Re: TM PC Modding API
Post by: Curmescius on December 07, 2015, 01:57:21 PM
<?xml version="1.0"?>
<ArrayOfItemCombatDataXML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <ItemCombatDataXML>
    <CombatID>SteelSword</CombatID>
    <Health>0</Health>
    <Attack>40</Attack>
    <Strength>30</Strength>
    <Defence>30</Defence>
    <Ranged>0</Ranged>
    <Magic>0</Magic>
    <Looting>0</Looting>
  </ItemCombatDataXML>
</ArrayOfItemCombatDataXML>

Ahem! Craaaig! Is there something you'd like to tell us?

Also, Will this API allow for modders to create custom player skills for use in special items? For example, If I made a lockpick item, Could I make it only usable if you had a (Custom) LockPicking skill level of =>x?
Title: Re: TM PC Modding API
Post by: Campbell on December 07, 2015, 11:04:29 PM
bump.

Also, Will this API allow for modders to create custom player skills for use in special items? For example, If I made a lockpick item, Could I make it only usable if you had a (Custom) LockPicking skill level of =>x?
Not with the XML modding method, but once we implement the ability to create mods via programming I don't see why not ;)
Title: Re: TM PC Modding API
Post by: Curmescius on December 08, 2015, 10:53:39 AM
bump.
Not with the XML modding method, but once we implement the ability to create mods via programming I don't see why not ;)

Will the XML method allow for us to directly tie script commands into an item's swing function?

For example, Could I make an item that automatically teleports the player 15 blocks in front of them by tying a "Teleport [Player] [vrel:15,-2,0]" script command to the item's swing function?
Title: Re: TM PC Modding API
Post by: Joel on December 08, 2015, 03:25:15 PM
can we mod the player model just like adding mob or is that going to be discus later.

Title: Re: TM PC Modding API
Post by: Clerical on December 08, 2015, 03:42:19 PM
can we mod the player model just like adding mob or is that going to be discus later.
No mod required as the game will have the ability to create you're own skins.
Title: Re: TM PC Modding API
Post by: Joel on December 08, 2015, 04:03:58 PM
No mod required as the game will have the ability to create you're own skins.
the skin yes but what im talking about can you make yourself look like the troll npc or the wolf npc not the skin texture.
Title: Re: TM PC Modding API
Post by: Curmescius on December 08, 2015, 04:27:44 PM
Is this tag: <IsFemale>false</IsFemale> in the mob's XML data used in TM at this moment? I thought it may be for determining the sound, But that seems to already be covered. It seems a bit redundant. Lol
Title: Re: TM PC Modding API
Post by: Campbell on December 08, 2015, 08:09:30 PM
Will the XML method allow for us to directly tie script commands into an item's swing function?

For example, Could I make an item that automatically teleports the player 15 blocks in front of them by tying a "Teleport [Player] [vrel:15,-2,0]" script command to the item's swing function?
No, modding with XML files will only be for simple additions or replacements. Anything that can't be exposed through data files (e.g. different skills, function manipulation, etc) will have to be modded by programming.

the skin yes but what im talking about can you make yourself look like the troll npc or the wolf npc not the skin texture.
There are no plans to implement this at this point.

Is this tag: <IsFemale>false</IsFemale> in the mob's XML data used in TM at this moment? I thought it may be for determining the sound, But that seems to already be covered. It seems a bit redundant. Lol
We will go over the use of each property later on.
Title: Re: TM PC Modding API
Post by: Curmescius on December 11, 2015, 09:56:56 PM
Will it be possible to simply Ctrl+S our mod's XML files and have them automatically update while the game is running?

If not, Could a refresh mods button be considered, As this would make simple changes to animation and such much less time consuming.
Title: Re: TM PC Modding API
Post by: Joel on December 16, 2015, 08:25:14 PM
Adding Mobs...
now I love this but got one question.can I import my own 3d model in obj format into the game or will that cause some crash to the game
Title: Re: TM PC Modding API
Post by: Campbell on December 16, 2015, 08:42:15 PM
Will it be possible to simply Ctrl+S our mod's XML files and have them automatically update while the game is running?

If not, Could a refresh mods button be considered, As this would make simple changes to animation and such much less time consuming.
You won't be able to edit the mod XML files and have it update automatically in-game after saving, but yes a refresh button can be implemented to do that.

now I love this but got one question.can I import my own 3d model in obj format into the game or will that cause some crash to the game
No, it will have to be a model made in the game.
Title: Re: TM PC Modding API
Post by: Joel on December 16, 2015, 08:47:34 PM
will it be implanted soon or is it on the thinking table
Title: Re: TM PC Modding API
Post by: TM Charles on January 05, 2016, 09:14:49 AM
will it be implanted soon or is it on the thinking table
I do believe it will ship with the game to make a good modding api its better to make it when the games being made so that it can be built on.
Title: Re: TM PC Modding API
Post by: MrMarooca on January 28, 2016, 11:08:26 PM
What does it mean for the future of the modding API now that Campbell is off the team? Will development continue as planned?
Title: Re: TM PC Modding API
Post by: Coolo9000 on January 31, 2016, 06:20:46 PM
I am so excited for this. I got on the forums today and spat water all over my monitor seeing this post. I can't wait to get into modding this game.
Title: Re: TM PC Modding API
Post by: TheDestinedCrab on September 07, 2016, 02:33:01 AM
It actually looks easier than i thought. Do you have a planned date/time of when you will explain the fields, or not?
Title: Re: TM PC Modding API
Post by: TheDestinedCrab on September 08, 2016, 02:34:49 AM
If i hosted a map that I have a mod on would the players tht join my map also be able to use that mod, or would they have to download it before they can use it?
Title: Re: TM PC Modding API
Post by: Circlecat113 on September 08, 2016, 07:19:14 AM
If i hosted a map that I have a mod on would the players tht join my map also be able to use that mod, or would they have to download it before they can use it?
I'm not craig but it will either download the mod when a player joins or it will require them to download it or it could be like gmod and show up as "error" it just depends on how craig does it
Title: Re: TM PC Modding API
Post by: TheGamingNugget on November 02, 2016, 12:39:02 PM
.. quote edited out by Craig. Why on earth would you quote that whole page to ask this question?

[/What programming language do you use for the code in the main game?

Title: Re: TM PC Modding API
Post by: AlienizdPixel on November 02, 2016, 02:18:08 PM
What programming language do you use for the code in the main game?
C# if I recall.
Title: Re: TM PC Modding API
Post by: TheDestinedCrab on November 02, 2016, 05:31:51 PM
Hi,

I was wondering if, when TM PC come out, we'd be able to mod in new games. These would be usable via the arcade machine. The reason I am asking this is because the format for blocks doesn't look like it is capable of being used to create a new game. Would we even be able to make a new game? If so, would we have to make it i C# ?
Title: Re: TM PC Modding API
Post by: Craig on November 02, 2016, 05:38:43 PM
I was womdering if, when TM PC come out, we'd be able to mod in new games. These would be usable via the arcade machine. The reason I am asking this ks because the format for blocks doesn't look like it is capable of being used to create a new game. Would we even be able to make a new game? If so, would we have to make it i C# ?
Not when it initially comes out on early access, but I'm sure we could support adding new games to the arcade block via mods some time in the future. In theory you could write mods for TM using any language supported by .Net, but C# would be the best bet imo.
Title: Re: TM PC Modding API
Post by: TheDestinedCrab on November 02, 2016, 05:43:08 PM
Here is a quote from google :

" Here is the list of languages supported by the .NET Framework. These are: APL, C++, C#, Cobol, Component Pascal, Curriculum, Eiffel, Forth, Fortran, Haskell, Paul Blart: Mall Cop Language, Microsoft JScript, Mercury, Mondrian, Oberon, Oz, Pascal, Perl, Python, RPG, Scheme, Small Talk, Standard ML and Microsoft Visual Basic. "

I'm assuming that the red is Paul Blart: Mall Copscript, can someone please confirm that.

Also,
Is it possible to confirm whether I could write a new game in JS?
Title: Re: TM PC Modding API
Post by: December Jim on November 02, 2016, 05:47:42 PM
The thing I want most is a shaders mod. For example if you go on YouTube and search up Keralis, he does minecraft videos, however he does his "inspiration series" where he goes around his server and looks at modern houses and other builds.

He uses a shaders pack/mod which changes up how the game looks and overall it changes the games feel.

I don't know if something like this could be achieveable but I hope it can be. I'm hoping to start a world where I create a city and build a bunch of houses and other stuff. Something similar to Keralis' server

The shaders mod with a modern texture pack would be amazing!
Title: Re: TM PC Modding API
Post by: TM Charles on November 02, 2016, 06:07:07 PM
The thing I want most is a shaders mod. For example if you go on YouTube and search up Keralis, he does minecraft videos, however he does his "inspiration series" where he goes around his server and looks at modern houses and other builds.

He uses a shaders pack/mod which changes up how the game looks and overall it changes the games feel.

I don't know if something like this could be achieveable but I hope it can be. I'm hoping to start a world where I create a city and build a bunch of houses and other stuff. Something similar to Keralis' server

The shaders mod with a modern texture pack would be amazing!
IMO i think instead of making a whole new mod someone can use what the game already has and build from there. I don't know what my abilities will be for modding. I've look through the code of TM many times never looked at the lighting system. If and when modding starts i want to really work with people to get the best things out I've never done much modding for games i just like to code games. Gonna be fun to see what i can apply for TM. Without saying a lot i've been working on something close to but not directly for modding these last few weeks. Not quite showing state yet and i need to get some more things added but soon.
Title: Re: TM PC Modding API
Post by: Craig on November 02, 2016, 06:50:15 PM
someone can use what the game already has and build from there.
That is essentially what a mod is.

I've look through the code of TM many times never looked at the lighting system.
Lighting is only one part of a shader.

The thing I want most is a shaders mod.
I'm sure it will eventually be possible, but shader mods are a bit more tricky to support.

It's easy enough to write the shader programs in HLSL. But there are a couple of problems.

1. I'm not sure if XNA can build shader programs on the fly. If it can't, then it's going to be tricky to work out how to get the game to load them.
2. A much harder problem is data. If someone wants to build a more sophisticated shader, they're likely going to need to pass the shader programs more data than the game currently passes. And writing a mod to build that extra data could be extremely difficult.
Title: Re: TM PC Modding API
Post by: AlienizdPixel on November 02, 2016, 07:09:52 PM
Microsoft JScript...

I'm assuming that the red is Paul Blart: Mall Copscript, can someone please confirm that.
Not entirely, but for the sake of being an answer, yes.
Title: Re: TM PC Modding API
Post by: TM Charles on November 02, 2016, 07:13:58 PM
someone can use what the game already has and build from there.
That is essentially what a mod is.

I've look through the code of TM many times never looked at the lighting system.
Lighting is only one part of a shader.

The thing I want most is a shaders mod.
I'm sure it will eventually be possible, but shader mods are a bit more tricky to support.

It's easy enough to write the shader programs in HLSL. But there are a couple of problems.

1. I'm not sure if XNA can build shader programs on the fly. If it can't, then it's going to be tricky to work out how to get the game to load them.
2. A much harder problem is data. If someone wants to build a more sophisticated shader, they're likely going to need to pass the shader programs more data than the game currently passes. And writing a mod to build that extra data could be extremely difficult.
Do you know is GLSL is supported as that is what i know the most. If not do you know if they are similar?


2000!!
Title: Re: TM PC Modding API
Post by: Craig on November 02, 2016, 07:46:31 PM
Do you know is GLSL is supported as that is what i know the most. If not do you know if they are similar?
GLSL is not supported afaik, but they are quite similar, similar enough that GLSL programmers shouldn't have to many difficulties programming with HLSL.
Title: Re: TM PC Modding API
Post by: XBLToothPik on November 02, 2016, 08:19:17 PM
Not when it initially comes out on early access,

I guess this confirms you ARE bringing it to early access (had only been talked about)?  If so, what kind of a timeframe do you think this would be?
Title: Re: TM PC Modding API
Post by: Craig on November 02, 2016, 11:36:20 PM
Not when it initially comes out on early access,

I guess this confirms you ARE bringing it to early access (had only been talked about)?  If so, what kind of a timeframe do you think this would be?
Still not 100% confirmed, but it is gaining momentum as the most likely path. You want me to give a timeframe? haha I'd have more luck predicting the end of the world.
Title: Re: TM PC Modding API
Post by: crazytater94 on November 03, 2016, 03:28:09 AM
So are these mods going to be an in world feature, like scripts? Or more like an external thing, like where you type up a word document and modify the code a bit?
Title: Re: TM PC Modding API
Post by: Craig on November 03, 2016, 04:29:52 AM
So are these mods going to be an in world feature, like scripts? Or more like an external thing, like where you type up a word document and modify the code a bit?
External.

A simple mod will just be a matter of supplying an XML file, which you can edit in any XML editor program.
More sophisticated mods will require programming, and for that you'd typically use Visual Studio.
Title: Re: TM PC Modding API
Post by: Jaz on November 03, 2016, 07:42:50 AM
Is it possible for mods to work online... Not speaking of textural mods. I mean is it a possibility that someone could join your game, and give themselves admin perm, air break, add/remove blocks or ping you in the air via mods?
Title: Re: TM PC Modding API
Post by: AlienizdPixel on November 03, 2016, 07:55:44 AM
Is it possible for mods to work online... Not speaking of textural mods. I mean is it a possibility that someone could join your game, and give themselves admin perm, air break, add/remove blocks or ping you in the air via mods?
I would presume, if anything, that only the host will control the mods, so (very unlikely) no-one will be giving themselves admin or anything similar.
Title: Re: TM PC Modding API
Post by: December Jim on November 03, 2016, 08:21:15 AM
Is it possible for mods to work online... Not speaking of textural mods. I mean is it a possibility that someone could join your game, and give themselves admin perm, air break, add/remove blocks or ping you in the air via mods?
I would presume, if anything, that only the host will control the mods, so (very unlikely) no-one will be giving themselves admin or anything similar.

That would suck if that were to happen. I would assume that the only mods that would work online would be texture mods
Title: Re: TM PC Modding API
Post by: AlienizdPixel on November 03, 2016, 08:45:08 AM
That would suck if that were to happen. I would assume that the only mods that would work online would be texture mods
Now that I think about it, I believe those may want to have some level of comtrol available as well even with them being a client-only change.
Title: Re: TM PC Modding API
Post by: Curmescius on November 03, 2016, 09:18:13 AM
That would suck if that were to happen. I would assume that the only mods that would work online would be texture mods
Now that I think about it, I believe those may want to have some level of comtrol available as well even with them being a client-only change.


I wouldn't complain if we were given the option to enforce texture packs. I mean, Have you ever seen how terrible Rupture builds look in OrigHD and vice versa?

What about Cyberpunk builds in literally any other TP?
Title: Re: TM PC Modding API
Post by: AlienizdPixel on November 03, 2016, 09:46:58 AM
Now that I think about it, I believe those may want to have some level of comtrol available as well even with them being a client-only change.


I wouldn't complain if we were given the option to enforce texture packs. I mean, Have you ever seen how terrible Rupture builds look in OrigHD and vice versa?

What about Cyberpunk builds in literally any other TP?
Along with that, I think preventing cheating mods (i.e., mods where anything not worth anything is white, the lighting does not include darkness, etc) would be good.
Title: Re: TM PC Modding API
Post by: Curmescius on November 03, 2016, 10:54:20 AM
Now that I think about it, I believe those may want to have some level of comtrol available as well even with them being a client-only change.


I wouldn't complain if we were given the option to enforce texture packs. I mean, Have you ever seen how terrible Rupture builds look in OrigHD and vice versa?

What about Cyberpunk builds in literally any other TP?
Along with that, I think preventing cheating mods (i.e., mods where anything not worth anything is white, the lighting does not include darkness, etc) would be good.

I mean, You can cheat darkness completely in the vanilla game. Just switch to Cyberpunk. The light map is all the same brightness for the sake of building.


All the more reason to allow locking TPs.
Title: Re: TM PC Modding API
Post by: TheDestinedCrab on November 03, 2016, 11:52:48 AM
Microsoft JScript...

I'm assuming that the red is Paul Blart: Mall Copscript, can someone please confirm that.
Not entirely, but for the sake of being an answer, yes.

Not entirely? Can you please explain what you mean?
Title: Re: TM PC Modding API
Post by: December Jim on November 03, 2016, 11:55:49 AM
That would suck if that were to happen. I would assume that the only mods that would work online would be texture mods
Now that I think about it, I believe those may want to have some level of comtrol available as well even with them being a client-only change.


I wouldn't complain if we were given the option to enforce texture packs. I mean, Have you ever seen how terrible Rupture builds look in OrigHD and vice versa?

What about Cyberpunk builds in literally any other TP?

I agree with this
Title: Re: TM PC Modding API
Post by: Gary on November 03, 2016, 12:28:57 PM
Is it possible for mods to work online... Not speaking of textural mods. I mean is it a possibility that someone could join your game, and give themselves admin perm, air break, add/remove blocks or ping you in the air via mods?

I'd assume that there would need to be a feature like minecraft's, where you are opted to download the mod upon entering a world.
Title: Re: TM PC Modding API
Post by: AlienizdPixel on November 03, 2016, 01:26:05 PM
Microsoft JScript...

I'm assuming that the red is Paul Blart: Mall Copscript, can someone please confirm that.
Not entirely, but for the sake of being an answer, yes.

Not entirely? Can you please explain what you mean?
Well, with a quick Google search, the difference is:
Jav*ascript is the original language, developed by Netscape
Jscript is Microsoft's implementation (hence why it's supported over the original)
There is also a ECMA Jav*ascript, which is a language standard implementation for the original.
Here is the information and more subtle difference notes (http://stackoverflow.com/questions/135203/whats-the-difference-between-Paul Blart: Mall Copscript-and-jscript)
If you want to find more information via Google, simply search "Jav*aScript vs Jscript".
Title: Re: TM PC Modding API
Post by: TheDestinedCrab on November 03, 2016, 01:27:52 PM
Thankyou, I didn't realise that.
Title: Re: TM PC Modding API
Post by: TM Charles on December 07, 2016, 11:13:10 AM
Ok so when supplying multiple textures for one mod correct me if i'm wrong this is how we do it.

Supply the texture atlas of all the textures.
(https://i.gyazo.com/583541e3376904d849c70567d4f5793c.png)

Then in the XML data simply list them in order from left to right.

Code: [Select]
<?xml version="1.0"?>
<ArrayOfItemXML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <ItemXML>
    <ItemID>Square</ItemID>
  </ItemXML>
  <ItemXML>
    <ItemID>Circle</ItemID>
  </ItemXML>
  <ItemXML>
    <ItemID>SquareOnItsSide</ItemID>
  </ItemXML>
  <ItemXML>
    <ItemID>HalfSquare</ItemID>
  </ItemXML>
</ArrayOfItemXML>

Next say we had multiple rows of textures when were listing them in the XML data we go from top left to right then at the end of the row back to the left and so on?


Looking like this.
(https://i.gyazo.com/59fcaa2f656bbb9f228d60e82dfa71a9.png)

Then when we write it into the XML data we do it in the same order as in the picture above.

Code: [Select]
<?xml version="1.0"?>
<ArrayOfItemXML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <ItemXML>
    <ItemID>Square</ItemID>
  </ItemXML>
  <ItemXML>
    <ItemID>Circle</ItemID>
  </ItemXML>
  <ItemXML>
    <ItemID>SquareOnItsSide</ItemID>
  </ItemXML>
  <ItemXML>
    <ItemID>HalfSquare</ItemID>
  </ItemXML>
  <ItemXML>
    <ItemID>CharlesTri</ItemID>
  </ItemXML>
  <ItemXML>
    <ItemID>CharlesDiamond</ItemID>
  </ItemXML>
  <ItemXML>
    <ItemID>CharlesCircle2</ItemID>
  </ItemXML>
  <ItemXML>
    <ItemID>CharlesSquare2</ItemID>
  </ItemXML>
</ArrayOfItemXML>




Last something i've done is put Charles in front of any item id, the reason for this is if someone is running 2 mods that just so happen to have an item named Circle I could see bad things happening. So to remove that issue I put my name before anything in my mods. Now some may say what if someones name is Charles and they do this. Well Ill just use TMCharles, Ieyfo or something.
Title: Re: TM PC Modding API
Post by: Curmescius on December 07, 2016, 11:43:45 AM
Serious question. Why would you put "HalfSquare" Instead of "RightIsoscelesTriangle" Or just "Triangle"? Kinda off topic, But it seemed odd to me.

Also, "SquareOnItsSide" Is better defined as "Rhombus".
Title: Re: TM PC Modding API
Post by: TM Charles on December 07, 2016, 11:54:54 AM
Serious question. Why would you put "HalfSquare" Instead of "RightIsoscelesTriangle" Or just "Triangle"? Kinda off topic, But it seemed odd to me.

Also, "SquareOnItsSide" Is better defined as "Rhombus".

Cause I was feeling creative. and funny. Also to make people like you ask questions. :p
Title: Re: TM PC Modding API
Post by: TheDestinedCrab on December 07, 2016, 04:23:02 PM
Hi,

I hate to bother you (whoever does this), but would you mind checking over these four xml files for me to let me know if what I'm doing is correct. Thanks in advance!

ItemData.xml :
Code: [Select]
<?xml version="1.0"?>
<ArrayOfModItemDataXML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <ModItemDataXML>
    <ItemID>NegativeLightBlock</ItemID>
    <Name>Negative Light Block</Name>
    <Desc>This will erase light around the block.</Desc>
    <IsValid>true</IsValid>
    <IsEnabled>true</IsEnabled>
    <LockedDD>true</LockedDD>
    <LockedCR>false</LockedCR>
    <LockedSU>false</LockedSU>
    <MinCSPrice>500</MinCSPrice>
    <StackSize>100</StackSize>
    <Durability>1200</Durability>
    <StrikeDamage>1</StrikeDamage>
    <StrikeReach>2</StrikeReach>
    <HealPower>0</HealPower>
    <BurnTime>0</BurnTime>
    <SmeltTime>0</SmeltTime>
    <ParticleLight>-50</ParticleLight>
<CanDropIfLocked>true</CanDropIfLocked>
    <Plural>S</Plural>
  </ModItemDataXML>
</ArrayOfModItemDataXML>
ItemTypeData.xml :
Code: [Select]
<?xml version="1.0"?>
<ArrayOfModItemTypeDataXML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <ModItemTypeDataXML>
    <ItemID>NegativeLightBlock</ItemID>
    <Use>Block</Use>
    <Type>Block</Type>
    <SubType>None</SubType>
    <Class>Steel</Class>
    <Inv>Building</Inv>
    <Combat>None</Combat>
    <Model>Weapon</Model>
    <Swing>Weapon</Swing>
    <Equip>RightHand</Equip>
  </ModItemTypeDataXML>
</ArrayOfModItemTypeDataXML>

ItemCombatData.xml :
Code: [Select]
<?xml version="1.0"?>
<ArrayOfModItemCombatDataXML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <ModItemCombatDataXML>
    <CombatID>NegativeLightBlock</CombatID>
    <Health>0</Health>
    <Attack>1</Attack>
    <Strength>0</Strength>
    <Defence>0</Defence>
    <Ranged>0</Ranged>
    <Looting>0</Looting>
  </ModItemCombatDataXML>
</ArrayOfModItemCombatDataXML>

ItemModelData.xml :
Code: [Select]
<?xml version="1.0"?>
<ArrayOfModItemModelDataXML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <ModItemModelDataXML>
    <ItemModelType>Block</ItemModelType>
    <Scale>2.2</Scale>
    <HandOffset>
      <X>0</X>
      <Y>0.03331069</Y>
      <Z>-0.04895301</Z>
    </HandOffset>
    <HandYPR>
      <X>0</X>
      <Y>-1.35</Y>
      <Z>0</Z>
    </HandYPR>
    <HUDScale>1</HUDScale>
    <HUDOffset>
      <X>0</X>
      <Y>-0.06391386</Y>
      <Z>-0.0002981975</Z>
    </HUDOffset>
  </ModItemModelDataXML>
</ArrayOfModItemModelDataXML>

SkillData.xml :
Code: [Select]
<?xml version="1.0"?>
<ArrayOfModSkillDataXML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <ModSkillDataXML>
    <ItemID>SteelSword</ItemID>
    <MineReq>0</MineReq>
    <UseReq>10</UseReq>
    <UseSkill>Building</UseSkill>
    <CraftReq>10</CraftReq>
    <CraftSkill>Building</CraftSkill>
  </ModSkillDataXML>
</ArrayOfModSkillDataXML>

I know I haven't added a texture in yet but the aim of this is for it to be a negative light block. This means that it will get rid of all light around it. I made an ideas topic  found here (http://totalminerforums.net/index.php?topic=17985.0) ages ago but I'm planning on making a mod for it now :P

Cheers,
Crab.
Title: Re: TM PC Modding API
Post by: Craig on December 07, 2016, 04:51:17 PM
Ok so when supplying multiple textures for one mod... correct me if i'm wrong this is how we do it.

Supply the texture atlas of all the textures.
(https://i.gyazo.com/583541e3376904d849c70567d4f5793c.png)

Then in the XML data simply list them in order from left to right.

Code: [Select]
<?xml version="1.0"?>
<ArrayOfItemXML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <ItemXML>
    <ItemID>Square</ItemID>
  </ItemXML>
  <ItemXML>
    <ItemID>Circle</ItemID>
  </ItemXML>
  <ItemXML>
    <ItemID>SquareOnItsSide</ItemID>
  </ItemXML>
  <ItemXML>
    <ItemID>HalfSquare</ItemID>
  </ItemXML>
</ArrayOfItemXML>

Next say we had multiple rows of textures when were listing them in the XML data we go from top left to right then at the end of the row back to the left and so on?


Looking like this.
(https://i.gyazo.com/59fcaa2f656bbb9f228d60e82dfa71a9.png)

Then when we write it into the XML data we do it in the same order as in the picture above.

Code: [Select]
<?xml version="1.0"?>
<ArrayOfItemXML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <ItemXML>
    <ItemID>Square</ItemID>
  </ItemXML>
  <ItemXML>
    <ItemID>Circle</ItemID>
  </ItemXML>
  <ItemXML>
    <ItemID>SquareOnItsSide</ItemID>
  </ItemXML>
  <ItemXML>
    <ItemID>HalfSquare</ItemID>
  </ItemXML>
  <ItemXML>
    <ItemID>CharlesTri</ItemID>
  </ItemXML>
  <ItemXML>
    <ItemID>CharlesDiamond</ItemID>
  </ItemXML>
  <ItemXML>
    <ItemID>CharlesCircle2</ItemID>
  </ItemXML>
  <ItemXML>
    <ItemID>CharlesSquare2</ItemID>
  </ItemXML>
</ArrayOfItemXML>
Correct. The textures can be in a single row, a single column or a grid of rows and columns. Just list the items in the xml file from left to right, top to bottom.
Title: Re: TM PC Modding API
Post by: Craig on December 07, 2016, 05:01:57 PM
Hi,

I hate to bother you (whoever does this), but would you mind checking over these four xml files for me to let me know if what I'm doing is correct. Thanks in advance!

ItemData.xml :
Code: [Select]
<?xml version="1.0"?>
<ArrayOfModItemDataXML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <ModItemDataXML>
    <ItemID>NegativeLightBlock</ItemID>
    <Name>Negative Light Block</Name>
    <Desc>This will erase light around the block.</Desc>
    <IsValid>true</IsValid>
    <IsEnabled>true</IsEnabled>
    <LockedDD>true</LockedDD>
    <LockedCR>false</LockedCR>
    <LockedSU>false</LockedSU>
    <MinCSPrice>500</MinCSPrice>
    <StackSize>100</StackSize>
    <Durability>1200</Durability>
    <StrikeDamage>1</StrikeDamage>
    <StrikeReach>2</StrikeReach>
    <HealPower>0</HealPower>
    <BurnTime>0</BurnTime>
    <SmeltTime>0</SmeltTime>
    <ParticleLight>-50</ParticleLight>
<CanDropIfLocked>true</CanDropIfLocked>
    <Plural>S</Plural>
  </ModItemDataXML>
</ArrayOfModItemDataXML>
ItemTypeData.xml :
Code: [Select]
<?xml version="1.0"?>
<ArrayOfModItemTypeDataXML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <ModItemTypeDataXML>
    <ItemID>NegativeLightBlock</ItemID>
    <Use>Block</Use>
    <Type>Block</Type>
    <SubType>None</SubType>
    <Class>Steel</Class>
    <Inv>Building</Inv>
    <Combat>None</Combat>
    <Model>Weapon</Model>
    <Swing>Weapon</Swing>
    <Equip>RightHand</Equip>
  </ModItemTypeDataXML>
</ArrayOfModItemTypeDataXML>

ItemCombatData.xml :
Code: [Select]
<?xml version="1.0"?>
<ArrayOfModItemCombatDataXML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <ModItemCombatDataXML>
    <CombatID>NegativeLightBlock</CombatID>
    <Health>0</Health>
    <Attack>1</Attack>
    <Strength>0</Strength>
    <Defence>0</Defence>
    <Ranged>0</Ranged>
    <Looting>0</Looting>
  </ModItemCombatDataXML>
</ArrayOfModItemCombatDataXML>

ItemModelData.xml :
Code: [Select]
<?xml version="1.0"?>
<ArrayOfModItemModelDataXML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <ModItemModelDataXML>
    <ItemModelType>Block</ItemModelType>
    <Scale>2.2</Scale>
    <HandOffset>
      <X>0</X>
      <Y>0.03331069</Y>
      <Z>-0.04895301</Z>
    </HandOffset>
    <HandYPR>
      <X>0</X>
      <Y>-1.35</Y>
      <Z>0</Z>
    </HandYPR>
    <HUDScale>1</HUDScale>
    <HUDOffset>
      <X>0</X>
      <Y>-0.06391386</Y>
      <Z>-0.0002981975</Z>
    </HUDOffset>
  </ModItemModelDataXML>
</ArrayOfModItemModelDataXML>

SkillData.xml :
Code: [Select]
<?xml version="1.0"?>
<ArrayOfModSkillDataXML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <ModSkillDataXML>
    <ItemID>SteelSword</ItemID>
    <MineReq>0</MineReq>
    <UseReq>10</UseReq>
    <UseSkill>Building</UseSkill>
    <CraftReq>10</CraftReq>
    <CraftSkill>Building</CraftSkill>
  </ModSkillDataXML>
</ArrayOfModSkillDataXML>

I know I haven't added a texture in yet but the aim of this is for it to be a negative light block. This means that it will get rid of all light around it. I made an ideas topic  found here (http://totalminerforums.net/index.php?topic=17985.0) ages ago but I'm planning on making a mod for it now :P

Cheers,
Crab.

You won't be able to create a negative light block from xml, the games lighting engine doesn't support it.

Notes:
1. You don't need to supply the ItemCombatData.xml and ItemModelData.xml files unless you're actually modding that data, which you typically wouldn't do when modding a block.
2. Blocks generally don't have Durability, StrikeDamage or StrikeReach.
3. In ItemTypeData.xml, Class is typically None for blocks. Model and Swing are typically Block, and Equip is typically LeftHand for blocks.
4. ItemID in SkillData.xml should be NegativeLightBlock.
Title: Re: TM PC Modding API
Post by: TM Charles on December 07, 2016, 07:45:53 PM
Another question, if I supply both 16,32 pixel textures when someone goes from a 32 pixel TP or 64 to a 16 will it swap to the 16x16 texture and the same for going from 16 to 32 or 64?
 
Title: Re: TM PC Modding API
Post by: Craig on December 07, 2016, 08:07:49 PM
Another question, if I supply both 16,32 pixel textures when someone goes from a 32 pixel TP or 64 to a 16 will it swap to the 16x16 texture and the same for going from 16 to 32 or 64?
Yes, otherwise it would be kind of pointless right?
Title: Re: TM PC Modding API
Post by: .ok on December 08, 2016, 12:51:04 AM
If I wanted to make a mod for decals,would it be under texture pack?or would it fall Under the rules for adding blocks?
Title: Re: TM PC Modding API
Post by: TheDestinedCrab on December 08, 2016, 02:21:07 AM
Hi,

I hate to bother you (whoever does this), but would you mind checking over these four xml files for me to let me know if what I'm doing is correct. Thanks in advance!

ItemData.xml :
Code: [Select]
<?xml version="1.0"?>
<ArrayOfModItemDataXML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <ModItemDataXML>
    <ItemID>NegativeLightBlock</ItemID>
    <Name>Negative Light Block</Name>
    <Desc>This will erase light around the block.</Desc>
    <IsValid>true</IsValid>
    <IsEnabled>true</IsEnabled>
    <LockedDD>true</LockedDD>
    <LockedCR>false</LockedCR>
    <LockedSU>false</LockedSU>
    <MinCSPrice>500</MinCSPrice>
    <StackSize>100</StackSize>
    <Durability>1200</Durability>
    <StrikeDamage>1</StrikeDamage>
    <StrikeReach>2</StrikeReach>
    <HealPower>0</HealPower>
    <BurnTime>0</BurnTime>
    <SmeltTime>0</SmeltTime>
    <ParticleLight>-50</ParticleLight>
<CanDropIfLocked>true</CanDropIfLocked>
    <Plural>S</Plural>
  </ModItemDataXML>
</ArrayOfModItemDataXML>
ItemTypeData.xml :
Code: [Select]
<?xml version="1.0"?>
<ArrayOfModItemTypeDataXML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <ModItemTypeDataXML>
    <ItemID>NegativeLightBlock</ItemID>
    <Use>Block</Use>
    <Type>Block</Type>
    <SubType>None</SubType>
    <Class>Steel</Class>
    <Inv>Building</Inv>
    <Combat>None</Combat>
    <Model>Weapon</Model>
    <Swing>Weapon</Swing>
    <Equip>RightHand</Equip>
  </ModItemTypeDataXML>
</ArrayOfModItemTypeDataXML>

ItemCombatData.xml :
Code: [Select]
<?xml version="1.0"?>
<ArrayOfModItemCombatDataXML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <ModItemCombatDataXML>
    <CombatID>NegativeLightBlock</CombatID>
    <Health>0</Health>
    <Attack>1</Attack>
    <Strength>0</Strength>
    <Defence>0</Defence>
    <Ranged>0</Ranged>
    <Looting>0</Looting>
  </ModItemCombatDataXML>
</ArrayOfModItemCombatDataXML>

ItemModelData.xml :
Code: [Select]
<?xml version="1.0"?>
<ArrayOfModItemModelDataXML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <ModItemModelDataXML>
    <ItemModelType>Block</ItemModelType>
    <Scale>2.2</Scale>
    <HandOffset>
      <X>0</X>
      <Y>0.03331069</Y>
      <Z>-0.04895301</Z>
    </HandOffset>
    <HandYPR>
      <X>0</X>
      <Y>-1.35</Y>
      <Z>0</Z>
    </HandYPR>
    <HUDScale>1</HUDScale>
    <HUDOffset>
      <X>0</X>
      <Y>-0.06391386</Y>
      <Z>-0.0002981975</Z>
    </HUDOffset>
  </ModItemModelDataXML>
</ArrayOfModItemModelDataXML>

SkillData.xml :
Code: [Select]
<?xml version="1.0"?>
<ArrayOfModSkillDataXML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <ModSkillDataXML>
    <ItemID>SteelSword</ItemID>
    <MineReq>0</MineReq>
    <UseReq>10</UseReq>
    <UseSkill>Building</UseSkill>
    <CraftReq>10</CraftReq>
    <CraftSkill>Building</CraftSkill>
  </ModSkillDataXML>
</ArrayOfModSkillDataXML>

I know I haven't added a texture in yet but the aim of this is for it to be a negative light block. This means that it will get rid of all light around it. I made an ideas topic  found here (http://totalminerforums.net/index.php?topic=17985.0) ages ago but I'm planning on making a mod for it now :P

Cheers,
Crab.

You won't be able to create a negative light block from xml, the games lighting engine doesn't support it.

Notes:
1. You don't need to supply the ItemCombatData.xml and ItemModelData.xml files unless you're actually modding that data, which you typically wouldn't do when modding a block.
2. Blocks generally don't have Durability, StrikeDamage or StrikeReach.
3. In ItemTypeData.xml, Class is typically None for blocks. Model and Swing are typically Block, and Equip is typically LeftHand for blocks.
4. ItemID in SkillData.xml should be NegativeLightBlock.

Does that mean that it is possible to mod it, just not using xml files? If so, could you expand on that please?

Cheers,
Crab.
Title: Re: TM PC Modding API
Post by: The Gold Knight on December 08, 2016, 03:27:28 AM
Hi,

I hate to bother you (whoever does this), but would you mind checking over these four xml files for me to let me know if what I'm doing is correct. Thanks in advance!

ItemData.xml :
Code: [Select]
<?xml version="1.0"?>
<ArrayOfModItemDataXML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <ModItemDataXML>
    <ItemID>NegativeLightBlock</ItemID>
    <Name>Negative Light Block</Name>
    <Desc>This will erase light around the block.</Desc>
    <IsValid>true</IsValid>
    <IsEnabled>true</IsEnabled>
    <LockedDD>true</LockedDD>
    <LockedCR>false</LockedCR>
    <LockedSU>false</LockedSU>
    <MinCSPrice>500</MinCSPrice>
    <StackSize>100</StackSize>
    <Durability>1200</Durability>
    <StrikeDamage>1</StrikeDamage>
    <StrikeReach>2</StrikeReach>
    <HealPower>0</HealPower>
    <BurnTime>0</BurnTime>
    <SmeltTime>0</SmeltTime>
    <ParticleLight>-50</ParticleLight>
<CanDropIfLocked>true</CanDropIfLocked>
    <Plural>S</Plural>
  </ModItemDataXML>
</ArrayOfModItemDataXML>
ItemTypeData.xml :
Code: [Select]
<?xml version="1.0"?>
<ArrayOfModItemTypeDataXML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <ModItemTypeDataXML>
    <ItemID>NegativeLightBlock</ItemID>
    <Use>Block</Use>
    <Type>Block</Type>
    <SubType>None</SubType>
    <Class>Steel</Class>
    <Inv>Building</Inv>
    <Combat>None</Combat>
    <Model>Weapon</Model>
    <Swing>Weapon</Swing>
    <Equip>RightHand</Equip>
  </ModItemTypeDataXML>
</ArrayOfModItemTypeDataXML>

ItemCombatData.xml :
Code: [Select]
<?xml version="1.0"?>
<ArrayOfModItemCombatDataXML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <ModItemCombatDataXML>
    <CombatID>NegativeLightBlock</CombatID>
    <Health>0</Health>
    <Attack>1</Attack>
    <Strength>0</Strength>
    <Defence>0</Defence>
    <Ranged>0</Ranged>
    <Looting>0</Looting>
  </ModItemCombatDataXML>
</ArrayOfModItemCombatDataXML>

ItemModelData.xml :
Code: [Select]
<?xml version="1.0"?>
<ArrayOfModItemModelDataXML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <ModItemModelDataXML>
    <ItemModelType>Block</ItemModelType>
    <Scale>2.2</Scale>
    <HandOffset>
      <X>0</X>
      <Y>0.03331069</Y>
      <Z>-0.04895301</Z>
    </HandOffset>
    <HandYPR>
      <X>0</X>
      <Y>-1.35</Y>
      <Z>0</Z>
    </HandYPR>
    <HUDScale>1</HUDScale>
    <HUDOffset>
      <X>0</X>
      <Y>-0.06391386</Y>
      <Z>-0.0002981975</Z>
    </HUDOffset>
  </ModItemModelDataXML>
</ArrayOfModItemModelDataXML>

SkillData.xml :
Code: [Select]
<?xml version="1.0"?>
<ArrayOfModSkillDataXML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <ModSkillDataXML>
    <ItemID>SteelSword</ItemID>
    <MineReq>0</MineReq>
    <UseReq>10</UseReq>
    <UseSkill>Building</UseSkill>
    <CraftReq>10</CraftReq>
    <CraftSkill>Building</CraftSkill>
  </ModSkillDataXML>
</ArrayOfModSkillDataXML>

I know I haven't added a texture in yet but the aim of this is for it to be a negative light block. This means that it will get rid of all light around it. I made an ideas topic  found here (http://totalminerforums.net/index.php?topic=17985.0) ages ago but I'm planning on making a mod for it now :P

Cheers,
Crab.

You won't be able to create a negative light block from xml, the games lighting engine doesn't support it.

Notes:
1. You don't need to supply the ItemCombatData.xml and ItemModelData.xml files unless you're actually modding that data, which you typically wouldn't do when modding a block.
2. Blocks generally don't have Durability, StrikeDamage or StrikeReach.
3. In ItemTypeData.xml, Class is typically None for blocks. Model and Swing are typically Block, and Equip is typically LeftHand for blocks.
4. ItemID in SkillData.xml should be NegativeLightBlock.

Does that mean that it is possible to mod it, just not using xml files? If so, could you expand on that please?

Cheers,
Crab.
You know that part that you bolded? Yeah, what does it say right after that?
Title: Re: TM PC Modding API
Post by: Sargnarg the Hardge Harg on December 08, 2016, 04:13:25 AM
To use textures, would I have to make a whole texture pack? Or can I replace individual textures?
Title: Re: TM PC Modding API
Post by: Craig on December 08, 2016, 04:42:31 AM
To use textures, would I have to make a whole texture pack? Or can I replace individual textures?
You can replace individual textures. Note, there is no support yet for replacing textures only on nominated texture packs, so it would replace the texture on all texture packs.
Title: Re: TM PC Modding API
Post by: Craig on December 08, 2016, 04:43:18 AM
Does that mean that it is possible to mod it, just not using xml files? If so, could you expand on that please?
It would require programming, which is not yet supported so I can't expand any further.
Title: Re: TM PC Modding API
Post by: TM Charles on December 08, 2016, 09:36:33 AM
I like to keep my texture atlases organized when I do that say I have an open space how do I write that into the XML data so that it can skip over it and move on?
Title: Re: TM PC Modding API
Post by: AlienizdPixel on December 08, 2016, 10:13:47 AM
I like to keep my texture atlases organized when I do that say I have an open space how do I write that into the XML data so that it can skip over it and move on?
You could create a blank item whereever the blank texture would be and set the ItemData.xml to have it  completely disabled (<IsValid>false</IsValid>).
Title: Re: TM PC Modding API
Post by: TM Charles on December 08, 2016, 07:49:27 PM
I like to keep my texture atlases organized when I do that say I have an open space how do I write that into the XML data so that it can skip over it and move on?
You could create a blank item whereever the blank texture would be and set the ItemData.xml to have it  completely disabled (<IsValid>false</IsValid>).


I don't klnow if that's the answer but it would work, also I was humoring Craig.

"I pm'ed you cause i don't think this is in need of a post."

I think it should be a post, others might be interested in the answer.
Title: Re: TM PC Modding API
Post by: Craig on December 08, 2016, 09:04:37 PM
I like to keep my texture atlases organized when I do that say I have an open space how do I write that into the XML data so that it can skip over it and move on?
I'll change it so that you can use <ItemID>None<ItemID> as a filler.
Title: Re: TM PC Modding API
Post by: MrMarooca on December 08, 2016, 11:07:09 PM
Exciting stuff, can't wait for release.
Title: Re: TM PC Modding API
Post by: .ok on December 09, 2016, 01:42:00 AM
If I wanted to make a mod for decals,would it be under texture pack?or would it fall Under the rules for adding blocks?
Title: Re: TM PC Modding API
Post by: Craig on December 09, 2016, 02:54:50 AM
If I wanted to make a mod for decals,would it be under texture pack?or would it fall Under the rules for adding blocks?
There is no support for modding decals yet. Decal's aren't blocks or items so they'll probably need their own files.
Title: Re: TM PC Modding API
Post by: .ok on December 10, 2016, 10:47:27 AM
If I wanted to make a mod for decals,would it be under texture pack?or would it fall Under the rules for adding blocks?
There is no support for modding decals yet. Decal's aren't blocks or items so they'll probably need their own files.
That's weird lol

Ok another question I have is,for adding/modding mobs to where we have to supply the component,how would we do that(Xbox and/or PC)
Would horizon help with that?
Title: Re: TM PC Modding API
Post by: The Gold Knight on December 10, 2016, 09:21:43 PM
what's the size limit for a custom npc?
Title: Re: TM PC Modding API
Post by: Craig on December 10, 2016, 10:20:18 PM
what's the size limit for a custom npc?
Don't know, but while the game is 32bit, I'll probably limit each model to 1MB. Visible faces take up most of the memory used by a model so they will be the constraint. I'm also considering allowing up to 5 frames of animation, so it's possible the 1MB limit will apply to all frames combined. You don't need to use all 5 frames of course.
Title: Re: TM PC Modding API
Post by: The Gold Knight on December 10, 2016, 10:24:50 PM
what's the size limit for a custom npc?
Don't know, but while the game is 32bit, I'll probably limit each model to 1MB. Visible faces take up most of the memory used by a model so they will be the constraint. I'm also considering allowing up to 5 frames of animation, so it's possible the 1MB limit will be for all frames.
would the animation be constant like in a loop, or set to something like walking? Or more something like 5 different poses to act as an animation when doing certain actions?
Title: Re: TM PC Modding API
Post by: Craig on December 10, 2016, 10:27:00 PM
what's the size limit for a custom npc?
Don't know, but while the game is 32bit, I'll probably limit each model to 1MB. Visible faces take up most of the memory used by a model so they will be the constraint. I'm also considering allowing up to 5 frames of animation, so it's possible the 1MB limit will be for all frames.
would the animation be constant like in a loop, or set to something like walking? Or more something like 5 different poses to act as an animation when doing certain actions?
Walking. One standing frame and 2 on each side of that for walking.
Title: Re: TM PC Modding API
Post by: AlienizdPixel on December 10, 2016, 10:53:21 PM
Walking. One standing frame and 2 on each side of that for walking.
Nothing unique for jumping?
Title: Re: TM PC Modding API
Post by: Craig on December 10, 2016, 11:36:23 PM
Walking. One standing frame and 2 on each side of that for walking.
Nothing unique for jumping?
Not at the moment.
Title: Re: TM PC Modding API
Post by: The Gold Knight on December 11, 2016, 01:29:19 AM
ok new question, can we animate any modded in textures?
Title: Re: TM PC Modding API
Post by: Craig on December 11, 2016, 02:33:58 AM
ok new question, can we animate any modded in textures?
There are two modding options.

1. A mod that does everything via the games modding API.
2. A mod that does not.

Option 1 does not have support for animated textures (at this time).
Option 2 allows you to do practically anything, if you know how.
Title: Re: TM PC Modding API
Post by: The Gold Knight on December 11, 2016, 02:36:46 AM
ok new question, can we animate any modded in textures?
There are two modding options.

1. A mod that does everything via the games modding API.
2. A mod that does not.

Option 1 does not have support for animated textures (at this time).
Option 2 allows you to do practically anything, if you know how.
so what you're saying is that i'm screwed
Title: Re: TM PC Modding API
Post by: Craig on December 11, 2016, 02:41:19 AM
ok new question, can we animate any modded in textures?
There are two modding options.

1. A mod that does everything via the games modding API.
2. A mod that does not.

Option 1 does not have support for animated textures (at this time).
Option 2 allows you to do practically anything, if you know how.
so what you're saying is that i'm screwed
Well, unless you are a C# expert and an MSIL expert, and know how to reverse engineer the games executable, know how to inject some MSIL into the games executable to create hooks into your code, then yeah, you're pretty much screwed.
Title: Re: TM PC Modding API
Post by: Craig on December 11, 2016, 06:45:29 AM
what's the size limit for a custom npc?
Don't know, but while the game is 32bit, I'll probably limit each model to 1MB. Visible faces take up most of the memory used by a model so they will be the constraint. I'm also considering allowing up to 5 frames of animation, so it's possible the 1MB limit will apply to all frames combined. You don't need to use all 5 frames of course.

Wraith uses around 900kb, so that's reaching the limit.

To give you another very rough approximation, the 3 frames used in this demo use a total of about 100kb.

https://youtu.be/60AsCXwtI2o
Title: Re: TM PC Modding API
Post by: PWRBTTN on December 11, 2016, 07:32:38 AM
By the end of your implementation of the animation portion... will they be "walking" when standing still?

Also, can you turn animation off in graphics options to reduce lag?
Title: Re: TM PC Modding API
Post by: XBLToothPik on December 11, 2016, 08:07:42 AM
ok new question, can we animate any modded in textures?
There are two modding options.

1. A mod that does everything via the games modding API.
2. A mod that does not.

Option 1 does not have support for animated textures (at this time).
Option 2 allows you to do practically anything, if you know how.
so what you're saying is that i'm screwed
Well, unless you are a C# expert and an MSIL expert, and know how to reverse engineer the games executable, know how to inject some MSIL into the games executable to create hooks into your code, then yeah, you're pretty much screwed.

If only..
Title: Re: TM PC Modding API
Post by: Curmescius on December 11, 2016, 03:59:20 PM
ok new question, can we animate any modded in textures?
There are two modding options.

1. A mod that does everything via the games modding API.
2. A mod that does not.

Option 1 does not have support for animated textures (at this time).
Option 2 allows you to do practically anything, if you know how.
so what you're saying is that i'm screwed
Well, unless you are a C# expert and an MSIL expert, and know how to reverse engineer the games executable, know how to inject some MSIL into the games executable to create hooks into your code, then yeah, you're pretty much screwed.

Would the latter be multiplayer supported? It sounds like that would be very difficult for multiplayer.

I think that for the mods to do well for this game, They have to be easy to use for both singleplayer & multiplayer, Regardless of what kind of mod it is.
Title: Re: TM PC Modding API
Post by: Craig on December 11, 2016, 04:22:02 PM
ok new question, can we animate any modded in textures?
There are two modding options.

1. A mod that does everything via the games modding API.
2. A mod that does not.

Option 1 does not have support for animated textures (at this time).
Option 2 allows you to do practically anything, if you know how.
so what you're saying is that i'm screwed
Well, unless you are a C# expert and an MSIL expert, and know how to reverse engineer the games executable, know how to inject some MSIL into the games executable to create hooks into your code, then yeah, you're pretty much screwed.

If only..
Indeed..
Title: Re: TM PC Modding API
Post by: Craig on December 11, 2016, 04:23:13 PM
ok new question, can we animate any modded in textures?
There are two modding options.

1. A mod that does everything via the games modding API.
2. A mod that does not.

Option 1 does not have support for animated textures (at this time).
Option 2 allows you to do practically anything, if you know how.
so what you're saying is that i'm screwed
Well, unless you are a C# expert and an MSIL expert, and know how to reverse engineer the games executable, know how to inject some MSIL into the games executable to create hooks into your code, then yeah, you're pretty much screwed.

Would the latter be multiplayer supported? It sounds like that would be very difficult for multiplayer.

I think that for the mods to do well for this game, They have to be easy to use for both singleplayer & multiplayer, Regardless of what kind of mod it is.
The latter is completely outside my control, so the modders, and the people using those types of mods, will need to deal with those sorts of issues themselves.
Title: Re: TM PC Modding API
Post by: Craig on December 11, 2016, 04:25:46 PM
By the end of your implementation of the animation portion... will they be "walking" when standing still?
No.

Also, can you turn animation off in graphics options to reduce lag?
What sort of lag are you referring to?
Title: Re: TM PC Modding API
Post by: PWRBTTN on December 11, 2016, 04:30:49 PM
What sort of lag are you referring to?
Uh... graphical latency, I suppose. Are we able to turn animation off?
Title: Re: TM PC Modding API
Post by: Craig on December 11, 2016, 04:33:10 PM
What sort of lag are you referring to?
Uh... graphical latency, I suppose. Are we able to turn animation off?
There is no graphical latency, it simply renders the current frame.
Title: Re: TM PC Modding API
Post by: AlienizdPixel on December 11, 2016, 04:39:32 PM
What if players simply don't want the animations? I can't imagine it being too complex of an option to add.
Title: Re: TM PC Modding API
Post by: Craig on December 11, 2016, 04:50:04 PM
What if  players simply don't want the animations? I can't imagine it being too complex of an option to add.
I doubt people would want to. I can't think of a single game that gives that option.

For me the only thing that might warrant the option is if the bandwidth to transfer the models becomes problematic for some internet connections.
Title: Re: TM PC Modding API
Post by: .ok on December 11, 2016, 04:55:18 PM
What if  players simply don't want the animations? I can't imagine it being too complex of an option to add.
I doubt people would want to. I can't think of a single game that gives that option.

For me the only thing that might warrant the option is if the bandwidth to transfer the models becomes problematic for some internet connections.
Well how much more lag does say 50 or 100 animated mobs walking around cause,compared to no animation?maybe it could be a creative option or a option on the mob block so that way people can have a way to reduce fps drop
Title: Re: TM PC Modding API
Post by: AlienizdPixel on December 11, 2016, 05:02:12 PM
On the subject of the animations, is frame-by-frame going to be the official animation style? As compared to something such as martindoolittle's old skeleton animations (https://www.youtube.com/watch?v=Ck8xmg3cnsc)? Or is it simply going to be an option, or simply be the current animations until something better is implemented?
Title: Re: TM PC Modding API
Post by: Curmescius on December 11, 2016, 05:02:58 PM
What if  players simply don't want the animations? I can't imagine it being too complex of an option to add.
I doubt people would want to. I can't think of a single game that gives that option.

For me the only thing that might warrant the option is if the bandwidth to transfer the models becomes problematic for some internet connections.

I remember multiple people saying that they prefer the lack of animation.

Honestly, Craig. I can't see this being that hard to add compared to some of your other additions, Even if there is no real point to it for most people.
Title: Re: TM PC Modding API
Post by: Muffin on December 11, 2016, 05:23:19 PM
I doubt people would want to. I can't think of a single game that gives that option.
I'm fairly certain the 360 version of minecraft has this option
Title: Re: TM PC Modding API
Post by: Curmescius on December 11, 2016, 05:26:38 PM
I doubt people would want to. I can't think of a single game that gives that option.
I'm fairly certain the 360 version of minecraft has this option

No, Not really. It has an option to disable the custom animations that show up on some of the skins, But not all animation.
Title: Re: TM PC Modding API
Post by: Craig on December 11, 2016, 05:29:30 PM
Well how much more lag does say 50 or 100 animated mobs walking around cause,compared to no animation?
Like I said above, in terms of FPS, none.

There is an extra RAM cost, which could potentially cause some intermittent lag on weaker hardware on heavily built up worlds, and there is a bandwidth cost to everyone who joins the map and has to download the models, but in terms of just rendering, the cost of animating is insignificant.
Title: Re: TM PC Modding API
Post by: Craig on December 11, 2016, 05:36:11 PM
Honestly, Craig. I can't see this being that hard to add compared to some of your other additions, Even if there is no real point to it for most people.
Adding options, or the reluctance to add options is rarely a decision based on how hard it is add, it's invariably about reducing UI clutter and complexity  for the player.
Title: Re: TM PC Modding API
Post by: Muffin on December 11, 2016, 06:07:21 PM
I doubt people would want to. I can't think of a single game that gives that option.
I'm fairly certain the 360 version of minecraft has this option

No, Not really. It has an option to disable the custom animations that show up on some of the skins, But not all animation.
That's not the option I was talking about. I know it used to be there since me and a couple friends used to call it "Total Miner Mode". I doubt it was removed but I'll check later today.
Title: Re: TM PC Modding API
Post by: .ok on December 12, 2016, 08:12:50 PM
Will we have the option to have multiple sounds for an item?
Title: Re: TM PC Modding API
Post by: Craig on December 12, 2016, 08:27:54 PM
Will we have the option to have multiple sounds for an item?
I'm not sure how sound will be supported yet. Currently the game uses XACT for sounds, so all the sounds are 'built' into a wavebank file (.xwb) by XACT at compile time. I'm not sure if that can be extended to runtime. If not then I'll need to build separate support into the game to use external sound files.
Title: Re: TM PC Modding API
Post by: .ok on December 12, 2016, 09:34:58 PM
Will we have the option to have multiple sounds for an item?
I'm not sure how sound will be supported yet. Currently the game uses XACT for sounds, so all the sounds are 'built' into a wavebank file (.xwb) by XACT at compile time. I'm not sure if that can be extended to runtime. If not then I'll need to build separate support into the game to use external sound files.
Well is it possible to support 1 file?if say it's 1-3 seconds long and/or if you converted the audio file type to .xwb?
Title: Re: TM PC Modding API
Post by: PWRBTTN on December 13, 2016, 01:17:48 AM
I remember multiple people saying that they prefer the lack of animation.

Honestly, Craig. I can't see this being that hard to add compared to some of your other additions, Even if there is no real point to it for most people.
While I think animations are swell and all, I would probably play on no animations most of the time. I was hiding my reason behind graphical latency, but heck of a lot of good that did. I do personally prefer lack of animation. It's a charming relic of Total Miner I'll actually miss if it's gone. Again, that's not to say I won't touch animation. It's something like what Muffin said. His friend's called no animations on Minecraft "Total Miner mode". If that's what he thinks of, it probably had some sort of spot in his mind that set it apart.

That's my stand on this.
Title: Re: TM PC Modding API
Post by: Gary on December 13, 2016, 03:03:04 PM
I remember multiple people saying that they prefer the lack of animation.

Honestly, Craig. I can't see this being that hard to add compared to some of your other additions, Even if there is no real point to it for most people.
While I think animations are swell and all, I would probably play on no animations most of the time. I was hiding my reason behind graphical latency, but heck of a lot of good that did. I do personally prefer lack of animation. It's a charming relic of Total Miner I'll actually miss if it's gone. Again, that's not to say I won't touch animation. It's something like what Muffin said. His friend's called no animations on Minecraft "Total Miner mode". If that's what he thinks of, it probably had some sort of spot in his mind that set it apart.

That's my stand on this.

While I understand your sentiment, you are discouraging the improvement and addition of features simply because you do not like change.

I can relate to that to some extent, as I do miss many of the previous "feelings" that Total Miner had back in its previous iterations of the game (mostly when the game's music was all dark, and there weren't any mobs.... it made it feel more like a you vs. the world kind of a game, and the challenge of earthquakes and finding blueprints really hooked me), but I would never prohibit or attempt to prohibit the game from moving forward. This is how we get things like scripting, NPC behaviors, integrated modding, etc.

That's my personal take on it, at least.
Title: Re: TM PC Modding API
Post by: Curmescius on December 13, 2016, 03:17:16 PM
I remember multiple people saying that they preference the lack of animation.

Honestly, Craig. I can't see this being that hard to add compared to some of your other additions, Even if there is no real point to it for most people.
While I think animations are swell and all, I would probably play on no animations most of the time. I was hiding my reason behind graphical latency, but heck of a lot of good that did. I do personally prefer lack of animation. It's a charming relic of Total Miner I'll actually miss if it's gone. Again, that's not to say I won't touch animation. It's something like what Muffin said. His friend's called no animations on Minecraft "Total Miner mode". If that's what he thinks of, it probably had some sort of spot in his mind that set it apart.

That's my stand on this.

While I understand your sentiment, you are discouraging the improvement and addition of features simply because you do not like change.

I can relate to that to some extent, as I do miss many of the previous "feelings" that Total Miner had back in its previous iterations of the game (mostly when the game's music was all dark, and there weren't any mobs.... it made it feel more like a you vs. the world kind of a game, and the challenge of earthquakes and finding blueprints really hooked me), but I would never prohibit or attempt to prohibit the game from moving forward. This is how we get things like scripting, NPC behaviors, integrated modding, etc.

That's my personal take on it, at least.


He isn't discouraging change though, He just wants the ability to choose to keep the same feel as we have now.

I think this would be fine as an option that is hidden by default. Perhaps there could just be a "Show Advanced Options" option which shows debug menus for mod testing, Or the ability to turn off animations, Or anything g else that would be used infrequently.
Title: Re: TM PC Modding API
Post by: PWRBTTN on December 13, 2016, 04:04:06 PM
you are discouraging the improvement and addition of features simply because you do not like change.
Wat? No. I'm not. At all. That's ridiculous to say. I'd much like to see animations. I would just rather play without them in most cases. Not once have I tried to discourage Craig from it. It'd be pointless, anyway, because he was pretty much always going to end up adding it in. I'm only putting forth the idea of having an option to turn off animation.
Title: Re: TM PC Modding API
Post by: Gary on December 13, 2016, 05:08:29 PM
you are discouraging the improvement and addition of features simply because you do not like change.
Wat? No. I'm not. At all. That's ridiculous to say. I'd much like to see animations. I would just rather play without them in most cases. Not once have I tried to discourage Craig from it. It'd be pointless, anyway, because he was pretty much always going to end up adding it in. I'm only putting forth the idea of having an option to turn off animation.

As I said, that's just how it came across to me.
Title: Re: TM PC Modding API
Post by: PWRBTTN on December 13, 2016, 06:22:38 PM
you are discouraging the improvement and addition of features simply because you do not like change.
Wat? No. I'm not. At all. That's ridiculous to say. I'd much like to see animations. I would just rather play without them in most cases. Not once have I tried to discourage Craig from it. It'd be pointless, anyway, because he was pretty much always going to end up adding it in. I'm only putting forth the idea of having an option to turn off animation.

As I said, that's just how it came across to me.
Well it's wrong. I'm more passionate about this game than most games I've played, and that nearly almost feels like an attack on me that'd you'd say that. Sorry if I came across as defensive, but saying I'm discouraging a better Total Miner is kind of stupid.
Title: Re: TM PC Modding API
Post by: December Jim on December 21, 2016, 04:04:53 AM
Shaders mod ehh?
Title: Re: TM PC Modding API
Post by: PWRBTTN on December 21, 2016, 11:09:21 AM
Does the API support adding tabs to shop menus? Like for example, I make a mod with 80 types of gemstones, and I want to put them in a gemstone tab in the item shop to reduce clutter in other tabs.
Title: Re: TM PC Modding API
Post by: Craig on December 21, 2016, 06:04:35 PM
Does the API support adding tabs to shop menus? Like for example, I make a mod with 80 types of gemstones, and I want to put them in a gemstone tab in the item shop to reduce clutter in other tabs.
I considered that, but as you can see there is no space available on the screen for the regular Block and Item sub tabs:

(https://i.gyazo.com/28703c996a16e11c3aeee784ecf52dea.png)

But what I could do is allow you to create a Tab for your mod, which would be to the right of the Items tab, and then you could have your sub tabs under that.
Title: Re: TM PC Modding API
Post by: The Gold Knight on December 21, 2016, 06:53:50 PM
Does the API support adding tabs to shop menus? Like for example, I make a mod with 80 types of gemstones, and I want to put them in a gemstone tab in the item shop to reduce clutter in other tabs.
I considered that, but as you can see there is no space available on the screen for the regular Block and Item sub tabs:

(https://i.gyazo.com/28703c996a16e11c3aeee784ecf52dea.png)

But what I could do is allow you to create a Tab for your mod, which would be to the right of the Items tab, and then you could have your sub tabs under that.
I mean, couldn't you also allow the sub tabs section to scroll? Like, put arrows at the ends to let you scroll it left and right?
Title: Re: TM PC Modding API
Post by: PWRBTTN on December 21, 2016, 07:30:01 PM
Does the API support adding tabs to shop menus? Like for example, I make a mod with 80 types of gemstones, and I want to put them in a gemstone tab in the item shop to reduce clutter in other tabs.
I considered that, but as you can see there is no space available on the screen for the regular Block and Item sub tabs:

(https://i.gyazo.com/28703c996a16e11c3aeee784ecf52dea.png)

But what I could do is allow you to create a Tab for your mod, which would be to the right of the Items tab, and then you could have your sub tabs under that.
I mean, couldn't you also allow the sub tabs section to scroll? Like, put arrows at the ends to let you scroll it left and right?
realistically, that'd be the best compromise. It wouldn't add a lot of clutter, it'd still be self-explanatory, you could still differentiate blocks from items, and it would probably prevent issues of multiple mods with their own shop tabs possibly competing for slots. Hope I explained that well.
Title: Re: TM PC Modding API
Post by: Scotty2Hotty999 on December 21, 2016, 07:31:22 PM
So excited to make a Space Exploration mod for this when it comes out. Now to find a way to travel to "different worlds"....hmmm...
Title: Re: TM PC Modding API
Post by: AlienizdPixel on December 21, 2016, 07:46:13 PM
I mean, couldn't you also allow the sub tabs section to scroll? Like, put arrows at the ends to let you scroll it left and right?
As SNWFLK stated, this seems to be the best compromise, not only for his given reason, but it would also cause less hassle when/if lower resolutions are supported.
Title: Re: TM PC Modding API
Post by: Craig on December 22, 2016, 12:24:33 AM
I mean, couldn't you also allow the sub tabs section to scroll? Like, put arrows at the ends to let you scroll it left and right?
At this time I'm not convinced. It will likely be cumbersome scrolling tabs all the time. It might not be too bad with a mouse, but I think it will be a pain in the proverbial with a gamepad.

It wouldn't add a lot of clutter, it'd still be self-explanatory
Neither method adds more clutter than the other. My proposed method is arguably more self-explanatory.

you could still differentiate blocks from items
You can still do that with my method because each mod can still have their own sub tabs.

and it would probably prevent issues of multiple mods with their own shop tabs possibly competing for slots.
That can be solved by having the top tabs scrollable. You might ask what's the difference then. The difference is it's much less likely to happen. i.e. you'd have to be playing with several mods active.

[edit] Another option is to trim the whitespace on those sub tabs, there's quite a bit of it and if trimmed would probably free up space for another 2 or 3 mod tabs. It might look cluttered though.
Title: Re: TM PC Modding API
Post by: The Gold Knight on December 22, 2016, 05:01:54 AM
Perhaps it could be made that when hovering over that area, pressing lb and rb quickly move through the sub-sections, thus making it easier if it had a scroll function as well?
Title: Re: TM PC Modding API
Post by: PWRBTTN on December 22, 2016, 08:16:42 PM
What's going on in the new dev video? I don't understand.
Title: Re: TM PC Modding API
Post by: Gary on December 22, 2016, 08:24:40 PM
What's going on in the new dev video? I don't understand.

At the end of the video it shows a new tab in the pause menu, titled Vehicles.

You can add stuff like that via modding.
Title: Re: TM PC Modding API
Post by: PWRBTTN on December 22, 2016, 08:42:15 PM
What's going on in the new dev video? I don't understand.

At the end of the video it shows a new tab in the pause menu, titled Vehicles.

You can add stuff like that via modding.
I'm not sure that helped explain to me any better. What was the rasta for?
Title: Re: TM PC Modding API
Post by: Gary on December 22, 2016, 08:53:53 PM
What's going on in the new dev video? I don't understand.

At the end of the video it shows a new tab in the pause menu, titled Vehicles.

You can add stuff like that via modding.
I'm not sure that helped explain to me any better. What was the rasta for?

When the rasta block is opened you can see "setup", whereas normally I don't think you would be able to. I assume that this is what pushed the player into the vehicles tab (pressing A to access setup while picking the rasta block).
Title: Re: TM PC Modding API
Post by: Craig on December 22, 2016, 11:02:03 PM
What's going on in the new dev video? I don't understand.

At the end of the video it shows a new tab in the pause menu, titled Vehicles.

You can add stuff like that via modding.
I'm not sure that helped explain to me any better. What was the rasta for?

When the rasta block is opened you can see "setup", whereas normally I don't think you would be able to. I assume that this is what pushed the player into the vehicles tab (pressing A to access setup while picking the rasta block).
Correct. I just used the Rasta as an example, but normally the modder would create their own block, like an NPC Spawner for example, a block that has setup and that custom setup screen can be accessed from the prospect/interact screen like other built in blocks.
Title: Re: TM PC Modding API
Post by: PWRBTTN on December 22, 2016, 11:12:58 PM
What's going on in the new dev video? I don't understand.

At the end of the video it shows a new tab in the pause menu, titled Vehicles.

You can add stuff like that via modding.
I'm not sure that helped explain to me any better. What was the rasta for?

When the rasta block is opened you can see "setup", whereas normally I don't think you would be able to. I assume that this is what pushed the player into the vehicles tab (pressing A to access setup while picking the rasta block).
Correct. I just used the Rasta as an example, but normally the modder would create their own block, like an NPC Spawner for example, a block that has setup and that custom setup screen can be accessed from the prospect/interact screen like other built in blocks.
oh, I see. What about direct interaction, like with chests or shops?
Title: Re: TM PC Modding API
Post by: MrMarooca on December 22, 2016, 11:45:34 PM
Quote
oh, I see. What about direct interaction, like with chests or shops?

Adding on to this, will we be able to make menus via the API similar to in-game scripted menus?
Title: Re: TM PC Modding API
Post by: Craig on December 22, 2016, 11:59:44 PM
oh, I see. What about direct interaction, like with chests or shops?
Yes that will be supported too.

Adding on to this, will we be able to make menus via the API similar to in-game scripted menus?
Yes, using C# you can completely bypass the normal game GUI and create your own, if you want. You'll also be able to suppress all the current HUD elements, and replace them with your own.


In terms of the custom UI (that you see in the video), I have created a standalone GUI library which has types for basic controls like labels, buttons, datafields, listboxes, dropdowns, sliders, etc. The new GUI is built using that library, and modders will have full access to that library to either build their own UI that mimics the games one, or build a completely different UI.

Of course, modders also have the option to just do everything themselves using SpriteBatch.

Note: Today I'm building an API for modders to create their own Arcade games for the Arcade block.
Title: Re: TM PC Modding API
Post by: Curmescius on December 23, 2016, 05:39:28 PM
A few questions.

1: Will custom wearable avatars be easily moddable before they are a feature in the game?

2: Will they support texturable blocks?

3: Will they be able to be animated?

4: Will crouch models be able to be animated?
Title: Re: TM PC Modding API
Post by: Craig on December 23, 2016, 05:50:42 PM
A few questions.

1: Will custom wearable avatars be easily moddable before they are a feature in the game?

2: Will they support texturable blocks?

3: Will they be able to be animated?

4: Will crouch models be able to be animated?

I don't know. Feature creep is starting to concern me. I now want to clamp down on new features and try to focus on "must do's" before early access release.
Title: Re: TM PC Modding API
Post by: Curmescius on December 23, 2016, 06:03:10 PM
A few questions.

1: Will custom wearable avatars be easily moddable before they are a feature in the game?

2: Will they support texturable blocks?

3: Will they be able to be animated?

4: Will crouch models be able to be animated?

I don't know. Feature creep is starting to concern me. I now want to clamp down on new features and try to focus on "must do's" before early access release.

I mean, Go ahead and do that. I never asked if it would be in the initial release. I'm just wondering if this will be moddable before you make it into a proper feature with GUIs and menus and stuff.
Title: Re: TM PC Modding API
Post by: Muffin on December 23, 2016, 10:05:47 PM
Note: Today I'm building an API for modders to create their own Arcade games for the Arcade block.
This interests me greatly. Already have a couple of ideas I'm planning on.
Title: Re: TM PC Modding API
Post by: Craig on December 23, 2016, 11:35:50 PM
Note: Today I'm building an API for modders to create their own Arcade games for the Arcade block.
This interests me greatly. Already have a couple of ideas I'm planning on.
Note the games will be programmed in C# (or possibly other .Net languages).
Title: Re: TM PC Modding API
Post by: PWRBTTN on December 23, 2016, 11:49:44 PM
Note: Today I'm building an API for modders to create their own Arcade games for the Arcade block.
This interests me greatly. Already have a couple of ideas I'm planning on.
Note the games will be programmed in C# (or possibly other .Net languages).
What exactly would the limitations be? I mean... there's got to be some sort of limitation, obviously. I'm sorry if my question is vague, but basically... what kind of games won't be possible?
Title: Re: TM PC Modding API
Post by: The Gold Knight on December 24, 2016, 12:10:20 AM
Note: Today I'm building an API for modders to create their own Arcade games for the Arcade block.
This interests me greatly. Already have a couple of ideas I'm planning on.
Note the games will be programmed in C# (or possibly other .Net languages).
What exactly would the limitations be? I mean... there's got to be some sort of limitation, obviously. I'm sorry if my question is vague, but basically... what kind of games won't be possible?
let's pretend there's no limitations. Then we can play TM while playing TM.
Title: Re: TM PC Modding API
Post by: PWRBTTN on December 24, 2016, 12:40:44 AM
Note: Today I'm building an API for modders to create their own Arcade games for the Arcade block.
This interests me greatly. Already have a couple of ideas I'm planning on.
Note the games will be programmed in C# (or possibly other .Net languages).
What exactly would the limitations be? I mean... there's got to be some sort of limitation, obviously. I'm sorry if my question is vague, but basically... what kind of games won't be possible?
let's pretend there's no limitations. Then we can play TM while playing TM.
that's kind of the thing I was getting at. I mean, we can't really store data from games, can we? Among what else is there for limitations?
Title: Re: TM PC Modding API
Post by: Craig on December 24, 2016, 02:19:36 AM
we can't really store data from games, can we?
You could.
Title: Re: TM PC Modding API
Post by: Craig on December 24, 2016, 02:51:46 AM
What exactly would the limitations be? I mean... there's got to be some sort of limitation, obviously. I'm sorry if my question is vague, but basically... what kind of games won't be possible?
Some games won't be vaguely possible.
Title: Re: TM PC Modding API
Post by: The Gold Knight on December 24, 2016, 02:52:12 AM
What exactly would the limitations be? I mean... there's got to be some sort of limitation, obviously. I'm sorry if my question is vague, but basically... what kind of games won't be possible?
Some games won't be vaguely possible.
So... No call of duty?
Title: Re: TM PC Modding API
Post by: Craig on December 24, 2016, 04:15:48 AM
What exactly would the limitations be? I mean... there's got to be some sort of limitation, obviously. I'm sorry if my question is vague, but basically... what kind of games won't be possible?
Some games won't be vaguely possible.
So... No call of duty?
Dunno, but you can do Pong..

FYI source code here: https://github.com/cmartin99/TotalMinerMods/tree/master/ArcadeGames/Source

(https://i.gyazo.com/d3f9264c9e929df7a006a7b2e6b14848.png)
Title: Re: TM PC Modding API
Post by: Jaz on December 24, 2016, 06:28:12 AM
What exactly would the limitations be? I mean... there's got to be some sort of limitation, obviously. I'm sorry if my question is vague, but basically... what kind of games won't be possible?
Some games won't be vaguely possible.
So... No call of duty?
Dunno, but you can do Pong..

FYI source code here: https://github.com/cmartin99/TotalMinerMods/tree/master/ArcadeGames/Source

(https://i.gyazo.com/d3f9264c9e929df7a006a7b2e6b14848.png)

Do we get a video of TM pong now? :3
Title: Re: TM PC Modding API
Post by: Craig on December 24, 2016, 06:42:47 AM
What exactly would the limitations be? I mean... there's got to be some sort of limitation, obviously. I'm sorry if my question is vague, but basically... what kind of games won't be possible?
Some games won't be vaguely possible.
So... No call of duty?
Dunno, but you can do Pong..

FYI source code here: https://github.com/cmartin99/TotalMinerMods/tree/master/ArcadeGames/Source

(https://i.gyazo.com/d3f9264c9e929df7a006a7b2e6b14848.png)

Do we get a video of TM pong now? :3
U Wot M8?
Title: Re: TM PC Modding API
Post by: Curmescius on December 24, 2016, 07:43:10 AM
What exactly would the limitations be? I mean... there's got to be some sort of limitation, obviously. I'm sorry if my question is vague, but basically... what kind of games won't be possible?
Some games won't be vaguely possible.

Could someone make Total Gear?

https://www.youtube.com/watch?v=ehlAMTh42Ko



Also, Someone, Anyone. Please make Total Zork.
Title: Re: TM PC Modding API
Post by: Scotty2Hotty999 on December 24, 2016, 09:45:26 AM
Would it be possible to create a TV mod? To have different channels and stuff (maybe broadcast camera feed onto a certain channel?) So for online play, there can be news stations by other players that players can watch? That would be pretty cool!
Title: Re: TM PC Modding API
Post by: Curmescius on December 24, 2016, 09:49:59 AM
Would it be possible to create a TV mod? To have different channels and stuff (maybe broadcast camera feed onto a certain channel?) So for online play, there can be news stations by other players that players can watch? That would be pretty cool!


There are two modding options.

1. A mod that does everything via the games modding API.
2. A mod that does not.

Option 1 does not have support for animated textures (at this time).
Option 2 allows you to do practically anything, if you know how.


This is more or less the same thing as my LCD panel idea with an added function of being a CCTV monitor.
Title: Re: TM PC Modding API
Post by: Scotty2Hotty999 on December 27, 2016, 10:49:38 AM
Would it be possible to create a TV mod? To have different channels and stuff (maybe broadcast camera feed onto a certain channel?) So for online play, there can be news stations by other players that players can watch? That would be pretty cool!


There are two modding options.

1. A mod that does everything via the games modding API.
2. A mod that does not.

Option 1 does not have support for animated textures (at this time).
Option 2 allows you to do practically anything, if you know how.


This is more or less the same thing as my LCD panel idea with an added function of being a CCTV monitor.

I'm so excited to see the things the community will create for this game with mods once it is released!
Title: Re: TM PC Modding API
Post by: PWRBTTN on December 30, 2016, 06:19:00 PM
Question Time


Does (or will) the API support:
•Adding ores or other blocks to world generation
•Adding in HUD elements, (in the fashion of say the hotbar, or other various game HUD pieces)
•Adding script commands, and what would be feasible with it
•Adding loot to cave chest loot table
•Adding different types of random spawn chests with unique loot tables to the vanilla game
•Adding in world gen things like the caves that cave chests spawn in, or little pools of liquid for modded in liquids, or trees/other various flora, or structures like small buildings or castles

-----

Regarding the first item on the list. Say I want to add an ore, will I be able to have them spawn naturally? What if I want to add other stone types to spawn in layers like marble or granite do, but I don't want to remove any of the default stone layers? Can I do that? What about if I want a different kind of grass to spawn in along side normal grass, not patchy like if grassy stone and grass shaded are, sort of like maybe a... makeshift biome thing?
Title: Re: TM PC Modding API
Post by: Lunar on December 30, 2016, 11:41:16 PM
I've been wanting to learn C# so bad, because I want to make advanced mods rather than simple texture/stat XML swapping kind of stuff. Can anyone link me or direct me to a place that would be good to start learning, I keep trying to learn, but all websites start off too complex.
Title: Re: TM PC Modding API
Post by: Muffin on December 30, 2016, 11:43:51 PM
I've been wanting to learn C# so bad, because I want to make advanced mods rather than simple texture/stat XML swapping kind of stuff. Can anyone link me or direct me to a place that would be good to start learning, I keep trying to learn, but all websites start off too complex.
Youtube?
Title: Re: TM PC Modding API
Post by: Scotty2Hotty999 on January 03, 2017, 01:10:04 AM
So these are some of the weapons I've created for my "Galactic Miner" mod! All I need to do is make and apply textures to the objects, and then test it once the game comes out! So excited for this! (These are all folders by the way, with the necessary files inside!
(http://i.imgur.com/S3FrHpo.png?1)
Title: Re: TM PC Modding API
Post by: Craig on January 03, 2017, 01:45:13 AM
•Adding ores or other blocks to world generation
Atm it supports adding/changing default ore generation via C#. I'd like to extend that to XML.

•Adding in HUD elements, (in the fashion of say the hotbar, or other various game HUD pieces)
Yes, via C#

•Adding script commands, and what would be feasible with it
Not yet

•Adding loot to cave chest loot table
No

•Adding different types of random spawn chests with unique loot tables to the vanilla game
No

•Adding in world gen things like the caves that cave chests spawn in, or little pools of liquid for modded in liquids, or trees/other various flora, or structures like small buildings or castles
Not yet

-----

Regarding the first item on the list. Say I want to add an ore, will I be able to have them spawn naturally? What if I want to add other stone types to spawn in layers like marble or granite do, but I don't want to remove any of the default stone layers? Can I do that?
Yes via C#

What about if I want a different kind of grass to spawn in along side normal grass, not patchy like if grassy stone and grass shaded are, sort of like maybe a... makeshift biome thing?
Not yet
Title: Re: TM PC Modding API
Post by: PWRBTTN on January 03, 2017, 02:16:59 AM
•Adding ores or other blocks to world generation
Atm it supports adding/changing default ore generation via C#. I'd like to extend that to XML.

•Adding in HUD elements, (in the fashion of say the hotbar, or other various game HUD pieces)
Yes, via C#

•Adding script commands, and what would be feasible with it
Not yet

•Adding loot to cave chest loot table
No

•Adding different types of random spawn chests with unique loot tables to the vanilla game
No

•Adding in world gen things like the caves that cave chests spawn in, or little pools of liquid for modded in liquids, or trees/other various flora, or structures like small buildings or castles
Not yet

-----

Regarding the first item on the list. Say I want to add an ore, will I be able to have them spawn naturally? What if I want to add other stone types to spawn in layers like marble or granite do, but I don't want to remove any of the default stone layers? Can I do that?
Yes via C#

What about if I want a different kind of grass to spawn in along side normal grass, not patchy like if grassy stone and grass shaded are, sort of like maybe a... makeshift biome thing?
Not yet
Are the no's going to stay a no? It seems like it'd be a useful feature to be able to add loot to the cave chest loot table and create your own random loot chests that have different types of weapins/blocks/armours.

The ones listed as not yet. Are they going to be possible via XML?

The ones listed as yes,C#. Will they be extended to XML.

Basically, I'm asking how much will be capable in XML. XML seems pretty convenient.
Title: Re: TM PC Modding API
Post by: Craig on January 03, 2017, 02:32:46 AM
Are the no's going to stay a no?
Don't know yet.

I doubt extending scripts would be possible in XML. I don't know if it's even viable with C# yet.
I doubt interesting HUD elements would be possible via XML.

XML should be sufficient for most world gen stuff.

Title: Re: TM PC Modding API
Post by: Courier on January 03, 2017, 06:27:30 PM
Craig, do you think there is going to be a Steam Workshop for the PC version? Sorry is this has already been said before btw
Title: Re: TM PC Modding API
Post by: AlienizdPixel on January 03, 2017, 06:39:41 PM
That is the plan.
Title: Re: TM PC Modding API
Post by: Courier on January 03, 2017, 06:42:48 PM
Ooooo nice. My dream is coming true ;D
Title: Re: TM PC Modding API
Post by: December Jim on January 06, 2017, 07:20:33 AM
What I would like to do if I ever have the chance to mod, is to be able to change the day and night sky. What I mean is that currently the daytime sky is plain blue with the sun and the night sky consists of a few stars and a moon.

What I would like to do is to be able to mod and add images of planets and moons that you can see throughout the day sky, and galaxy's and other things throughout the night sky.

Day could look like this: https://s-media-cache-ak0.pinimg.com/originals/99/e4/c4/99e4c4faf6d68fdec7073b99422da790.jpg

Night could look like this: https://www.walldevil.com/101808-artwork-fantasy-art-concept-skies-galaxies-space-digital.html
Title: Re: TM PC Modding API
Post by: TheDestinedCrab on February 07, 2017, 03:38:25 AM
I'm sure I saw an IsTexturable parameter somewhere.. Can someone help me out? I'm trying to mod a block.

Cheers,
Crab.
Title: Re: TM PC Modding API
Post by: AlienizdPixel on February 07, 2017, 10:16:25 AM
I'm sure I saw an IsTexturable parameter somewhere...
There is no IsTextureable option, there is however the <TextureID> nearing the bottom of BlockData.xml.
Title: Re: TM PC Modding API
Post by: TheDestinedCrab on February 07, 2017, 11:08:38 AM
Hmm.. what does that parameter do, then?