Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - ninekorn

Pages: [1] 2 3 ... 16
1
Help section / Re: changing setting of alpha color of lasers?
« on: September 16, 2022, 07:45:48 am »
nevermind for my post here. as per my youtube video here https://www.youtube.com/watch?v=bw1XpB2OBKg&ab_channel=SteveChass%C3%A9 i was able to remove the stars completely from being generated at server start, so i don't have issues with internal color tempering with the background anymore when using stars with that bloom/contrast effect when getting close to one, which makes it easy to concentrate on background color change and laser color, which were really causing an issue when getting closer to a star. With the stars gone, i don't have color contrasts when getting close to no stars as there are none. But it involves changing Void Expanse generation scripts.

I just realized this after 1 week trying combinations of colors after combinations, after work, of trying to fiddle with the laser colors and nebulas/stars background colors and c# directx11.1 hlsl shader to no avail... anyway, i know where to concentrate my efforts now.

It shows that i've been out of modding void expanse for a few months, i had completely forgotten that i had developed that alternative of nostars as shown in my youtube video. I didn't remember i had given up on trying to keep the stars/nebulas. Now i can't say i didn't try with the color combinations that i have tried over a week. I just can't seem to be able to make the lasers black and opaque, it just won't work, and i needed them black since my background was white, but whatever color i put them when flying over a white background and they never were opaque and taking in the white color and because of that my sharpDX shader couldn't make the difference between both of them and it's worse near a star with the bloom/contrast effect when getting close to one it would break the color setup i had in the shader. But now i've got to find a working backup of that project as there are none that works correctly.

nine

2
Help section / changing setting of alpha color of lasers?
« on: September 11, 2022, 04:43:59 pm »
Hi,

i was wondering if there is a setting that we can use for energy weapons color alpha setting, to change the alpha setting to less transparency, as they appear transparent compared to the other weapons when fired. By using a transparent background with no colors and alpha of the backgrounds nebulas/stars at zero, i am able to nullify the stars atmospheric color change when getting close to a star, and by having a transparent background, the backgrounds become white 255/255/255/255 when ingame, which makes it possible to swap the white color for black color with a shader to make the backgrounds black again, from inside of my engine. Also, using transparent background for the nebulas-generic/nebulas-special/stars, i am able to nullify the background color of those nebulas to completely white 255/255/255/255, which makes it possible inside of my engine, to completely modify the backgrounds look of void expanse... The only problem, are the weapons with transparency, which cannot be seen ingame anymore due to this. I can see the particles of the weapons and weapon hit effect, but the weapon muzzle effect and weapon ray are originally set with transparency which i can't seem to find the setting to change that. Because of that, when firing a laser, we only see the particle effects but no ray when firing with no objects/decorations underneath of the player.

Are there any settings for particle speed and ray transparency that we can change in the xml files of items/weapons?

Otherwise, i will try and develop an alternative, or scrap the idea of using transparency inside of void expanse. I will try and provide screenshots putting a visual on what i am explaining so that it's easier to understand.

thank you for the help,
nine


Edit:

screenshot of menu with transparent background and without the voxel virtual desktop. The background looks white:


screenshot of menu with transparent background and with the voxel virtual desktop. I replace the white background with black color in the shader:


screenshot during gameplay with transparent background and with the voxel virtual desktop. I replace the white background with black color in the shader:


screenshot shooting the laser over the station floor and we can see the laser:


screenshot of gameplay without the virtual desktop. The background is white:


screenshot of gameplay shooting laser in the void. Here, the background is transparent, but is showing white in game, but the laser is not 255 alpha and i cannot seem to be getting 255 alpha even when using 1.0. For instance, when setting the color of the beam to red at 1.0 and alpha at 1.0, i am not getting an opaque laser as there seems to be some internal alpha less than 1.0 in the logic of the laser ray texture.

Code: [Select]
<ray>
<width>0.65</width>
<textures>
<texture>
<diffuse>projectiles/beam_fx-mod1.png</diffuse>
<color>1.0;0;0;1.0</color>
<speed>1</speed>
</texture>
<texture>
<diffuse>projectiles/beam_fx-black.png</diffuse>
<color>1.0;0;0;1.0</color>
<speed>0.5</speed>
</texture>
</textures>
<particles>
<!--
<particle>
<color>0.0;1.0;0.0;1.0</color>
<density>5</density>
<size>0.2</size>
<diffuse>projectiles/particle_01.png</diffuse>
</particle>
-->
</particles>
</ray>

Because of this it seems, we cannot see the laser, we only see the particles from the laser that i added in xml script to see where i was firing as the particles seem to be opaque at 255 alpha or 1.0 alpha. This is the problem that i am describing. Without that laser transparency issue, my whole idea of replacing the background with living objects with physics inside of the virtual desktop would be a dream come true. Without fixing this laser transparency, i might be forced to only use the voxel mode without transparency modding:


Edit-14-september-2022: I just noticed while adding the code snippet above that i can add multiple "<texture>" to the "<textures>" section. Let me test some more here to see if i can achieve a 255 alpha or 1.0 alpha by just adding more "<texture>" section to see if i can have a more opaque laser ray when multiple textures are on top of one another.

3
I don't want to derange/bump my posts too much. But here are news on development of my 9sMods:

I am still building my voxel virtual desktop engine to play/mod Void Expanse using my mods and heightmaps as textures in void expanse... I did release a demo of how capable it would be with a little bit more time. I am undone, in fact, not even started in making the heightmaps textures for use in game. I also wanted to bring in some Voice Recognition for AI commands to my drones in the mod i created. You know that in the beginning, i was building my engine just for using my mods of Void Expanse and keeping on developing them. It's just that no one has been helping me whatsoever and i didn't request any help. and it was long to code. i needed a voxel level to surround the player when playing on the voxel virtual desktop to make it even cooler. I understand that my engine has been taking a long time to develop, but there was no one else that could've coded it for me, not that there is a lack of talent on the contrary, but more like who to ask and who would find the time and the money to develop this for me so that i can mod more of Void Expanse with it. So anyway, so i had to code it myself. Also, it just happened to be a much bigger project than i had anticipated at first.

Anyway, i hope the community of Void Expanse has at least tried one of my meddley mods projects for Void Expanse here . nothing was perfect, but it gets someone started in modding void expanse themselves and having a few scripted ideas on how to mod Void Expanse in the most basic form (but they are tutorial drafts, and you can tell by my lack of comments - call them my good waypoints as i develop my scripts that i have left myself and the community to have a basic idea of "how does it work/how to script it/tutorial" when they would Mod Void Expanse). Void Expanse is a great game with infinite possibilities already. But being entirely dedicated to modding it when you know nothing of programming, is difficult and i can't multiply time to work more in programming to achieve more. It takes more time to learn from programmer to programmers as everyones different.

My current engine doesn't make use of a thread pool working on data coming from queues but more like dedicated threads working instantly on arrays passed from the UI thread without queuing (i am trying somewhat of a mechanical gears program architecture by frame - clock-work or more like frame-work? - where all dedicated threads are started once from inside any function and keep working on the data that the UI thread passes on top of it where the thread never misses a single frame that the UI thread is working on, just like the sequence of a gear train/transmission) . It's pretty fast to change the heightmaps value of the voxels to make it look like embossed. But until i build deferred rendering into it, it won't have a good enough performance on old computers. So i gotta keep working on it. Then i'll return to modding void expanse. Now that i am getting there, to a comfortable point where i am trying to develop chunked voxel instancing with deferred rendering, i am hoping to get out of hiatus on modding void expanse in 2022-2023.

