Jump to content

[KSP 1.12.x] kOS v1.4.0.0: kOS Scriptable Autopilot System


Dunbaratu

Recommended Posts

I have a problem with my Kos script where it wont launch my falcon 9. I'm using the tundra mod and the script should be able to run it. What it's supposed to do it launch the rocket get the other stages to orbit while the first stage does a boost back and lands back on the launch pad. When I press 2 (the action group to toggle the control thingy for KOS) nothing happens. BTW I did not make this script I watched a tutorial for space x landings here are the scripts

Script 1: 

// Ah yes
// Mission Setup


wait until ag6.

missionSetup(

    // Will change depending on mission

    "ASDS",  // ["ASDS"] | ["RTLS"] | ["AOTL"] | ["EEHL"]
    500000,  // Target Orbit (Meters) (Station Freedom - 210000)
    28.6,       // Target Inclination (Degrees)
    "Cargo",  // ["Cargo"]
    false // Wait for launch window? (true / false)

).

function missionSetup {

    parameter lMode, tOrbit, tInc, pType, window.

    clearscreen.

    // LandingMode Setup
    print "Landing Mode: " + lMode.
    if (lMode = "ASDS" or lMode = "AOTL") {global a is 120. global fuelToLand is 5000.} // 80
    else {set a to 130. set fuelToLand to 5800.}

    // TargetOrbit Setup
    if (tOrbit < 100000) {print "Target Orbit too low: " + tOrbit. abort on.}
    else {print "Target Orbit: " + tOrbit.}
    global atmosphericAlt is body:atm:height.
    global targetOrbit is tOrbit.

    // TargetInclination Setup
    if (tInc > 90) {print "Target Inclination too high: " + tInc. abort on.}
    else if (tInc < -90) {print "Target Inclination too low: " + tInc. abort on.}
    else {print "Target Inclination: " + tInc.}
    global targetInclination is tInc.

    lights on.

    // PayloadType Setup
    print "Payload Type: " + pType.
    if (pType = "Cargo") {global hasFairings is true. global fairingSepAlt is 80000. cargoFlight().} // 90 timer

}

// Other Variables

function pitchOfVector {

    parameter vecT.
    return 90 - vang(ship:up:vector, vecT).

}

// Cargo Ascent Functions

function cargoFlight {

    // Steeringmanager Setup
    set steeringmanager:rollts to 25.
    set steeringmanager:maxstoppingtime to 10.

    set orbitalInsertionBurnLock to true.

    // Script Setup

    runOncePath("0:/lib_lazcalc").

    // Liftoff  

    toggle ag2.
    wait 10.
    stage.
    lock throttle to 1.
    wait 2.
    stage.
    lock steering to up.
    wait 8.

    print "Liftoff".

    wait 1.5.
    if verticalSpeed > 1 {
        print "Nominal liftoff".
    } else {
        print "Abort activated".
        abort on.
        shutdown.
    }

    // Functions

    cargoAscent().
    cargoMeco().
    cargoSecondStage().
    cargoOrbitalBurn().

}

function cargoAscent {

    local azimuth_data is LAZcalc_init(targetOrbit, targetInclination).

    local slope is (0-90) / (1000 * (a - 10 - a * 0.05) - 0).

    until (ship:liquidfuel <= fuelToLand + 100) {

        local pitch is slope * ship:apoapsis + 90.

        if pitch < 0 {

            set pitch to 0.

        }

        if pitch > pitchOfVector(velocity:surface) + 5 {

            set pitch to pitchOfVector(velocity:surface) + 5.

        } else if pitch < pitchOfVector(velocity:surface) - 5 {

            set pitch to pitchOfVector(velocity:surface) -5.

        }

        local azimuth is LAZcalc(azimuth_data).

        lock steering to heading(azimuth, pitch).

    }

}

function cargoMeco {

    wait until (ship:liquidfuel <= fuelToLand + 100).
        rcs on.
        set currentFacing to facing.
        lock steering to currentFacing.
        wait until (ship:oxidizer <= fuelToLand).
            lock throttle to 0.
            lock steering to currentFacing.
            wait 0.5.
            print "MECO".
            rcs on.
            toggle ag8.
            stage.
            print "STAGE SEP".
            wait 3.5.
            lock throttle to 1.
            print "SSI1".

}

