1. The forum will be closing soon permanently. Please read the announcement here

    Note: User registration has been closed. We do not accept any new accounts.

New modding feature requests

Discussion in 'Modding' started by Ondrej.Petrzilka, Aug 13, 2014.

Thread Status:
Not open for further replies.
This last post in this thread was made more than 31 days old.
  1. Geneticus

    Geneticus Senior Engineer

    Messages:
    1,618
    Assembler re-fit:
    With so many mods out there, production and otherwise, The assemblers could use some interface improvements. A search box at the top by the recipe types would be a good start. As would a checkbox to hide uncraftable components.
    While we are at it, split a new assembler category off the main ones for ship weapon components and ammo. Having the auto-disassemble feature back would be nice since we now have sorter blocks to restrict items going in for disassembly.
     
  2. Geneticus

    Geneticus Senior Engineer

    Messages:
    1,618
    1. API/PB access to determine what type of Voxel a station block is connected to. Uses: Geothermal Mods, Fossil Fuel Wells, Water Wells. Possibly an extension of sensor asteroid detection.
    2. PB access to Projector blueprints to allow a script to generate a prefab in memory and apply it directly to a projector. Primitive Planes, 3D shapes. Could allow modders to write scripts that procedurally generate ships.
    3. MultiType Block types: New Parent block that can accept multiple block definitions for use in a single modder defined block.
    For example, in the XML below we have a block type TwoPropertyBlock which can have 2 other block types in it.
    The Terminal screen would then build a panel for a TwoPropertyBlock using global elements (on/off, show on Hud, Etc.) and add controls based on each sub-blockproperty.
    In this case a terminal control for the door operation (Open/Close)with atmospheric pressure calcs, dummies for the Merge block and a Merge control On/Off button.

    This case would be a door that can merge grids is airtight and pass atmosphere and physical objects/Characters.
    Another case could be Connector+ Door = For a soft airtight seal Or a BatteryBlock + Weapon that charges then fires when the Battery portion is charged.
    ConvyeorSorter +ConveyorSorter to create a Logical Boolean OR Block
    A dual ConveyorSorter + another Conveyor Sorter to create a Logical Boolean AND block.
    The Possibilities are endless.

    Code:
    <Definition xsi:type="MyObjectBuilder_TwoPropertyBlock">
    
    	<Id>
    		<TypeId>TwoPropertyBlock</TypeId>
    		<SubtypeId>MergeDoors</SubtypeId>
    	</Id>
    
    	<BlockTypeProperties>
    		<FirstBlockTypeProperty>		<--! Used to build terminal screen controls-->
    			 <Definition xsi:type="MyObjectBuilder_DoorDefinition">
    				<Id>
    					<TypeId>Door</TypeId>
    					<SubtypeId />
    				</Id>	
    				</Definition>
    		</FirstBlockTypeProperty>	
    		
    		<SecondBlockTypeProperty>	<--! Used to build terminal screen controls-->	
    			 <Definition xsi:type="MyObjectBuilder_MergeBlockDefinition">
    				<Id>
    					<TypeId>MergeBlock</TypeId>
    					<SubtypeId>LargeShipMergeBlock</SubtypeId>     
    				</Id>	
    			</Definition>
    		</SecondBlockTypeProperty>
    	</BlockTypeProperties>
    
    	<DisplayName>LargeMergeDoorBlock</DisplayName>
    	<Icon>Textures\GUI\Icons\Cubes\MyNew.dds</Icon>
    	<CubeSize>Large</CubeSize>
    	<BlockTopology>TriangleMesh</BlockTopology>
    	<Size x="3" y="3" z="1" />
    	<ModelOffset x="0" y="0" z="0" />
    	<Model>Models\Cubes\Large\MergeDoor.mwm</Model>
    	<Components>
    		<Component Subtype="SteelPlate" Count="20" />
    	</Components>
    	<CriticalComponent Subtype="Computer" Index="0" />
    	<MountPoints>
    		<MountPoint Side="Top" StartX="0" StartY="0" EndX="3" EndY="2" />
    	</MountPoints>
    	<BuildProgressModels>
    		<Model BuildPercentUpperBound="0.88" File="Models\Cubes\Large\MergeDoor.mwm" />
    	</BuildProgressModels>
    	<BlockPairName>MergeDoors</BlockPairName>
    	<MirroringY>Z</MirroringY>
    	<MirroringZ>Y</MirroringZ>
    	<EdgeType>Light</EdgeType>
    	<BuildTimeSeconds>45</BuildTimeSeconds>
    	<DamageEffectId>213</DamageEffectId>
    	<DamagedSound>ParticleWeapExpl</DamagedSound>
    	<ResourceSourceGroup>Reactors</ResourceSourceGroup>
    	<ResourceSinkGroup>Door</ResourceSinkGroup>     
    	<OperationalPowerConsumption>0.001</OperationalPowerConsumption>
    	<StandbyPowerConsumption>0.000001</StandbyPowerConsumption>
    </Definition>
    
     
    Last edited: Mar 21, 2016
    • Agree Agree x 1
  3. Geneticus

    Geneticus Senior Engineer

    Messages:
    1,618
    Could we get a new tag group added to cube definitions that allows us to specify the types of scrap to generate from damage per block and the ratio if multiple types are used? For example I made an electronic scrap object that I would like to have drop from blocks that have computers, but I also have battery scrap that should also drop from destroyed batteries.
     
  4. Digi

    Digi Senior Engineer

    Messages:
    2,393
    @Geneticus
    Is this what you're asking ?
    Code:
          <Components>
            <Component Subtype="SteelPlate" Count="20" />
            <Component Subtype="Construction" Count="10" />
            <Component Subtype="PowerCell" Count="120">
              <DeconstructId>
                <TypeId>Ore</TypeId>
                <SubtypeId>Scrap</SubtypeId>
              </DeconstructId>
            </Component>
            <Component Subtype="Computer" Count="25">
              <DeconstructId>
                <TypeId>Ore</TypeId>
                <SubtypeId>Iron</SubtypeId>
              </DeconstructId>
            </Component>
            <Component Subtype="Construction" Count="20" />
            <Component Subtype="SteelPlate" Count="60" />
          </Components>
    
    Because that works just fine, I get iron ore and scrap when grinding that block.
     
  5. Geneticus

    Geneticus Senior Engineer

    Messages:
    1,618
    No not for scrap generated by deconstruction. I'm asking for control of scrap generated by damage. Bullets, collisions, drills, meteor hits, etc.
     
  6. Digi

    Digi Senior Engineer

    Messages:
    2,393
    Oh I see.
    Currently the scrap drop chance is at the component definition, I guess it would also be useful to have some overwrite at the block level.

    The scrap amount is hardcoded to 80% of the component mass. The code that controls this: Sandbox.Game.Entities.MyComponentStack.UnmountInternal() (accessible in mods but no idea how we can overwrite that :D), that and two other methods must be changed to change what item drops for said components.
    Someone (not me :p) could do a github PR for this I guess.
     
  7. Geneticus

    Geneticus Senior Engineer

    Messages:
    1,618
    Allow us to specify a different model in the block XML def to be shown by the cubeplacer rather than showing the the final model. For example The Stargate mod now has a destructive area around it where the wormhole disintegrates anything in its path when it is opened. It would be nice to be able to specify a different model that contains alignment instructions/warnings. Possibly even the initial construction model.
     
  8. Firedoll

    Firedoll Trainee Engineer

    Messages:
    6
    I know there's a lot in this thread about sound, but I don't think I saw anything relating to planets. So, apologies if a suggestion like this is already out there.

    Since the development team seems to be focusing on soundscapes at the moment, this suggestion feels like it would make a timely addition.

    On planets, the current process for defining sounds is really, really limiting. In real life elevation only partially determines what you hear, but the current process for defining soundscapes is almost totally based on it, which makes building interesting worlds that feel alive difficult. That current process looks something like:

    Code:
    <SoundRule>
      <Height Min="0" Max="1"/>
      <Latitude Min="0" Max="90"/>
      <SunAngleFromZenith Min="0" Max="180"/>
      <EnvironmentSound>AmbMarsLoop</EnvironmentSound>
    </SoundRule>
    
    This technique ultimately seems to fail the most around interesting geometry or landmarks, such as a windy canyon or crackling volcano. In the case of the volcano, the sound of bubbling lava would play while on any of your planet's snowy mountains. And, the lava dripping down the side of the volcano would have the sound of whatever elevation it's passing through.

    I propose that the same custom material table seen below be used to assign ambient sounds.

    Code:
    <CustomMaterialTable>
      <Material Material="AlienOrangeGrass" Value ="10" MaxDepth ="3"/>
      <Material Material="AlienSand" Value ="40" MaxDepth ="3"/>
    </CustomMaterialTable>
    While I know my solution isn't perfect (sounds may end up overly local and tied directly to materials/no fancy soundscape for people not using a material table) I think it strikes a good a good medium. No extra image maps need to be implemented, produced by modders, or kept in memory. And, the lava at the top of the volcano, snow at the top of the mountains, and windswept stone in the canyon can all emit the most appropriate sounds. Plus, even the limitations can be sort of hacked around depending on how you define your materials.

    It would help bring planets to life if we could define sounds in this manner.
     
    • Like Like x 1
  9. MBT808

    MBT808 Trainee Engineer

    Messages:
    12
    changes to the muzzle flare animations would be cool, able to add new animations for the bigger weapons thats been introduced through modding
     
    • Agree Agree x 1
  10. Enea

    Enea Trainee Engineer

    Messages:
    13
    [Mod Request] Selection sorting cargo

    In survival (hard mode) I find it annoying trying to find the exact required pieces to make a block I'm working on.. you know low volume so I need to keep going back, remembering how many I took from before to carry on welding efficiently, finding them in the numerous cargo boxes, etc.

    what I would REALLY like is like a cross between a Cargo box, a sorter and the ui from the assembler. My idea is that you access the block and get a similar interface as the Assembler gives. You choose the block you want to weld and the sorter part of the block looks through all the cargo and pulls the exact parts needed to build that block. If missing some it could queue those up to assemble ...maybe...
     
    • Disagree Disagree x 1
  11. ghosttr

    ghosttr Trainee Engineer

    Messages:
    58
    I have a few...


    Blueprints -> Allow multiple different result items, just like we have with prerequisite items.

    So instead of <Result Amount="0.25" TypeId="Ingot" SubtypeId="Gold" />

    Have something like this
    <Result>
    <Item Amount="0.25" TypeId="Ingot" SubtypeId="Gold" />
    </Result>

    Blueprints -> Allow use of the <Public> Flag.


    Block Defaults -> Allow setting of default block state in Cubeblocks.sbc . At least be able to set blocks to on or off by default, although opening up other settings would be nice as well.
     
  12. Eikester

    Eikester Apprentice Engineer

    Messages:
    423
    from the github source
    Code:
    /// <summary>
            /// THIS IS OBSOLETE
            /// </summary>
            [ProtoMember]
            public BlueprintItem Result;
    
            [ProtoMember]
            [XmlArrayItem("Item")]
            public BlueprintItem[] Results;
     
  13. Geneticus

    Geneticus Senior Engineer

    Messages:
    1,618
    We can already do the first two and you can script the third one.
     
    Last edited: Jun 19, 2016
  14. neas15us

    neas15us Trainee Engineer

    Messages:
    11
    conveyor tube gravity generation

    my thought is to have a single gravity generator and connect it to a large ship's or stations conveyor network so that you don't have to build multiple gravity generators
     
  15. mexpex

    mexpex Apprentice Engineer

    Messages:
    257
    To be able to use LOD models would be a great thing to add :(
     
    • Agree Agree x 1
  16. Geneticus

    Geneticus Senior Engineer

    Messages:
    1,618
    It was added quite some time ago, now it just needs fixed:eek:ops:
     
  17. wieszak

    wieszak Trainee Engineer

    Messages:
    21
    1.
    Small enchance to that: restrict by 'class' of player (you could think about it as race of player so we could implement aliens with their own technology tree and play as earthling or some alien engeener) or ewentually by faction.

    2. Ability to redefine allowed recipies for assembler/refinery by attachment - just like we have speed or efficiency now. And ability to define speed/efficiency/power usage per recipy for attachments - so we could define block which when attached to general refinery allows to refine only specified ore faster/better or allows refining at all.
     
  18. Ronin1973

    Ronin1973 Master Engineer

    Messages:
    4,965
    Mod Request: Orbital Asteroids Around Planets.

    I was looking through planet definitions and the guide and noticed that rocks (asteroids) can spawn at the surface as part of a material group. However they are limited to placement at the surface. I was then looking for a way to generate asteroids above the surface.

    If an asteroid is pasted in above a planet, even with gravity, it is suspended there. My thoughts were "it would be brilliant to make this part of a planet's definition!"

    Sadly, I lack the technical expertise to mod the coded rules regarding planets.

    In "Complex Materials," asteroids can be added as a rule to be generated on the surface, with or without reference to an RGB channel" The can be restricted to specific latitudes and height minimums and maximums.

    Atmospheric/Orbital asteroids should work the same way, except their Height definitions should work 0 = surface, 1 = Edge of gravity field, >1 = beyond the gravity field.


    By using multiple definitions, multiple asteroids could be placed around the planet. A small asteroid field could surround the atmosphere of a planet. Planets could have asteroids suspended in their atmosphere (like in the movie "Avatar").

    By restricting the latitude and and Height Min and Height max for each definition an asteroid ring could be programmed around the planet. These asteroids are procedurally generated, so they don't occupy the game save until the player modifies them.

    I'm hoping someone with the coding expertise can either tell me if this is possible or perhaps even take on the challenge.

    Localized asteroids would be a great addition to planets in my opinion. Perhaps someone else shares that opinion.
     
  19. 1wsx10

    1wsx10 Trainee Engineer

    Messages:
    24
    i would like a mod that will draw vectors (from a programmable block) on the grid like you can see the grid pivot.

    i know this will help virtually no one except me, but it would be really nice.

    i asked on the discord if its easy and they said this:
    Phoenix84: simply, you'll want to use a block script to attach to the PB, assuming that's what you always want as your starting point
    Phoenix84: then use MySimpleObjectDraw using the PB position and the grid position

    i would do it myself but that would require me to start learning the modAPI, something that i would rather not get into at the moment.
     
  20. entspeak

    entspeak Senior Engineer

    Messages:
    1,744
    Add the ability to adjust the movement of the sun - the angle in relation to the equator, it's elevation in the sky (more north or south), and it's rotational direction (currently, it goes the wrong way - west to east - and the only planet that could be in the game around which the sun would be moving across the sky in the right direction is Venus.)

    It used to be possible to do this - I did it when I created my Mercury to Mars world notnlong after planets were introduced; but, for some reason, it was removed.
     
    Last edited: Oct 21, 2016
  21. vorneus

    vorneus Trainee Engineer

    Messages:
    48
    To be honest I've wanted a way to modify the SunDisc texture for ages, and to be able to add a lens flare to it.

    Given this is in the easy list it would be great to have it as a quick one and for me, would greatly improve overall atmosphere in the game.

    -Ed
     
  22. Concave

    Concave Apprentice Engineer

    Messages:
    112
    Thrust override increase/decrease rate (kN per second), as a function on the block itself
     
    Last edited: Jan 6, 2017
  23. asterix

    asterix Trainee Engineer

    Messages:
    3
    Navigation on Large Grid

    I would like to have navigation points on large grid for robots. Please note, robots are small grids and also using cable car like build requires half block precision. For example in order to go through doors or because the center of rails in right in the middle.
     
  24. asterix

    asterix Trainee Engineer

    Messages:
    3
    Double Connector
    While creating a rail system I've found a need for a small ship connector with connectors on both sides (with the usual single block frame).

    Also a tube only connector (small grid, 5 blocks long = large block compatible)
    or long neck connector might become handy.
    This is for cases where it needs to go through a narrow window with some other space/collision restrictions not related to walls or blast door blocks.
     
  25. entspeak

    entspeak Senior Engineer

    Messages:
    1,744
    Request: Albedo Shading channel in the _add file for planets.

    Since the red channel is the only one used in the _add file, it would be awesome to be able to use one of the remaining two channels for albedo shading. I currently use the red channel for shading instead of ore markings:

    [​IMG]

    The above image is two textures - MoonRocks for the slopes and MoonSoil for the flatter areas. The shifts in the grays are the result of custom albedo shading using a combination of height and flow maps from World Machine. This creates a more dynamic looking voxel landscape.

    Currently it is possible to do both ore markings and albedo shading, but... it would be nice for people to be able to turn off ore markings in the configs without losing the albedo shading.
     
    • Like Like x 1
  26. Saberwulfy

    Saberwulfy Apprentice Engineer

    Messages:
    292
    I'm looking for Omnidirectional thrusters for mech arm stabilization.

    Normal thrusters take a lot of space and weight, and rotor+(rotor+piston)+piston is heavy for 360ยบ 3-D movement.
    --- Automerge ---
    "Excavator Shove" with the size near of the drill area of effect.

    Advantage:
    - near 0 energy cost.
    - know approximately where you are mining.
    - short length.

    Optionally with:
    - no mouse activation, just on or off ( for prevent accidents and lag).
    - animation of % stored.
    - sound when on/off.
    - rotor hinge.
     
  27. Leaping Tortoise

    Leaping Tortoise Apprentice Engineer

    Messages:
    212
    Hi everyone,

    I'm looking for a mod that requires a ship to be travelling at high speed in order for the jump drive to engage (if possible, in the direction of the jump).

    Eg can only jump if you reach 95% max speed. Or maybe engaging the jump drive causes you to accelerate in the required direction until it reaches the required speed, when the countdown to jump starts.

    Is this possible?
     
  28. mjc4wilton

    mjc4wilton Trainee Engineer

    Messages:
    47
    Okay, cut to the chase:
    Idea: Multiple types of blocks in block definitions (I.E. Have a block be a thruster, a gyro, and a power plant. Would enable 1 block ships for complex items like an x-wing as well as enabling landing gear pistons)
     
  29. tyriael_soban

    tyriael_soban Apprentice Engineer

    Messages:
    113
    Change asteroid spawning behaviors, so instead of just derping asteroids around in random places - you find "belts" or proper clumps of asteroids around the map, maybe roid belts around some planets.
     
  30. sulheru

    sulheru Trainee Engineer

    Messages:
    1
    I was thinking about the radio antennas and the TransferMessage() method. Wouldn't it be more efective to catch the incomming message as an Event? If it is done that way, any Mod developer could catch the incomming message and know exactly from witch antenna it comes in case there is more than one antenna listenning. For example something like this:

    public delegate void IncommingMessageHandler(IMyRadioAntenna antenna, string message);

    class IMyRadioAntenna
    {

    public event IncommingMessageHandler IncommingMessage;

    public bool TransmitMessage(string message)
    {
    // Iteration throught in range antennas
    TargetAntenna.IncommingMessage?.Invoke(TargetAntenna, message);​
    }​
    }​

    This could be usefull if for many thisngs:
    • Intranet comunication
    • ATC Development for spaceports
    • Static gird remote control
    Could we do it with the current method? Sure we could, but that means one programable block for each antenna with exact the same script inside. This is an unnecessary waste of memory specially if you have large worlds.
     
    Last edited: Jul 27, 2017
Thread Status:
Not open for further replies.
This last post in this thread was made more than 31 days old.