Also, i apologize for my recent 3 posts in other threads for intermittent requests to Atomic Torch for help for my Void Expanse savegame error that happens in my 9sMods series. I am unsure about why the salvaging device mod that i made that uses storage.global seems to be causing an issue that i will investigate while i rebuild my mod from scratch. Using the salvaging device once, only once, makes the automatic savegame crash and has been for me. Maybe it's something that i don't understand about Javascripts EcmaScript 5 functions hierarchy where i have too many scripts intertwined within each other that it causes an issue with the memory or the data in my arrays or something... And this error has been plaguing my mods from ever since i started modding Void Expanse, it's happened to me in my galaxy market release, my interior station release, my drone release, etc... It comes and goes, when i start getting that error, i have to revert sometimes a lot of code parts to older backups and restart from scratch because i never found/pinpointed the true culprit of that error in my scripts... But the more that i would mod Void Expanse, the more i would want to mod it without stopping and my Virtual Desktop project that englobes moddable games would fall behind (englobes? for being a template on how to use an external engine with a moddable game) .
My voxel heightmaps Virtual Desktop overlay, where you can see Void Expanse in Voxels can be downloaded here:
https://github.com/ninekorn/sccs-heightmaps-virtualdesktop-SharpDX11.1/blob/main/README.md

You can see yourself play Void Expanse, in voxels... if that makes more sense? Or let's say, your video game has it's screen copied into my engine and from there, i apply voxel displacement values based on the color data that i receive from the screen copy (where with time i could incorporate more logic to simply using the color values and dividing the rgb by 3), but doing this still gives good result (i used as reference an article on the web about using color values rgb for heightmaps if we have no other alternatives that i will put here some other time, and also the rastertek C# samples have a heightmaps example)

Void Expanse on this Virtual Desktop Voxel Instancing Directx11.1 software:


steve chassé aka ninekorn


Edit-2022-september-09th-11h55am: As per my post on the forums a long time ago here: https://forums.atomictorch.com/index.php?topic=1361.msg9628#msg9628
I mentioned my transparent backgrounds tests in void expanse using my virtual desktop engine. But back then in March 31 2021, it wasn't like my recent successes in making a better voxel virtual desktop. I succeeded this year and released my first revision 1.0 in march/april 2022. This is release 1.17932 of my idea on draft for using the voxel instancing virtual desktop engine (my engine, this one, the only, the original, the first on the opensourced market, homemade, genuine, legit), with a moddable game like Void Expanse to mod backgrounds images and much more. This is a draft. playable with keyboard and mouse clicks in revision 1.17920 below but without transparent backgrounds. It's also now working great using the GraphicsCapture type with microsoft edge and having voxel heightmaps activated at the beginning of a capture because of my newly developed F11 fullscreen browser logic but it's not perfect yet. Currently, i am not signing my binaries as i do not know how to do that yet and that is something i will try and do in a near future. Mouse clicks and keyboard clicks get straight through to the game or browser without any interference as i use my engine as an overlay transparent to let microsoft's internal mouse and keyboard clicks go through. This makes sure that it's not required to use pinvoke to send keyboard clicks or mouse clicks to a game or browser.

Compatibility tested:
OS: Microsoft Windows 11
GPU: MSI RX570 and EVGA GTX 960
CPU: Ryzen 2600
Ram: 8GB

My void expanse transparent background mod clean startup:
https://github.com/ninekorn/sccs-heightmaps-virtualdesktop-SharpDX11.1/tree/main/Void%20Expanse/9zModz

or my 9smods/invasion draft google download link is here but you need to disable the DLC to make this work if it works for you as it doesn't work properly for me now.
https://drive.google.com/file/d/1VefBUM3YC4zeJGGVyN_aS5DzZYOJneAH/view?usp=sharing

My voxel instancing virtual desktop engine revision 1.17932. It is a draft, there are some artifacts and the menu UI pixels color is all messed up, i know and i will try and work on that:
https://github.com/ninekorn/sccs-heightmaps-virtualdesktop-SharpDX11.1/tree/main/sccsr14-heightvd-wgrids-1.17932-win11v48%20-%20ve%20modding%20draft
https://github.com/ninekorn/sccs-heightmaps-virtualdesktop-SharpDX11.1/tree/main/sccsr14-heightvd-wgrids-1.17932-win11v48%20-%20ve%20modding%20draft%20backup

My revision 1.17920 with enabled mouse/keyboard clicks for games and browsers. I didn't include transparent backgrounds in this revision but it can be done easily with a few modifications in the shader:
https://github.com/ninekorn/sccs-heightmaps-virtualdesktop-SharpDX11.1/tree/main/sccsr14-heightmapsvirtualdesktop-allinone-wgrids-1.17920-win11v48
https://github.com/ninekorn/sccs-heightmaps-virtualdesktop-SharpDX11.1/tree/main/sccsr14-heightmapsvirtualdesktop-allinone-nogrids-1.17920-win11v48

please understand that this is a concept/prototype/experimental mod for when playing Void Expanse. I am not done developing this yet.

4
I thought it was all of my obj files that were causing issues. As for as far as i remember, i had been exporting from blender and deleting the .mtl file forever. Which in turn was causing issues in Void Expanse as the material file (.mtl) wasn't found for all of my objs. I found that out by testing an opengl c# tutorial obj file loader that wouldn't load the file when the .mtl file was deleted. Void expanse still loads the file but a debug error shows only in the keyboard key ~ console debugger within the game itself and not on the console. I corrected that for the destroyed ship parts re-exporting everything but removing the material file from the setting options. The same bug still happens in singleplayer and multiplayer. I have a couple of things left to test. I am wondering if maybe, it could be the fact that i was using an empty object as a weapon for NPCs that are stationed static in-base, in order to not spawn them a ship when they remain in base. So i added a tiny face for my 'invisible weapons' so that it is barely visible, and i have yet to also do the same thing for the "no ship" inbase NPC characters. Maybe an empty obj file from blender exported inside of Void Expanse is causing the issue but in this case, there are no errors in the game keyboard key ~ console and neither in the server console. Except for that, i have no clue what else could be causing the issue.

I have removed the galaxy market and drones and interior stations from my mod to test it as an almost blank mod but the issue persists when only using the salvaging mod. So i have put the logs of singleplayer and multiplayer and the mod i was using here. Note that the bug starts after salvaging destroyed ship parts, going in a station after or before the savegame happens, then undocking saves the game automatically and the bug happens in singleplayer. In multiplayer, i used the console save option multiple times as per the log and everytime the serialization bug happened but in multiplayer it doesn't crash the server. In singleplayer it crashes the server. That serialization error makes it impossible to save the game even if it doesn't crash the server in multiplayer. The bug happens in the first system. Not sure if the other systems also create the bug.

https://drive.google.com/file/d/1Gife7v5alAeKyesJcDRY9zi5sjOwL_jz/view?usp=sharing,
https://drive.google.com/file/d/1inacD1WRWmBDdGRgog_tiSghwth3mtes/view?usp=sharing,
https://drive.google.com/file/d/1k1fWQl_cChvGJfVwXnvdowfp-1ZK7iAr/view?usp=sharing

there is also one other thing. For as far as i remember i have been using PNG instead of JPG and i know JPG is less heavy in harddrive usage but the PNG file is different than the JPG file. Could it be the PNG files the issue? There is nothing debugging in the consoles though for any errors relating to the extension of those images. Void Expanse loads both PNGs and JPGs but could the PNGs be causing a serialization issue? Also i was wondering, if my mod isn't released on the Steam Workshop, would it be causing that security transparency issue?

I barely read on this, but reading on it, i've found that this error can be avoided in C# when using a header [assembly:AllowPartiallyTrustedCallers] . But i can't use that in javascript EcmaScript5. So if i would release my mod from the Steam Workshop, would my files/scripts be added that header automatically from Steam and redistributed with somehow security transparency embedded somewhere that doesn't crash my program?

https://stackoverflow.com/questions/12092435/system-methodaccessexception-attempt-by-security-transparent-method-to-access-s
https://stackoverflow.com/questions/20252500/attempt-by-security-transparent-method-to-access-security-critical-method-failed
https://docs.microsoft.com/en-us/dotnet/api/system.security.securitytransparentattribute?view=net-6.0
https://docs.microsoft.com/en-us/dotnet/api/system.security.allowpartiallytrustedcallersattribute?view=net-6.0

Thank you for the help,
nine




5
I might be onto something here. I noticed that the original core.cpk devices JS scripts don't have for any of them a single reference to include another lib. I noticed also that the ai JS scripts only include the NpcLib.js script from the libraries. And from the NpcLib.js, there aren't any includes. That might be where i have been going wrong where in my device script i am using include on 4 different libraries.

include(SC_Utilities.js);
include(SC_Salvage_Object_Storage.js);
include(SC_Salvage_Object_Timer.js);
include(SC_Salvaging_Utilities.js);

but none of those libraries have inner includes statements so i always thought that a "single layer of depth" to the include statement wouldn't cause that much issues.  About 30++ minutes and the multiplayer server running and no crash today and i did use the salvaging device a bit... I will test in singleplayer again but most importantly, i will probably remove those libraries and include the utility functions inside of the device script instead to remove that depth of included libraries. I will repost here once i have results.

Edit: meh, the second save on a singleplayer game and the serialization error happened. I did salvage a couple of times... where is the issue?

Edit: i thought maybe it was my cargo check function that really was to try and bypass using GetFinalCache or GetCurrentValue functions. Earlier i was checking the cargo by adding items inside of it and removing it. I thought maybe the sheer amount of items i was trying to add might have been the issue. My old function was:

Code: [Select]
function AIIsPlayerCargoFull(playerID)
{
    for (var i = 0; i < 1; i++) {
        var totalSizeOfPlayerStorage = 0;
        var initialQuantityOfItemsInPlayerStorage = 0;
        var emptySpaceToRemovePlayer = 0;

        var PlayerContainerID = items.GetGameObjectContainerId(playerID);
        var itemsInCargoOfPlayer = items.GetItemsAndCargo(PlayerContainerID);
        if (itemsInCargoOfPlayer != null) {
            if (itemsInCargoOfPlayer.length > 0) {
                if (itemsInCargoOfPlayer[0] != null) {
                    for (var i = 0; i < itemsInCargoOfPlayer.length; i++) {
                        initialQuantityOfItemsInPlayerStorage += itemsInCargoOfPlayer[i].quantity;
                    }
                }
                else {
                    initialQuantityOfItemsInPlayerStorage = 0;
                }
            }
            else {
                initialQuantityOfItemsInPlayerStorage = 0;
            }
        }
        else {
            initialQuantityOfItemsInPlayerStorage = 0;
        }


        items.AddItem(PlayerContainerID, "goods_emptyspace", 100000);
        var itemsInCargoOfPlayerAfterAddingEmptySpace = items.GetItemsAndCargo(PlayerContainerID);

        if (itemsInCargoOfPlayerAfterAddingEmptySpace != null) {
            if (itemsInCargoOfPlayerAfterAddingEmptySpace.length > 0) {
                if (itemsInCargoOfPlayerAfterAddingEmptySpace[0] != null) {
                    for (var i = 0; i < itemsInCargoOfPlayerAfterAddingEmptySpace.length; i++) {
                        totalSizeOfPlayerStorage += itemsInCargoOfPlayerAfterAddingEmptySpace[i].quantity;
                    }
                }
                else {
                    totalSizeOfPlayerStorage = 0;
                }
            }
            else {
                totalSizeOfPlayerStorage = 0;
            }
        }
        else {
            totalSizeOfPlayerStorage = 0;
        }


        var emptySpaceToRemovePlayer = totalSizeOfPlayerStorage - initialQuantityOfItemsInPlayerStorage;
        items.RemoveCargo(PlayerContainerID, "goods_emptyspace", emptySpaceToRemovePlayer);

        if (emptySpaceToRemovePlayer > 1) {
            var someData = { swtc: 0, space: emptySpaceToRemovePlayer };
            return someData;
        }
        else {
            var someData = { swtc: 1, space: emptySpaceToRemovePlayer };
            return someData;
        }
    }
}

my new function is:

Code: [Select]

function AIIsPlayerCargoFull(playerID)
{
    var value = ship.GetTotalCargoAmount(playerID); 
    var somefinalcval = ship.GetFinalCacheValue(playerID, "cargo_capacity");

    var emptyspace = somefinalcval - value;
    if (value < somefinalcval)
    {
        var someData = { swtc: 0, space: emptyspace };
        return someData;
    }
    else
    {
        var someData = { swtc: 1, space: emptyspace };
        return someData;

    }
}

But this change didn't stop the error from happening. Then i noticed this at the top of a device script:

Quote
/*
 Script can contain following functions:
 OnUpdateCache - called when device is equipped or initialized, or some values are changed
 OnStart - called when device is activated (for all)
 OnFrame - called every frame (only for "per frame" mode)
 OnFinished - called when device effect should be applied (only for "per frame" and "on complete")
 */

I am creating my own functions inside of a device script. Custom functions to accomodate the logic for a salvaging device that i developed. Could it be that the devices scripts don't allow any other types of functions that those mentioned above?

6
Hi,

I think ai_enabled answered my question somehow on this post https://forums.atomictorch.com/index.php?topic=989.msg6198#msg6198 but i don't remember even seeing the post where he says:

Quote
Another problem with global variables - we cannot serialize them easily and write into the savegame. So even if we had global variables (shared across all the scripts), it will be very easy to write bad code (which will prevent the game from properly saving the game state). So, we have storage scripting API instead. It's also very limited, but for the most cases, it was enough to get the things done.

So, every global variables that i am creating in my scripts, cannot be serialized and saved during a savegame if i understand correctly? do i need to empty the global variables before a savegame happens, or should i just from now on use the storage API instead for storing the global variables that i need? There is a lot of global variables in the AI scripts i developed in the libs section of my mod and i am currently trying to fix my galaxy market mod, and after that i am jumping on my AI scripts logic. I am not familiar with serialization of code and will go read a bit on that soon.

Thank you for your time answering,
9

Edit: It is not just my galaxy market the issue, it might not even be. I've set my globals variables to be inside of functions instead, so they are local variables for arrays, and the rest is using storage.SetGlobal... Thank you for understanding my frustration here.



I am using storage.SetGlobal for all of my variables that i need to access from other scripts or npcs. Should i use storage.Set instead? Is there a limit to the number of variables that i can storage.SetGlobal to in Void Expanse? It is easy to debug which script or variable is causing issues when you have the source code. When you don't it's a needle in a haystack with that kind of error that doesn't point to anything precise on where to look for the issue.

For instance, i use 4 scripts for the salvaging device. 1 script for the device, 1 script for storing the salvageable items in a global variable, 1 script for checking the player inventory, 1 script for activating the device with a library on specified coordinates.

Code: [Select]

using(npc);
using(console);
using(timer);

var SC_Salvage_Object_Storage =
{
    AddSpaceObjectToStorage: function (system_id, SpaceObjectID, randomYieldToStartOff)
    {
        if (storage.IsSetGlobal("systemid_" + system_id + "_salvage"))
        {
            var toReceiveData = storage.GetGlobal("systemid_" + system_id + "_salvage");
            var objectdata = { sys_id: system_id, id: SpaceObjectID, yield: randomYieldToStartOff, GameTime: timer.GetGameTime() };
            toReceiveData.push(objectdata);

            storage.SetGlobal("systemid_" + system_id + "_salvage", toReceiveData);
            /*var someTest;
            var toReceiveData = storage.GetGlobal("drone_mining_added_" + chosenPosition);

            var droneData = { id: droneid, index: droneIndex };
            toReceiveData[droneIndex] = droneData;
            storage.SetGlobal("drone_mining_added_" + chosenPosition, toReceiveData);*/
        }
        else
        {
            var toSendData = [];
            var objectdata = { sys_id: system_id, id: SpaceObjectID, yield: randomYieldToStartOff, GameTime: timer.GetGameTime()};
            toSendData.push(objectdata);
            storage.SetGlobal("systemid_" + system_id + "_salvage", toSendData);
        }
    },
    GetSpaceObjectStorageLength: function (system_id)
    {
        if (storage.IsSetGlobal("systemid_" + system_id + "_salvage"))
        {
            var toReceiveData = storage.GetGlobal("systemid_" + system_id + "_salvage");
            return toReceiveData.length;
        }
        else
        {
            return 0;
        }
    },


    RemoveFromYield: function (system_id, SpaceObjectID, currentYieldMinus)
    {
        if (storage.IsSetGlobal("systemid_" + system_id + "_salvage"))
        {
            var toReceiveData = storage.GetGlobal("systemid_" + system_id + "_salvage");

            for (var s = 0; s < toReceiveData.length;s++)
            {
                if (toReceiveData[s].id == SpaceObjectID)
                {
                    toReceiveData[s].yield = toReceiveData[s].yield - currentYieldMinus;
                    break;
                }
            }

            storage.SetGlobal("systemid_" + system_id + "_salvage", toReceiveData);
        }
        else
        {
            console.PrintError("the space object doesn't exist in the global array and this message is never supposed to print even with a console debug_reinit. If it prints, tell me. 0");
        }
    },

    SetDepleted: function (system_id, SpaceObjectID)
    {
        if (storage.IsSetGlobal("systemid_" + system_id + "_salvage"))
        {
            var toReceiveData = storage.GetGlobal("systemid_" + system_id + "_salvage");
            var s = 0
            for (s = 0; s < toReceiveData.length; s++)
            {
                if (toReceiveData[s].id == SpaceObjectID)
                {
                    toReceiveData[s] = null;
                    break;
                }
            }

            toReceiveData.splice(s, 1);

            storage.SetGlobal("systemid_" + system_id + "_salvage", toReceiveData);
        }
        else
        {
            console.PrintError("the space object doesn't exist in the global array and this message is never supposed to print even with a console debug_reinit. If it prints, tell me. 1");
        }
    },


    GetSpaceObjectYield: function (system_id, SpaceObjectID)
    {
        if (storage.IsSetGlobal("systemid_" + system_id + "_salvage"))
        {
            var toReceiveData = storage.GetGlobal("systemid_" + system_id + "_salvage");

            for (var s = 0; s < toReceiveData.length; s++)
            {
                if (toReceiveData[s].id == SpaceObjectID)
                {
                    return toReceiveData[s].yield;
                }
            }
        }
        else
        {
            console.PrintError("the space object doesn't exist in the global array and this message is never supposed to print even with a console debug_reinit. If it prints, tell me. 2");
        }
    },
};

Code: [Select]
using(npc);
using(console);
using(timer);

var counterFrame = 0;
var counterDevice = 0;

var SC_Salvage_Object_Timer =
{
    ClearCurrentDevice: function (sys_id, device_id, ship_id, slot_id) //IsWorking
    {
        game.IsShipPlayerControlled(ship_id);

        var playerName = game.GetShipOwner(ship_id);

        if (storage.IsSetGlobal("GlobalIndex_Player_" + playerName))
        {
            var someGlobalIndex = storage.GetGlobal("GlobalIndex_Player_" + playerName);


            if (!storage.IsSetGlobal("systemid_" + sys_id + "_ship_" + ship_id + "_salvage_device_" + device_id))
            {
                storage.SetGlobal("systemid_" + sys_id + "_ship_" + ship_id + "_salvage_device_" + device_id, { swtch: 1, ship_id: ship_id, device_id: device_id, slot_id: slot_id, timer_id: null, reset: 1 });

            }
            else
            {
                var globalSalvageStorage = storage.GetGlobal("systemid_" + sys_id + "_ship_" + ship_id + "_salvage_device_" + device_id);

                if (globalSalvageStorage != null) {

                    if (globalSalvageStorage.timer_id != null)
                    {
                        //timer.AddOrUpdate("CustomOnFrame", null);
                        //timer.AddOrUpdate(0.25, "CustomOnFrame", null, 1); //

                        game.ShipStopSound(ship_id, "mining_process_" + slot_id);
                        visual.DeviceDeactivateEffect(ship_id, device_id, "mining_visual_effect");

                        timer.ClearTimer(globalSalvageStorage.timer_id);

                        var data = { swtch: 1, ship_id: ship_id, device_id: device_id, slot_id: slot_id, timer_id: null, reset: 0 };
                        storage.SetGlobal("systemid_" + sys_id + "_ship_" + ship_id + "_salvage_device_" + device_id, data);


                        //console.PrintError("cleared device timer: " + globalSalvageStorage.timer_id);
                        return 1;
                    }
                    else
                    {
                        //console.PrintError("null timer0");
                        return 0;
                    }
                }
                else
                {
                    //console.PrintError("null globalSalvageStorage");
                    return 0;
                }

            }
        }
    },

    SetDevice: function (sys_id, device_id, ship_id, timer_id) //IsWorking
    {
        game.IsShipPlayerControlled(ship_id);
        var playerName = game.GetShipOwner(ship_id);

        if (storage.IsSetGlobal("GlobalIndex_Player_" + playerName))
        {
            var someGlobalIndex = storage.GetGlobal("GlobalIndex_Player_" + playerName);

        }
    },

    AddDeviceID: function (sys_id, device_id, slot_id, ship_id, timer_id)
    {
        game.IsShipPlayerControlled(ship_id);

        var playerName = game.GetShipOwner(ship_id);

        if (storage.IsSetGlobal("GlobalIndex_Player_" + playerName))
        {
            var someGlobalIndex = storage.GetGlobal("GlobalIndex_Player_" + playerName);

            //storage.GetGlobal("systemid_" + sys_id + "_ship_" + ship_id + "_salvage_device_" + device_id); //, { swtch: 1, ship_id: ship_id, device_id: device_id, slot_id: slot_id, timer_id: timer_id}

            var globalSalvageStorage = storage.GetGlobal("systemid_" + sys_id + "_ship_" + ship_id + "_salvage_device_" + device_id);

            if (globalSalvageStorage != null) {

                if (globalSalvageStorage.timer_id != null)
                {
                    timer.ClearTimer(globalSalvageStorage.timer_id);
                    //console.PrintError("cleared device timer: " + globalSalvageStorage.timer_id);
                }
                else {
                    //console.PrintError("null timer1");
                }
            }
            else {
                //console.PrintError("null globalSalvageStorage");
            }

            var data = { swtch: 1, ship_id: ship_id, device_id: device_id, slot_id: slot_id, timer_id: timer_id, reset: 0 };

            storage.SetGlobal("systemid_" + sys_id + "_ship_" + ship_id + "_salvage_device_" + device_id, data );
        }

        var deviceArray = [];


        if (deviceArray == null)
        {
            deviceArray = [];
        }
        var objectData = { sys_id: sys_id, device_id: device_id, ship_id: ship_id };
        deviceArray.push(objectData);

        var arrayData = { index: deviceArray.length - 1, length: deviceArray.length };
        return arrayData;
    },

    AddCounterFrame: function ()
    {
        counterFrame++;
        return counterFrame;
    },

    GetCounterFrame: function () {
        return counterFrame;
    },

    ResetCounterFrame: function ()
    {
        counterFrame = 0;
        return counterFrame;
    },

    AddCounterDevice: function () {
         counterDevice++;
         return counterDevice;
    },

    GetCounterDevice: function () {
        return counterDevice;
    },

    ResetCounterDevice: function () {
        counterDevice = 0;
        return counterDevice;
    }
};




7
only a video this time of things i am working on. I decided to try and see how "jumping" into a station would look like again. if you are outside of the station, it is not a station anymore, it is now a hull with a collider and it can be destroyed, so this is a step forward for buildable stations although a player would have to jump into a station to see the interior of the station. Also, the station interior now has a roof again. A crate object roof that is removed and added so that players feel more like home. I've also added some tileable perlin terrain and the players can "jump/explore" the planet earth. Inside the planet earth instance/system, the players can go to a maximum Left and Right and Up and Down because i have built a wrapping/limited level that teleports you to the other side of the screen when you reach the maximum distance. This is a demo of my current test bed. there are no enemies added and there are a couple of bugs left to fix left and right.

https://www.youtube.com/watch?v=bw1XpB2OBKg&ab_channel=SteveChass%C3%A9

thank you for watching.
steve

EDIT 2021-april-18: - adding this one day after my post. I've decided to release sccsvd4ve slim version, earlier than expected, in it's unfinished draft condition. the repo download for sccsvd4ve that has a couple of voice recognition commands is now uploaded to github and they work inside of void expanse. you can find it here:

https://github.com/ninekorn/sccoresystems-VD4VE--slim-version--draft

the 9smods/invasion draft google download link is here.
https://drive.google.com/file/d/1VefBUM3YC4zeJGGVyN_aS5DzZYOJneAH/view?usp=sharing

this 9sMods Demo doesn't have any enemies and is just to be tried out to see the wrapping system, the tileable terrain tiles (except the texture that didn't tile properly), the decorations used for planets, the station ship but the collider isn't setup yet for it, and the station interior with doors/containers, and the voice recognition of windows 10.