function cargoSecondStage {

    lock steering to currentFacing.
    wait 5.
    lock steering to prograde.

    when (ship:altitude >= fairingSepAlt and hasFairings = true) then {

        stage.
        print "Fairing sep".

    }

    when missionTime >= 280 then {
        print "Signal Kermuda, Stage 2 FTS Safed".
    }

    wait until (ship:apoapsis >= targetOrbit).
        lock throttle to 0.
        print "SECO1".

    wait until (ship:altitude >= atmosphericAlt).
        set orbitalInsertionBurnLock to false.
        print "Atmospheric Exit".
        print eta:apoapsis.

}

function cargoOrbitalBurn {

    set targetVel to sqrt(ship:body:mu / (ship:orbit:body:radius + ship:orbit:apoapsis)).
    set apVel to sqrt(((1 - ship:orbit:eccentricity) * ship:orbit:body:mu) / ((1 + ship:orbit:eccentricity) * ship:orbit:semimajoraxis)).
    set dv to targetVel - apVel.
    set myNode to node(time:seconds + eta:apoapsis, 0, 0, dv).
    add myNode.

    lock steering to lookdirup(ship:prograde:vector, heading(180, 0):vector).

    set nd to nextNode.
    set max_acc to ship:maxthrust / ship:mass.
    set burn_duration to nd:deltav:mag / max_acc.
    wait until nd:eta <= (burn_duration / 2 + 60).

    set np to nd:deltav.
    lock steering to np.
    wait until vang(np, ship:facing:vector) < 0.33.

    wait until nd:eta <= (burn_duration / 2).

    set dv0 to nd:deltav.
    set done to false.

    until done {

        wait 0.
        set max_acc to ship:maxthrust / ship:mass.

        lock throttle to min(nd:deltav:mag / max_acc, 1).

        print "SSI2".

        if vdot(dv0, nd:deltav) < 0 {

            lock throttle to 0.
            print "SECO2".
            break.

        }

        if nd:deltav:mag < 0.1 {

            wait until vdot(dv0, nd:deltav) < 0.5.
            lock throttle to 0.
            print "SECO2".
            shutdown.
            sas on.

        }

    }

}

 

Script 2:

// Elixer Space Company - ASDS Script [version 0.3.1]


// Landing Parameters


parameter landingZone is latlng(-0.0972081051142032, -74.5576756827403).


// Initialization


wait until ag8.
rcs on.
set currentFacing to facing.
lock steering to currentFacing.
wait 3.


// ASDS & AOTL Functions


    clearscreen.
    print "Elixer Landing Software".
    print "-".

    set steeringManager:maxstoppingtime to 5.
    set steeringManager:rollts to 20.


    // Landing Variables


    set radarOffset to 21.15. // This must be changed to the height of the landing vehicle (on gear)
    lock trueRadar to alt:radar - radarOffset.
    lock g to constant:g * body:mass / body:radius^2.
    lock maxDecel to (ship:availablethrust / ship:mass) - g.
    lock stopDist to ship:verticalspeed^2 / (2 * maxDecel).
    lock idealThrottle to stopDist / trueRadar.
    lock impactTime to trueRadar / abs(ship:verticalspeed).
    lock aoa to 30.
    lock errorScaling to 1.


    // Guidance Functions


    function getImpact {
        if addons:tr:hasimpact { return addons:tr:impactpos. }
            return ship:geoposition.
        }

    function lngError {
        return getImpact():lng - landingZone:lng.
        }

    function latError {
        return getImpact():lat - landingZone:lat.
        }

    function errorVector {
        return getImpact():position - landingZone:position.
        }

    function getSteering {
        local errorVector is errorVector().
        local velVector is -ship:velocity:surface.
        local result is velVector + errorVector*errorScaling.

        if vang(result, velVector) > aoa
        {
            set result to velVector:normalized
                        + tan(aoa)*errorVector:normalized.
        }

        return lookdirup(result, facing:topvector).
    }

rcs on.
lock steering to srfretrograde. 
brakes on.
wait until ship:verticalspeed <-700.
    lock throttle to 1.
    lock aoa to -5.
    lock steering to getSteering().
    toggle ag1.
    toggle ag7.
    rcs off.

wait until ship:verticalspeed > -200.
    lock throttle to 0.
    lock aoa to 17.5. 
    lock steering to getSteering().
    steeringManager:resettodefault().
    rcs on.

wait until alt:radar < 12000.
    lock aoa to 10.

wait until alt:radar < 7000.
    lock aoa to 5.

WAIT UNTIL ship:verticalspeed < -10. 
    rcs on.
    when impactTime < 2.75 then {gear on.} 

WAIT UNTIL trueRadar < stopDist. 
    lock throttle to 1.
    lock aoa to -3.
    lock steering to getSteering().

wait until ship:verticalspeed > -45.
    toggle ag1.
    lock throttle to idealThrottle.
    lock aoa to -2.
    lock steering to getSteering().

when impactTime < 0.75 then {lock steering to heading(90, 90).}
   
WAIT UNTIL ship:verticalspeed > -0.1.
    lock steering to up.
    set ship:control:pilotmainthrottle to 0.
    RCS off.

 

Script 3:

//This file is distributed under the terms of the MIT license, (c) the KSLib team
//=====LAUNCH AZIMUTH CALCULATOR=====
//~~LIB_LAZcalc.ks~~
//~~Version 2.2~~
//~~Created by space-is-hard~~
//~~Updated by TDW89~~
//~~Auto north/south switch by undercoveryankee~~

@LAZYGLOBAL OFF.

FUNCTION LAZcalc_init {
    PARAMETER
        desiredAlt, //Altitude of desired target orbit (in *meters*)
        desiredInc. //Inclination of desired target orbit

    PARAMETER autoNodeEpsilon IS 10. // How many m/s north or south
        // will be needed to cause a north/south switch. Pass zero to disable
        // the feature.
    SET autoNodeEpsilon to ABS(autoNodeEpsilon).
    
    //We'll pull the latitude now so we aren't sampling it multiple times
    LOCAL launchLatitude IS SHIP:LATITUDE.
    
    LOCAL data IS LIST().   // A list is used to store information used by LAZcalc
    
    //Orbital altitude can't be less than sea level
    IF desiredAlt <= 0 {
        PRINT "Target altitude cannot be below sea level".
        SET launchAzimuth TO 1/0.        //Throws error
    }.
    
    //Determines whether we're trying to launch from the ascending or descending node
    LOCAL launchNode TO "Ascending".
    IF desiredInc < 0 {
        SET launchNode TO "Descending".
        
        //We'll make it positive for now and convert to southerly heading later
        SET desiredInc TO ABS(desiredInc).
    }.
    
    //Orbital inclination can't be less than launch latitude or greater than 180 - launch latitude
    IF ABS(launchLatitude) > desiredInc {
        SET desiredInc TO ABS(launchLatitude).
        // HUDTEXT("Inclination impossible from current latitude, setting for lowest possible inclination.", 10, 2, 30, RED, FALSE).
    }.
    
    IF 180 - ABS(launchLatitude) < desiredInc {
        SET desiredInc TO 180 - ABS(launchLatitude).
        // HUDTEXT("Inclination impossible from current latitude, setting for highest possible inclination.", 10, 2, 30, RED, FALSE).
    }.
    
    //Does all the one time calculations and stores them in a list to help reduce the overhead or continuously updating
    LOCAL equatorialVel IS (2 * CONSTANT():Pi * BODY:RADIUS) / BODY:ROTATIONPERIOD.
    LOCAL targetOrbVel IS SQRT(BODY:MU/ (BODY:RADIUS + desiredAlt)).
    data:ADD(desiredInc).       //[0]
    data:ADD(launchLatitude).   //[1]
    data:ADD(equatorialVel).    //[2]
    data:ADD(targetOrbVel).     //[3]
    data:ADD(launchNode).       //[4]
    data:ADD(autoNodeEpsilon).  //[5]
    RETURN data.
}.