Prepping the players with a global wide notification that a server update is coming, while playing with the 9sMODs coms device, to advise them their "coms device" won't work properly during that server update is what will remain to do as it really doesn't work when a debug_reinit happens. the rest of the synchronization can be adjusted and tweaked to be tons better. Currently, because of the station activated formations pathfind, spawning a drone activates it's libraries and it lags so talking to void expanses device won't work during the lag. you gotta wait for the server lag to stop. lol, that's how i had intended it to work from the start and although people might find it really far fetched for it to be working, it's actually a very simple solution for synchronizing 2 programs that don't have a compatible API for keyboard keystrokes, and if a server update lag is about to happen, players just have to be removed from using their coms when a debug_reinit is planified. thank you for trying this project. nothing is finished and things are still debugging in the console.

Voice recognition commands:

1. Say computer to activate the menu. You got less than 5 seconds to then activate the other menus.
2. After saying computer, you have 2 choices, say release or retrieve. Although my program recognizes retrieve, it isn't mapped yet in void expanse so you can only release drones for the moment and not retrieve them.
3. Now you can say mining or combat or repair, but only the combat drones are mapped in void expanse. I will work on mapping the rest soon.

Thank you.
steve chassé aka ninekorn

EDIT 2021-april-20:
I forgot to mention:
1. i updated the pathfind with the 9 tile chunk i was talking about inside of this thread here https://forums.atomictorch.com/index.php?topic=969.msg7791#msg7791 and made so that the pathfind is extremely light and per frame if wanted... Although lag remains when any drones are spawned, the first time they are spawned inside of the server because the libraries object arrays are getting heavy in size and i didn't have the time to get back to this and clean this a bit and pinpoint where the lag issue lags and with which arrays.

2. i also provided a super easy javascript script multiplication function, and you can find how it works inside of the script mainwindow.cs of the project sccsvd4ve at line 3422 of that script. The script multiplier function is very basic and has no UI buttons currently so the variables need to be changed in script and i will soon show how to use it. I was able to learn and code this myself 1 week ago approx and since then, my speed to update my scripts has multiplied immensely for anything inside of the lib folder of my mod of void expanse... What this means is a huge increase in the possibility of void expanse 9sMODs drones in formations now that i don't have to manually copy and paste everything by hand and an insane modder speed to make scripts corrections, and with the added blender obj/xml file generator for Ships/hulls and decorations and turrets obj/xml files i have provided and scripted myself, i hope it will make it possible for modders of void expanse have basic tools, to help them mod void expanse to a degree it never was modded before. The script multiplier performance can be increased dramatically for those who understand much better than me how writting to xml files work, among many other things as i still consider myself ignorant in programming and programming languages in general. What the function "public static void sccsScriptAutoCorrectNMultipl y()" does is it multiplies the script formation 1 of the javascript file you want to multiply and it copy pastes everything but changes the formation number to 2 and 3 in new scripts it generates and puts in the folder "multiplied" and how many the modder wants to generate (default 5 and currently my 9smods/invasion need some tweaking to accept more than 5 drones in formation) and it saves the scripts as extension js files ready to use in a folder, and the modder just has to put the scripts in his lib folder after that so that the work is all done in a couple seconds. no need to do anything manually anymore and change all of those numbers by hand for all of the formations positions. First create a folder #VEscriptgen on your desktop and inside of it a folder named original and a folder named multiplied. the moment the program is started, if you set the variable "int scriptMultiply" to 1 instead of 0 in MainWindow.cs, it will generate an identical copy of any of my libs script of formation 1 that you put inside of the folder "original" but only put the number 1 javascripts file in there and it will multiply and copy and paste and change automatically the digit 1 to the digit that the modder wants. It makes it so that any drones in formations have their scripts updated instantly when you take the generated scripts out of the folder name "multiplied" and put them in your lib folder of my 9smods or whatever the mods you wanna build for void expanse. i use the special character "#" at the start of folders names sometimes and because there is the special character "#", they always appear in the top of my folder list when they are sorted alphabetically. If you wanna remove that entirely or put something else there, the variable string folderName = "#VEscriptgen"; is currently at line 3444 of the script MainWindow.cs. I am terribly sorry if my drafts are totally unreadable for beginner coders if they are, but i am trying my best to do everything fast and sometimes i always cut short when comes the time to release because when i've got a working version of something that works, i'd rather share it right away than lose them in my backups shelved stash somewhere and come back to them years later to find some of them not working... it's an annoying/irritating feeling when it happens. lol at this point i'd even say please consider my demos of whatnot all in pre-alpha version for the total drafts that they are. but in all seriousness i am coming soon with tutorials and cleaner drafts and better variable names and the translation references to sebastian lague's youtube pathfinding tutorial but without using any multithreading. In it's current state and without using the timer class, the pathfind is limited to the decisions per seconds of the Decisions(args) of the ai scripts. Oh and the script multiply also work for my scripts inside of the AI folder. If he had planified to translate his tutorial to javascript himself, i am sorry i did it before him but in a draft kinda way because even then i had issues understanding his c# tutorial and even had to name the variables differently so that it would help me understand, so all in due time, i will make sure to reference the variable names correctly as i was looking from the start as a "translation" from c# to javascript rather than "i learned how to do it myself". I prefer always thanking the "teachers" i learn coding from and his youtube pathfinding series is considered a tutorial for pathfinding in c# and i couldn't find anything that suited me then so i wanted to learn how to code it but i had to translate it for it to be working in javascript for void expanse. I succeeded doing a ridiculous version of his pathfind in c# in a coroutine that was working for custom mazes of another youtubers tutorial that i will search for again as i have lost the reference i think. but i didn't share that project either although i might when i get to that working shelved backup. As people should know here and where i am on the elite dangerous forums, i always give references from where i get the tutorials from and where i search for information and where i get it. but before i do the translation to sebastian lague's variable names from what is inside of tutorials 0 to 8 or 9 of his pathfinding series approx, i will ask the permission like i always do also when i ask the unity3d assets store developpers the permission to use their assets elsewhere, out of respect for them. If you are a modder like me, than you know that losing backups of working things is sad and it hurts and it sucks, so please make a backup of your library folder or/and of your whole project before you copy paste the multiplied scripts in your library folder. currently, there is no "reverse" or "undo" option hence why it is the modder's decision to use his generated scripts and paste them themselve to update their own mod. i will soon work on a "reverse" or "undo" option because i am already tired to lose a 5 mins script update and scrap all of my lib folder combat drone script in one shot if i forget to do a backup first when i've got a working thing going on...  otherwise you can scrap your whole lib folder in a sec if you paste terrible stuff right on your good 9sMods libraries or mod variant and believe me, it's a pain to have to search for a working version in your backups if you are an unorganized hobbyist programmer like me so just beware of that when you use this script generator tool.