FUNCTION LAZcalc {
    PARAMETER
        data. //pointer to the list created by LAZcalc_init
    LOCAL inertialAzimuth IS ARCSIN(MAX(MIN(COS(data[0]) / COS(SHIP:LATITUDE), 1), -1)).
    LOCAL VXRot IS data[3] * SIN(inertialAzimuth) - data[2] * COS(data[1]).
    LOCAL VYRot IS data[3] * COS(inertialAzimuth).
    
    // This clamps the result to values between 0 and 360.
    LOCAL Azimuth IS MOD(ARCTAN2(VXRot, VYRot) + 360, 360).

    IF data[5] {
        LOCAL NorthComponent IS VDOT(SHIP:VELOCITY:ORBIT, SHIP:NORTH:VECTOR).
        IF NorthComponent > data[5] {
            SET data[4] TO "Ascending".
        } ELSE IF NorthComponent < -data[5] {
            SET data[4] to "Descending".
        }.
    }.
    
    //Returns northerly azimuth if launching from the ascending node
    IF data[4] = "Ascending" {
        RETURN Azimuth.
        
    //Returns southerly azimuth if launching from the descending node
    } ELSE IF data[4] = "Descending" {
        IF Azimuth <= 90 {
            RETURN 180 - Azimuth.
            
        } ELSE IF Azimuth >= 270 {
            RETURN 540 - Azimuth.
            
        }.
    }.
}.

Link to comment
Share on other sites

3 minutes ago, danielboro said:

can any one tell me what is the typical shirking by using compile?
today was the first time i tried it and it didn't shrink mach.
a 5100 got to 4950 and a 2024 to 1900
i was hoping for more space saving.
is this the expected shrink? (~5%)

Depends on the original program.  if you have a long variable name  and use it again and again, it can be crunched a lot.  if you have short names, or if you don't indent much, or you do have long names but don't repeat them much, you don't see much help.

Link to comment
Share on other sites

Small question: my lock throttle is lost after a stage.

PRINT "=========================================".
PRINT "      STRATOS B7".
PRINT "=========================================".

PRINT "Waiting for ship to unpack.".
WAIT UNTIL ship:unpacked.
PRINT "Ship is now unpacked.".

PRINT "Locking throttle".
SET throt TO 1.0.
LOCK throttle TO throt.
//set ship:control:pilotmainthrottle to 1.

PRINT "Starting countdown:".
FROM {local countdown is 5.} UNTIL countdown = 0 STEP {SET countdown to countdown - 1.} DO {
    PRINT "..." + countdown.
    WAIT 1. // pauses the script here for 1 second.
}

// Go
PRINT "Igniting booster".
STAGE.
WAIT 2.9.

PRINT "Igniting rocket".
STAGE.
WAIT 80.

PRINT "Decoupling payload".
STAGE.

I had LOCK throttle TO 1 before made no difference. Throttle goes up but as soon as the booster gets ignited the throttle goes down. I maintain radio connection with the rocket and can use the terminal. It runs the rest of the program, but even if i repeat the statement its not pushing up the slider.

Running  kOS 1:1.2.1.0 installed through CKAN on a 1.8.1 RSS/RO/RP-1 install.

 

Update: adding 

SET ship:control:pilotmainthrottle to 1.

did not resolve the issue.

Link to comment
Share on other sites

42 minutes ago, MacLuky said:

Small question: my lock throttle is lost after a stage.


PRINT "=========================================".
PRINT "      STRATOS B7".
PRINT "=========================================".

PRINT "Waiting for ship to unpack.".
WAIT UNTIL ship:unpacked.
PRINT "Ship is now unpacked.".

PRINT "Locking throttle".
SET throt TO 1.0.
LOCK throttle TO throt.
//set ship:control:pilotmainthrottle to 1.

PRINT "Starting countdown:".
FROM {local countdown is 5.} UNTIL countdown = 0 STEP {SET countdown to countdown - 1.} DO {
    PRINT "..." + countdown.
    WAIT 1. // pauses the script here for 1 second.
}