8
Mods / Re: invasion - 9sMODs -
« on: March 31, 2021, 01:10:55 am »
...out of another self imposed coding challenge of approx 55 days (or much more really, i stopped counting at some point) that i didn't end as of yet but i wanted to release the draft where i am at anyway... self imposed because i was further behind than i thought at merging all of my drafts into one. maybe it's a good thing that my oculus rift broke around the start of february (tried to fix it and broke the pins on the screen connector and mobo connector when only the hdmi soldering probably was loose), no mods of void expanse working out of the box when merging them... every few drafts having months difference and my whole scripts hierarchy changing from scripts to scripts (months after months to years even).

draft DEMO - This project has practically no enemies but in this project i have put the white background which is easily convertible to transparent even inside of virtual reality, as i have done it already and shared a video to ai_enabled and Lurler but i am not sure i had showed them a version where void expanse was running with it's invisible background from inside of virtual reality... but i lost that WIP trailer that i had sent them in private and i lost the original projects in my backups somewhere. My oculus rift headset cv1 is broken but it is not dead yet. this is my best version as of yet to get the drone to use the translated pathfind and sticktopoint.  there is a still a lot of things left to fix. but my main goals for this coding challenge are achieved: the stations unwalkable tiles work for the 5 stations at angle 0 only though and the pathfind is starting or stopping depending on how far or close it is to a station and i incorporated the background i used for my virtual reality tests.

when the drone receives the command to start it's pathfind from the SC_Drone_Station_Manager.js script, it lags the whole server for about a 5-10 seconds for the arrays to be initialized in the scripts but it will lag again after a server reboot when the scripts reinitiliaze with debug_reinit, and this is one of the bugs that i will cover in my next long or short coding challenge. The formations pathfind is working for the 5 stations mining/business/outpost/science/combat at angle 0 degree but not yet for the other angles. I thought getting back to coding javascript in void expanse after so long was going to be easy, well this time it wasn't since it had been so long void expanse had been on the shelf (so that i could move forward for the virtual desktop program instead and bring along void expanse when i was going to be done in VR) and my javascript pathfind translation of the first 9 tutorial videos of sebastian lagues pathfinding tutorial on youtube, was hard for me to re-comprehend the way i wrote it in javascript...

Salvaging doesn't work anymore and no repair and no mining drones and the pathfind works only for a cc drone in formation position 1. will fix soon.

this is a draft, of a working formations pathfind. the perceptron flight helper was setup in this project but i commented it as i had to fix the pathfind and sticktopoint to work in harmony first. I need more time to work on cleaning my draft demos up and when i will have the chance, i will get back to a more similar/identical way of variable names for pathfinding nodes as per how i learned it from sebastian lagues youtube pathfinding tutorial. Although i didn't mention it before, please do consider my earlier heavy release of "demos" to have been rushed releases, but they all are drafts coming from self imposed coding challenges where i don't take a "end/conclusion" timespan to clean up my drafts to make everyone happy although it would be my goal to make you all happy. Currently, this is the best i could achieve in 55 days++ to continue on my series of additional things for my 9sMods.

To have the onboard computer be displayed, you have to read the console screen and get between 4 to 10 ticks of "holding down the keyboard key where the onboard computer is located on your ship". If anyone tries this demo, you might notice a lag hanging the main thread coming from the script SC_Drone_Station_Manager.js but this lag/bug from my scripts doesn't happen on my amd ryzen 2600 but it happens on my amd FX-8350 so i couldn't notice prior to wanting to release it and test it.

there is still a lot of things left to fix overall so i won't release anything for the moment on the steam workshop but instead i just leave it here also as a demo/draft/coding challenge.

https://drive.google.com/file/d/1NzsyvKWMoOY97_bRGree3-CivWla7iuz/view?usp=sharing

Edit 2021-mars-31-07h59pm: my bad - i just noticed the visual tiles aren't being displayed correctly for the business station and military station so everything else except the outpost station might be bugged. and the walkable path might still not be working for any other stations than the outpost 01. I am reviewing this, but nonetheless this project has been my base project for 55++ days now and i will stick with it. hopefully coming anytime soon with a fix for the other stations. i ordered tons of arduino elegoo parts to make my own virtual reality headset since my oculus rift cv1 is broken and dismantled, but now it seems i need to find a way to try and connect a 2.8 inch geeekpi 17pin 2 row connectors to the arduino uno r3 elegoo or the elegoo prototype shield and im missing wires for that and i've got to figure out if that is even possible once one screen is powered on, to power another one on the same build of 1 prototype shield and 1 arduino uno. this christmas i purchased myself an ender 3 barebone edition, and the idea of building my own virtual reality headset has been in my head for quite some time and the printer would print any custom blender object i am making as i have already tried it. electronics just feels like another pile of headaches. i just put that aside this morning (temporarily) and i am trying to study at teamtreehouse while programming void expanse mods and finishing once and for all my packaged/chunked coding challenge of 2-3++ years with this virtual reality desktop displayed as heightmaps for directX non-vr games and void expanses ability to change the jpgs backgrounds to alpha rgbA value to 0 is super easy.

9
Mods / Re: RELEASED - 9sMODs - Part 2.3.1 BETA - RELEASED
« on: February 06, 2021, 08:50:51 am »
DEMO Project - destructible station attempt fail and i didn't developp this further yet. its working so it's a win, but it's a fail because it is incomplete. The colliders aren't calculated yet by script. But nodes are setup so that the exported xml files work for expanse 1. something still wasn't right with the units conversion from blender to void expanse 1. and those scripts in python that i developped for the void expanse 1 xml parts are the only ones i developped for the moment in python, as i don't know much of python. and as i had always intended it to be, all of this stuff was supposed to be released for my 9sMODs in void expanse 1, which is now the invasion.mpk mod as i am returning back to that name. but i was working on my other projects, in order to loop back to this mod and now i realize that doing all of this stuff by hand, is just not going to cut it nowadays. as i said, void expanse 1 is procedural and i am a modder here so i mod void expanse 1.

https://drive.google.com/file/d/1b0-1TenOs7O2GQhaZr3qBIiaF3S6pdXB/view?usp=sharing

2021-feb-07 - Using adddecoration for a non-collidable station floor tiles makes it possible for players to be able to grab crates inside of the station inner perimeter, instead of having to push them outside of the base in order to grab those crates. 9sMODs at update 2.3.1 had a floor part of the station obj model or something else that wasn't make it possible to grab crates... The drones mod still didn't incorporate a retriever drone, to retrieve crates inside of the base. But the retriever drone demo for the scrap metals created when the ship is being repaired on the platform has the ability to fetch a crate as i was unable to make a normal grappler work on an NPC ship although they work on a player ship. as i had worked on and intended it to be for my mod, to be played on void expanse 1, i am continuing to work on it but doing everything by hand is annoying me now so i am thinking about shortcuts.

DEMO python blender 2.79b scripts and assets that i made for the station floor generation and the station walls generation with xmls as per the destructible mod attempt fail and i didn't developp this further but it can be used as a template for an easy blender 2.79b to void expanse 1 xml parts, as i always intended those generators to be. This contains 2 blender projects and some extra scripts i was using for those station parts that generate xmls but with blender's python instead of custom c# programs. Also included are scripts for generating hulls with textures and objs and xml files directly from inside blender 2.79b. In order to break the floor station parts which aren't collidable, i would have to assign their location x/y to a neighbooring wall in script and when that wall part is destroyed, the neighbooring floor tiles would still be able to be destroyed at the same time but with scripts and logic behind the floor breaking apart. But there is already an API function to get the projectiles in the system so calculating the direction of where the bullet is going and i could even destroy the tiles underneath of where the bullet is going and since the floor underneath is not collidable, the bullet moves over the tiles and everywhere the bullet goes could leave a path of destroyed floor tiles underneath of it. I will try and see if i can add this to a destructible station generation 2 demo. Modders will have to manually create a folder "hulls" on their desktop and change the script output "path" to that folder for the blrnder 2.79b to work. but i will have to loop back to this:

https://drive.google.com/file/d/10mSpL86ZY9KXVZCfBfIo7MnI5Mz6qCPa/view?usp=sharing

DEMO Project - Elite Dangerous MOD startup only with limpets and cubes spawning on asteroids for limpets asteroids retrieval but the limpets retrieving the asteroid parts isn't working anymore. this is my old version of the ai scripts. I've built the limpet but there are no textures yet for it. Also you can spawn a couple of cubes or (any other object - if you make those objects in blender or elsewhere and modify the script) in a grid with an easy onboard drone computer option. you gotta purchase the mining device (with an asteroid icon) in the shop and use it as a mining device in order to spawn cubes right on the asteroids that the player is mining and purchasing the onboard computer and drones in the shop in order to spawn the limpets or grid objects:
https://drive.google.com/file/d/1DMHym1tTf82Vq4XGOxovpiSB6XVtow_L/view?usp=sharing

galaxy market scripts - easier to read. but i need to make a final function check for items to successfully be sold to one player only and with the current version in the 9sMODs there can be cheating and annoyance of the weapon being sold twice but only one player getting the item. if 2 players are clicking to buy the same thing at the same time and are at the last step prior to being charged, if one confirms the purchase before the other, one pays and receives no items. and it doesnt give a console error, what it gives is just an angry ranting and raging player lmfao. a simple fix would be a last confirmation to see if the item still exists in the station items or not when the player wants to confirm his shop item buy, and even make sure the player cash isn't retrieved at all. looping back to this soon.
https://drive.google.com/file/d/19aOTRilRKBzrS5MT1SdW56f9NVyUCJSg/view?usp=sharing