// Go
PRINT "Igniting booster".
STAGE.
WAIT 2.9.

PRINT "Igniting rocket".
STAGE.
WAIT 80.

PRINT "Decoupling payload".
STAGE.

I had LOCK throttle TO 1 before made no difference. Throttle goes up but as soon as the booster gets ignited the throttle goes down. I maintain radio connection with the rocket and can use the terminal. It runs the rest of the program, but even if i repeat the statement its not pushing up the slider.

Running  kOS 1:1.2.1.0 installed through CKAN on a 1.8.1 RSS/RO/RP-1 install.

 

Update: adding 


SET ship:control:pilotmainthrottle to 1.

did not resolve the issue.

Not enough information to tell, but if it's RP-1 is there a chance the decoupling makes you lose an avionics part and now you are over the avionics limit and so it's refusing to obey controls?

Link to comment
Share on other sites

1 hour ago, Dunbaratu said:

Not enough information to tell, but if it's RP-1 is there a chance the decoupling makes you lose an avionics part and now you are over the avionics limit and so it's refusing to obey controls?

It's  a WAC Corporal and the first stage is just a solid booster, it even happens when you detach from the launch clamp. I can create a log and craft file + an install script, but it might be something else. For the fist few sounding rockets its not that important, but I want later rockets to run a bit more sophisticated programs.

Link to comment
Share on other sites

As a big fan of kOS, I try to automate nearly everything in my vessels. But there is one little thing that keeps bothering me: exiting the program. I still can't find a simple way to tell kOS to stop the script. RETURN doesn't seem to do the trick, for example. So I have to either write long IF statements or keep temporary variables to check in the main loop. 

So if I can make a feature request, I want to ask for a command that stops executing the current script.

Oh, and I have a question. What is the "Script Trigger" action in the Editor for kOS parts? I think it's new, but I didn't find anything in the changelog.

Link to comment
Share on other sites

Minor patch update available:

v1.3.2.0: https://github.com/KSP-KOS/KOS/releases/tag/v1.3.2.0

A quick patch to v1.3.0.0 that fixes issue #2857 that would
zero controls for just a brief single physics frame if
raw control neutralize had been previously used or if a
reboot had occurred while raw controls were in use. Most
players won't notice a single physics frame of zeroed
controls, but if you're using realism mods with limited
engine ignitions, it would unfairly consume an engine
ignition when the throttle zeroed for an instant. (Which
was a disaster if the engine only gets to have one
ignition.)

Normally one bug fix wouldn't warrant a release, but this
bug was caused by changes in v1.3.0.0, and the consumed
ignition was unfair.

 

--- The following are DIFFERENT topics, but the KSP forums contain the silly misfeature of merging comments together unless I wait a really long time between them, and I don't know how to make it stop doing that. ---

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

 

 

1 hour ago, garwel said:

As a big fan of kOS, I try to automate nearly everything in my vessels. But there is one little thing that keeps bothering me: exiting the program. I still can't find a simple way to tell kOS to stop the script. RETURN doesn't seem to do the trick, for example. So I have to either write long IF statements or keep temporary variables to check in the main loop. 

So if I can make a feature request, I want to ask for a command that stops executing the current script.

Oh, and I have a question. What is the "Script Trigger" action in the Editor for kOS parts? I think it's new, but I didn't find anything in the changelog.

As far as an exit - yeah I know.  It got stuck in limbo because I kept waffling on whether or not programs should have exit codes.  But it should be dealt with.

As for "Script Trigger" - can you explain what you mean?  That exact string appears nowhere in the kOS C# codebase.  There was an action added called "Suppress" that you can assign to action groups, if that's what you mean.  (It lets you activate the same thing as clicking the new button "suppress autopilot" in the kOS control panel, but with an action group so it's just a keypress away if you want it fast without clicking around.)

11 hours ago, JebIsDeadBaby said:

The latest version seems to waaay overestimate available RCS torque.  Steering manager keeps RCS firing until the desired angle is achieved, obviously overshoots, which results in an infinite loop of corrections. Reducing torque factors to 0.1 solves the problem for me.  

Can you share your craft file (and mention any mods that it requires, if it does)?  Almost everyone else has said the new steering is a massive improvement over the old, or at least a neutral lack of difference.  You're the first to say it's worse.  I'd like to see exactly what's going on, to see if it's design-dependent.

Edited by Dunbaratu
Link to comment
Share on other sites

36 minutes ago, Dunbaratu said:

You're the first to say it's worse. 

I'm u/Angel0a, since yesterday I use the patch you've just released. Can it be this patch introduced this (I don't recall having this problem before the patch frankly, although I finished only one flight in my campaign before I approached you with the bug on Reddit, so I might just missed it )? Anyway, my ship uses a few mods, I may test it on some simpler design  tomorrow (it's close to midnight where I am). 

EDIT: OK, I checked it. Mk1 + FL-R25 tank + CX4181 + 4x RV-105 RCS on the waist, so I guess all stock parts but I use Restock models (shouldn't matter I guess). 

Important mods:

Real Fuels with RealFuels-Stock engine configs. RCS set to Hydrazine. 

Mandatory RCS. I disable reaction wheels with this mod, but with reaction wheels enabled it's just as bad. 

With *torquefactors set to default 1 this ship spins like crazy. When I set them to 0.1 it quickly orients itself correctly. 

 

Edited by JebIsDeadBaby
Link to comment
Share on other sites

36 minutes ago, JebIsDeadBaby said:

I'm u/Angel0a, since yesterday I use the patch you've just released. Can it be this patch introduced this (I don't recall having this problem before the patch frankly, although I finished only one flight in my campaign before I approached you with the bug on Reddit, so I might just missed it )? Anyway, my ship uses a few mods, I may test it on some simpler design  tomorrow (it's close to midnight where I am). 

EDIT: OK, I checked it. Mk1 + FL-R25 tank + CX4181 + 4x RV-105 RCS on the waist, so I guess all stock parts but I use Restock models (shouldn't matter I guess). 

Important mods:

Real Fuels with RealFuels-Stock engine configs. RCS set to Hydrazine. 

Mandatory RCS. I disable reaction wheels with this mod, but with reaction wheels enabled it's just as bad. 

With *torquefactors set to default 1 this ship spins like crazy. When I set them to 0.1 it quickly orients itself correctly. 

 

My strong suspicion is Mandatory RCS is the culprit, but I'll be checking tomorrow to be sure and seeing if there's anything I can do about it.

The change in kOS that might be responsible is this:

This standard API call provided by KSP here was utterly broken and has been for years: https://kerbalspaceprogram.com/api/interface_i_torque_provider.html

The value returned by KSP in that method in the case of RCS modules is totally random nonsense and some modders have known this for a while but I didn't.  But kOS was depending on that information to tune the steering, and that's why kOS steering was bad before.  kOS v1.3.0.0 contained a replacement for that answer in the case of RCS modules, manually calculating it properly and ignoring what stock KSP says, with some suggestions borrowed from other mods about how to make homemade replacement code for it.

So there's a chance that the nerfing that MandatoryRCS is doing isn't being "seen" by kOS's homemade replacment for the broken stock GetPotentialTorque method.

Link to comment
Share on other sites

23 hours ago, MacLuky said:

It's  a WAC Corporal and the first stage is just a solid booster, it even happens when you detach from the launch clamp. I can create a log and craft file + an install script, but it might be something else. For the fist few sounding rockets its not that important, but I want later rockets to run a bit more sophisticated programs.

Update, after a night sleep, it decided to work anyway.

Link to comment
Share on other sites

22 hours ago, JebIsDeadBaby said:

I'm u/Angel0a, since yesterday I use the patch you've just released. Can it be this patch introduced this (I don't recall having this problem before the patch frankly, although I finished only one flight in my campaign before I approached you with the bug on Reddit, so I might just missed it )? Anyway, my ship uses a few mods, I may test it on some simpler design  tomorrow (it's close to midnight where I am). 

EDIT: OK, I checked it. Mk1 + FL-R25 tank + CX4181 + 4x RV-105 RCS on the waist, so I guess all stock parts but I use Restock models (shouldn't matter I guess). 

Important mods:

Real Fuels with RealFuels-Stock engine configs. RCS set to Hydrazine. 

Mandatory RCS. I disable reaction wheels with this mod, but with reaction wheels enabled it's just as bad. 

With *torquefactors set to default 1 this ship spins like crazy. When I set them to 0.1 it quickly orients itself correctly. 

 

I'm having a hard time recreating what you're talking about here.  I put Realfuels-stock and Mandatory RCS on, and while it puffs a bit much (because the stock RV-105 RCS blocks are a bit overpowered for such a small ship as in your example description), it doesn't look nearly as bad as what you're describing, and it settles in pretty quickly.

Also, I don't even have an option to adjust the reaction wheels in the Mk1 pod because there aren't any there.  With these two mods installed it seems to remove ModuleReactionWheel from the MK1 pod entirely, so "with reaction wheels enabled" isn't even an option for me.

Do you have the capacity to use discord and broadcast your gameplay on it?  I may have to witness what you're talking about with my own eyes to see what you're getting.  I'm having a hard time re-creating it.

Link to comment
Share on other sites

27 minutes ago, Dunbaratu said:

Do you have the capacity to use discord and broadcast your gameplay on it? 

Dunno, can I stream via website or do I have to install it (I'm on web Discord as JebIsDeadBaby#5004 right now)? Also I do not have a microphone attached to the PC, which may be a problem.  Never streamed anything via Discord. 

Edited by JebIsDeadBaby
Link to comment
Share on other sites

1 minute ago, JebIsDeadBaby said:

Dunno, can you stream via website or do I have to install it (I'm on web Discord as JebIsDeadBaby#5004 right now)? Also I do not have a microphone attached to the PC, which may be a problem.  Never streamed anything via Discord. 

I'm not sure.  Discord has some differences between the web client and the desktop client.

Link to comment
Share on other sites

2 minutes ago, JebIsDeadBaby said:

Well, we can try. I've found an old webcam, so I have a mic, a bit crappy though. Still have to figure out how to stream. I think I know how start a stream but not how to see what is streaming. 

give me about 10 minutes and I'll send you an invite.

Link to comment
Share on other sites

10 minutes ago, Dunbaratu said:

give me about 10 minutes and I'll send you an invite.

Addendum - I can't DM you on Discord easily since I had no prev contact with you and you aren't in any servers I'm in.  Instead I sent you the Discord link as a direct message here on the Kerbal Forums.  Go check your user page to see it.

Link to comment
Share on other sites

hi !

Installing this version to test, i use  kOSPropMonitor. currently playing KSP 1.10.1

And there a bug  in rasterprop mfd it's impossible to write something.

i have this error :

Quote

Exception:MissingMethodException:void
Kos.screen.TermWindows.ProcessOneInputChar(char,kos.UserIO.TelnetSingletonServer,bool).

Posted issue with log file on github  and here kOSPropMonitor , i 'm not sure if @dsonbill  updates is mod yet...

steph.

 

Link to comment
Share on other sites

18 hours ago, stephm said:

hi !

Installing this version to test, i use  kOSPropMonitor. currently playing KSP 1.10.1

And there a bug  in rasterprop mfd it's impossible to write something.

i have this error :

Posted issue with log file on github  and here kOSPropMonitor , i 'm not sure if @dsonbill  updates is mod yet...

steph.

 

I can give you access to a compiled kOS.DLL to test with to see if it fixes the problem.  Send me a DM and I'll send it your way.  If you report it fixes it I'll get the change into the next release.

The issue is that kOS added an additional parameter to a method that kOSPropMonitor is trying to call, and although kOS did make sure the additional parameter is optional with a default defined for backward compatibility, in C# that still requires a recompile of anyone calling it because of how default parameters in C# work.  The experiment to see if it fixes it is that instead of one method with optional args, I now have two methods, one with and one without the optional arg.  The code isn't really that different, but it changes things so that it should still work when combined with an older obsolete DLL trying to call it the old way.

Link to comment
Share on other sites

This thread is quite old. Please consider starting a new thread rather than reviving this one.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...