DEMO Project - generation 2 retriever drone with a better precision and less hesitation moving between tiles to retrieve scrap metal. but the stations have no colliders setup in here and crates are spawning for the pathfind to be seen working. a couple of things to fix/tweak here too but i much prefer the speed of this one:
https://drive.google.com/file/d/1fBi3m7bA7WOIH1patIe07qqtoEFcj0pt/view?usp=sharing
Old youtube video that shows the gen2 retriever drone and containers but i removed those containers from the station models in order to have containers that can be separate models and the containers models are in one of those demos files but the drone pathfind wasn't leading to those containers and the retriever drone wasn't putting the scrap metals in those containers. https://www.youtube.com/watch?v=Hzt4QMw0tnA

DEMO - scripts only - For the 5 stations unwalkable tiles scripts. I was only able to make the unwalkable tiles work for the outpost01 station and i have to rotate the pathfind position for the rotated stations also. I am trying to move forward and spend some more time on this but i am sharing them now before i lose those files again in my mess of a desktop:
https://drive.google.com/file/d/1UnDtph0I_54LNlelc9FEJkH76m-MAS9g/view?usp=sharing

i apologize to the devs for the spam post. I am getting more organized on making my descriptions less convoluted but my demos/tutorials are backups of working things that i will all put in the 9sMODs and some of those working backups are parts of working elements needed to make the whole thing work, but those demos need a little bit more love in order to have a thinner description to mention all the non working things in them. everyone could do the same with their own mods of startrek and starwars and eve online etc with their own generators. but those demos/tutorials can be separately tried and they are easier to understand when they are apart... you can use those demos/tutorials as reference to build your own generators if you don't have any, as those are super easy to read but i will have to comment them soon if i can. i am thinking of going back to my first mod name which was invasion.mpk . it's a more generic name. and remove all of those underscores for a more generic/original look instead of trying to put my first and last name initials on every variables when i create stuff in ecmascript5. i am sure it gets people tired of those unreadable scripts of variable names that are hard to figure out hence why i decided to release a readable variable name of the galaxy market. it's taking more and more time to manually make, an ever increasing amount of scripts in the library folder, and having to multiply by 5 formations an amount of 7scripts for the current pathfind and i would have 35 scripts to make corrections by hand so it is not going to cut it manually compared to using scripts generators to increase the amount of drones in formation.  I didn't have the time to move forward on this and i decided to stop multiplying right away the pathfinding scripts by hand and now i am thinking of going procedural for those js scripts too.

I shared the station interiors blender files and the original rebuilt in gimp void expanse icons and shared them here
https://forums.atomictorch.com/index.php?topic=1224.msg7129#msg7129
but if anyone misses any assets for those generators or demos to work, please feel free to contact me and i'll be sure to loop to it in priority.

---------------release---------------
- invasion.mpk mod download - 9sMODs 2.3.2
https://drive.google.com/file/d/1KM_CI3MyUkS22zO7A7hHOxcQZ-WgXtTb/view?usp=sharing
this demo has the comms device menu, which is a basic ladder. But the drone manager Menus aren't working anymore. I didn't remove them on purpose, and if i have a chance within 1-3 days, i will fix this.

invasion.mpk - is a merging of my 9sMODs with my demos/tutorials. But i only invade with forum posts of demos/tutorials, until invasion.mpk invades void expanse 1 with tons of new stuff. The mod isnt finished yet but im still working on it:

it includes:
1. the galaxy market,
2. the mining/combat/repair drones,
3. unbreakable station interiors (they cannot be broken yet),
4. energy weapons additional items but there can be tons more with the easy to learn generator i built, but the settings of those generators aren't completely setup yet. i am working on this still.
5. destructible ships with parts that can be salvaged. There aren't parts for the aliens ships yet so it won't work on alien ships.

energy weapons testing. I added a couple of energy weapons from my generator to have players test them:





---------------release---------------

10
Mods / Re: RELEASED - 9sMODs - Part 2.3.1 BETA - RELEASED
« on: February 04, 2021, 07:01:23 pm »
DEMO - pathfind for station debug project. In order to have the pathfind fire up, you have to hit the drone with the laser and the drone pathfind could start up and special objects are created to show that the pathfind works (TODO - option to fire up the pathfind inside of the onBoard computer). I am not sure if in this version retrieving the drone and rereleasing it is restarting the pathfind, but a debug_reinit reinitializes the pathfind.
https://drive.google.com/file/d/1ujomjVJ-GmSqx_TLP_ybbrGRdcj6cW-w/view?usp=sharing




i tried the pathfind on other stations the other day and it wasn't working. the pathfind wasn't discovering the walls of any other stations except the outpost01. the moment i have updates, i will post them.



old demo - drone retriever and drone repair project. To make it work-ish, you have to stand on the repair platform and press the repair button. A scrap metal is created next to the repair platform after you are getting laser shot at repaired and the retriever drone is then going to get the scrap metal
... for station processing in a later version that has station garbage  containers. Will work tomorrow in finding that project when the snow blizzard winds stop shaking this village electricity installations... The use of addforce to control the scrapmetal when the retriever drone grabs-ish the scrap metal was an attempt of doing it but i didnt tweak anything there since.
https://drive.google.com/file/d/12YWcoEiiRDrzuqaMKaj6E1tX18ra2kLV/view?usp=sharing

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

DEMO - GENERATOR - unfinished Generator Shop Textures Lots of work to finish there.
Gimp Files required for the generator:
https://drive.google.com/file/d/11ot-hJEjqcbJyO1uY69deZWV_vMyZMed/view?usp=sharing

The visual studio project for the generator:
https://drive.google.com/file/d/1QeXM6MI9S9lLOFBsqINgktGjjtS_Vr1-/view?usp=sharing

I made this generator but since it was unfinished, i never released it. Textures are generated but the xml files are incomplete hence why i didn't introduce it yet in my 9sMODs.
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
DEMO - GENERATOR - Energy weapons generator - unfinished state:

It was faster than i thought to fix a couple things, but i will have to loop back to working a bit on it so that it generates the weapons directly in the Void Expanse mods folder but i found a blank xml file in my earlier tests today so there are still things to fix. I wanted my generators to keep the original icons looks. But hopefully if one day i would have the time to get inspiration from the textures in mods like "Breaching The Core" and the others that were released a long way back. I didn't want to release this generator yet before i was able to make better icons and fix the weapons damage and the rest of the settings. But here it is anyway. Ill loop back to this later but the weapons that it generates are supposed to work already in void expanse if you put them in the correct mods folder. But the items names in the void expanse shop are the names of the xml files which isn't super intuitive. I made those generator programs by figuring out myself how to use xmlwriter nodes and it's super easy to learn with bits and info on gamedev forums but when you have a template of how it works approx after one finishes to work on it and shares it, it's easier to learn but as a modder principally, i'd rather start sharing a couple projects here and there if it can help anyone developp their own mods.

Gimp Files required for the generator:
https://drive.google.com/file/d/1BT1ZZcF-Mm717y8C27kQDONyMA0jtcHt/view?usp=sharing

The visual studio project for the generator:
https://drive.google.com/file/d/15XWHBQVSKbPoMFkbq3ikK4caZZiryhOi/view?usp=sharing

posted here a long time ago https://www.youtube.com/watch?v=DKeEzVCNRTc&ab_channel=SteveChass%C3%A9 in 2017, but since it was also unfinished, i shelved it and never shared it... I should have released this tons of time earlier but i hate releasing stuff in unfinished states. But looking at it another way, if it gives anyone the idea to build something like this also on their own, they will have an easy template to follow if they wanna but it is currently uncommented as i didn't have the time to work on a tutorial for it. Sharing them now is better than never sharing it at all... I have to work on the unwalkable and walkable tiles for the rest of the stations for my 9sMODs to finally work on the mining drones. but man it's really long to manually write all of those generators. But when i have the time to work this out and fusion the generators into a single program, i will. I am sorry for the spam of releasing parts of my projects here and there and maybe switching to a huge forum post instead should have been the right idea from the start... i was getting eager to release everything for void expanse... my apologies atomic torch for not releasing this sooner but it wasn't perfect and an imperfect mod although it could have been if i had worked longer on it then before getting tired of writting and developping all of those lines of code manually, started to be very long and tedious and annoying. Maybe it could have peaked interest, but what about finally fusioning all of those tiny little projects together and trying to reach 9sMODs series 9.9.9 right away... Forget about it man, i am not gpt-3 and it would take me forever manually... there are no modders that will be able to invent anything when machine learning that can build websites also build game mods, but instead maybe humans would be quoted and marked on how good their skills were at trying to developp something that was already developped by a machine learning artificial intelligence and be graded on their work.
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

DEMO - GENERATOR - generic booster procedurally created... but it's unfinished still. Raytracing texture2d PNGs/JPGs generators will do a better job than this...

PNG files:
https://drive.google.com/file/d/12Rb4ZomAZcl-IW2B1aN-cOiZk8sAyI1E/view?usp=sharing

Procedural booster:
https://drive.google.com/file/d/1Xcp79L4mHCp87IgD8JcRnIEuAsGc1C-a/view?usp=sharing

Procedural booster: resetupped the boosters fins to be generated and armor type to be specific to settings later on. Added a bit of colors on this project before i went and lost hours again on those unwalkable tiles that still won't work on those other stations and i am about to remove the hairs out of my head out of frustration. So i went and lost a couple of minutes in this easy resetup of the booster fins and different fuel/energy color on the sprites and i put back those screws in place... the drone pathfind isn't working for any other station than the outpost station and i am stuck there trying to make it work. This version only contains my first and third attempts at the booster. i cannot find my second attempt booster that looks like a vase and it's irritating me... and it is irritating me even more in this disorganisation of mine to lose minutes after minutes trying to put all of it together and never having those unwalkable tiles for the other stations working. keeping my cool and removing the dust on those backups that were supposed to work out of the box where i left them or not finding them at all and it gets irritating. i am trying to put pieces by pieces back together of how it used to look when i was proud of posting it and achieving it, but it wasn't ready yet and that's what happens. backups laying in the midst of a disorganized desktop and trying to find all of it in one instant never works. trying to get organized as i move forward. i think the xml files for this generator aren't working yet. 2021-feb-06-04:44am.
https://drive.google.com/file/d/1L3jnO26MtBQnh5kV3Z-9Qib1Ku_1lVxO/view?usp=sharing


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

I have another type of booster that looks like vases that i will try and find again lying somewhere on my hardrive.

Update 2021-feb-05: getting discouraged but i am working on it.

https://ninekorn.imgbb.com/












11
Mods / Re: RELEASED - 9sMODs - Part 2.3.1 BETA - RELEASED
« on: January 07, 2021, 02:41:02 am »
i was able to implement microsoft 10 voice recognition inside of void expanse using simple keystrokes. There is still a lot of work to do. i explained how i was going to do that somewhere maybe on the forums here but i can't find the post anymore so i'm posting the video demo here.

updated video - https://www.youtube.com/watch?v=ue9NcV2POXk&ab_channel=SteveChass%C3%A9

thank you for watching.
nine

N.B. i had a bad mood yesterday after 1 hour of failing to record a proper demo. I decided to reupload the whole thing today with testing the current Win10 voice recognition to void expanse menu selector.

12
 -oculus rift cv1 only -

Virtual Desktop for running video games in Virtual reality using the ab3d.dxengine and ab3d.OculusWrap and ab3d.dxengine.OculusWrap. but only 2 void expanse keys are mapped i think, and the whole 3rd person controller isn't finished yet. it's still very ugly and probably no one would want to pay for those projects anyway in their current state. They are drafts and weren't even ready for release anywhere on steam or the oculus store as everything is still unfinished.
https://github.com/ninekorn/sccs---wpf-virtual-desktop-using-the-ab3d-dxengine

Virtual Desktop for running video games in Virtual reality using the ab3d.oculusWrap only. no controls mapped yet for void expanse.
https://github.com/ninekorn/SCCoreSystems-rerelease

i didn't want to revive this old thread but i thought i had lost all of my backup projects at the virtual desktop program for void expanse. but trying to sort a bit of my projects on this unorganized backup drives and emails and i didn't realise that the project had been right under my nose while checking if the controls were mapped in void expanse or not... Some of them are and it's easy to map the rest. I thought i should just release it as soon as possible even in it's unfinished state, as a draft repository that i should just keep updating as i program... It was such a wrong idea to keep all of my working basic starter programs including my own virtual desktop. I should have shared those programs when the oculus rift cv1 was still a bit more popular in 2018. it's better than never though but also it's only last year 2020 that i started uploading my first projects on github, i didn't even know how to upload anything there before...

but the keyboard clicks and mouse aren't completely mapped to the Oculus Touch controllers yet on any of my Virtual Desktop projects.

This only works with the oculus rift cv1. so there is nothing really that exciting anymore except that the idea can be multiplied to cover tons and tons of other 2d video games which are also moddable. I thought there could have been a market for that and i wanted to start with the virtual desktop for void expanse, with the virtual desktop working for elite dangerous too. But i am having a buggy time trying to make the overlay work for steamVR in elite dangerous.

I hope the atomic torch team won't mind me posting this message here today, as it was really long in the making and still isn't perfect, but at least everyone now knows where i am at.




13
Mods / Re: NEWS - 9sMODs - Part 2.3.1 - NEWS
« on: August 14, 2020, 05:47:40 pm »
Station Interiors are now included.
Destroyable ship parts on enemy deaths (excluding alien ships). You can now salvage those destroyed ship parts.
Ability to spawn both Combat and Repair Drones and Mining Drones
Including the Galaxy Market.
You can access the Galaxy Market and spawn drones from the OnBoard Ship Computer that you can get at any stations.

https://youtu.be/5K_Uw8NCfBg
https://youtu.be/LAFuRnoIj_U
https://youtu.be/thQ1AA6Yq7A
https://youtu.be/50pEKG8--yM

There is still a bug with serialization of the savegame and it is a needle in a haystack to find it. I will keep working on it. But for the moment, if the game crashes at save, you will need to reload the server and use your latest save.
Also, i forgot to put a custom icon for the new Salvaging device.

Edit 2020-08-15 fixes:
Removed a unused item.
Added icon for the salvaging device and made it available through the shop.

14
English: using Brollof's linear Simple Perceptron found here https://github.com/Brollof/SimplePerceptron , i have made a gimbal machine learning system for the x/y/z axis.
Français: J'utilise le Perceptron Brollof Simple et linéaire que vous pouvez trouver ici https://github.com/Brollof/SimplePerceptron et j'ai construit un systèmes de gimballes "machine learning" pour les axes x/y/z.

my machine learning compass and gimbal projects are available here: https://github.com/ninekorn/SCCSCompass
mon projet de machine learning boussole et gimballes sont disponibles ici: https://github.com/ninekorn/SCCSCompass




current known issues: the dot product by itself to slow down high speed rotating gimbal needles is not enough. i will soon lerp this or use both dot product and lerp.

it will be coming in my 9sMODs series for Void Expanse for the ship formations and hopefully more. it's already "working" for the rotation left/right and thrust front/back but i've got the wrong settings and i am missing some very important variables so it's currently failing. i need more time to work on this.



//not available yet: other project using parts of this system:
English: A planet type "voxel minecraft" shooter game and a machine learning gimbal that follows the players movements🙂. i built this game. not available anywhere else. work in progress
Français: Un shooter de planètes type "voxel minecraft" ainsi qu'un système de machine learning gimballes🙂. c'est moi qui a construit ce jeu. présentement non disponible ailleurs. en développement .










15
my first git project. https://github.com/ninekorn/SCCSCompass .  A machine learning compass. it can also be a "direction bullseye" for turrets to aim at and mix that with the asset "Projectile Helper" of Unity3D and you've got a very nasty turret defense system for any games.

using the https://github.com/Brollof/SimplePerceptron

my compass is not perfect but it is very good still in it's current state. i am currently modifying my compass in order to have drones using machine learning in order to get into formation. it's getting there slowly but surely.

Pages: [1] 2 3 ... 16