Hints and tips for using the debug console
Moderators: winston, another_commander
Re: Hints and tips for using the debug console
I found PS.target["commodity"] and PS.target["commodityAmount"] but setting them with "=" didn't change the object. Is there a way to change an existing object?
I found a workaround that helps, but still isn't ideal, it's just to repeatedly use:
:tnearest cargopod
PS.target.explode();
until I found the one I wanted.
I found a workaround that helps, but still isn't ideal, it's just to repeatedly use:
:tnearest cargopod
PS.target.explode();
until I found the one I wanted.
-
- Quite Grand Sub-Admiral
- Posts: 6682
- Joined: Wed Feb 28, 2007 7:54 am
Re: Hints and tips for using the debug console
You don't really need to backup your original folder. The converter will backup the existing oolite.exe to oolite.exe.dpl before copying over its Developer executable. Going back and forth between the two types of game is just a matter of renaming these two files so that the one you want to use has the extension .exe. The Basoc-debug.oxp, which the converter also installs in AddOns, is simply ignored when not running a Developer release. Other than the executable and the Basic-debug.oxp, there are no physical differences between the two versions.Bogatyr wrote:Here's the result of the fastest & easiest path I've found to get to the debug console. Perhaps this could be put in a more visible "HERE'S HOW TO GET STARTED" sticky somewhere:
1) Download and install the release version of the game from http://www.oolite.org/download/
2) Make a full copy of your release folder hierarchy and name it to indicate it's a developer release
3) Download the Developer Release converter matching your install from http://www.oolite.org/download/
4) run the Developer Release converter, pointing it to the dev folder you made in step 2
5) Download and unpack the debug console from https://github.com/OoliteProject/oolite ... ole1.5.zip (link also on http://www.oolite.org/download/)
6) run OoDebugConsole.exe unpacked in step 5
7) start oolite from the dev folder converted in step 4
The console should show "Opened connection with Oolite version 1.82" (version depends of course on what version of the game you're running)
Also, you can connect to the debug console even after having started the game. Start game, launch console and then, while in flight, pause and press 'C'. The game will connect. Pressing 'C' again while in pause will disconnect it.
Re: Hints and tips for using the debug console
Thanks. I didn't want to accidentally pollute my player file, or have to remember to juggle any files like you mention.
p.s. I'm having trouble changing anything by assigning to properties. Are properties read only? How do you do things like change a cargo container's contents, or adjust the player's manifest? I see PS.manifest.list looks like (below), but assigning to any field doesn't do anything and the dump shows it's not changing.
p.s. I'm having trouble changing anything by assigning to properties. Are properties read only? How do you do things like change a cargo container's contents, or adjust the player's manifest? I see PS.manifest.list looks like (below), but assigning to any field doesn't do anything and the dump shows it's not changing.
Code: Select all
> :d PS.manifest
> dumpObject(eval("PS.manifest"))
{
list: [{
unit: "kg",
displayName: "Gold",
commodity: "gold",
containers: 0,
quantity: 8
}, {
unit: "kg",
displayName: "Platinum",
commodity: "platinum",
containers: 0,
quantity: 10
}, {
unit: "g",
displayName: "Gem-Stones",
commodity: "gem_stones",
containers: 0,
quantity: 37
}]
}
Re: Hints and tips for using the debug console
Also, is it possible to change a particular script while running? Just like
> worldScripts["myOXP"].myFunc = function() { /* new version */ }
??
that would make iterating on testing changes very efficient so that you wouldn't have to continually launch, set up the test environment repeatedly just to try out a change.
> worldScripts["myOXP"].myFunc = function() { /* new version */ }
??
that would make iterating on testing changes very efficient so that you wouldn't have to continually launch, set up the test environment repeatedly just to try out a change.
-
- Quite Grand Sub-Admiral
- Posts: 6682
- Joined: Wed Feb 28, 2007 7:54 am
Re: Hints and tips for using the debug console
Some properties are read-only, some not. Regarding manifest, if you just type PS.manifest in the console, it responds with
I find that the easiest way by far to find out what is available and what can be changed is having the source code of the property I am looking for open in front of me. The structure of Oolite's Javascript classes is very easy to browse through and each class has its own OOJS*.m source file in the src/Core/Scripting folder. For JS manifest, the OOJSManifest file says:which tells us that the only property accessible in the manifest is the list property, which is readonly. You can see what list contains if you execute PS.manfiest.list, or something like PS.manifest.list[0] to access specific manifest items, since the list is just an array of objects.
As for changing the script on the fly, I've never tried it to be honest. Give it a go, see how it goes.
Edit: Although
[object Manifest]
. This objects has certain properties and methods that you can access and how you access them depends on the property types and readonly/readwrite status of them. In the case of PS.manifest, the property is readonly.I find that the easiest way by far to find out what is available and what can be changed is having the source code of the property I am looking for open in front of me. The structure of Oolite's Javascript classes is very easy to browse through and each class has its own OOJS*.m source file in the src/Core/Scripting folder. For JS manifest, the OOJSManifest file says:
Code: Select all
static JSPropertySpec sManifestProperties[] =
{
// JS name ID flags
{ "list", kManifest_list, OOJS_PROP_READONLY_CB },
{ 0 }
};
As for changing the script on the fly, I've never tried it to be honest. Give it a go, see how it goes.
Edit: Although
list
is readonly, the manifest can also contain references to the commodities, like PS.manifest.food, PS.manifest.textiles etc., and those can be written to. PS.manifest.food += 5 works, as long as there is sufficient cargo space for the commodity to be added via script. Apologies for any potential confusion caused.Re: Hints and tips for using the debug console
Thanks again, I was trying to work bottom-up from inspecting the objects, instead of top-down from the source. Since I'm not a JS guru, starting with the source is probably more efficient .another_commander wrote:Some properties are read-only, some not. Regarding manifest, if you just type PS.manifest in the console, it responds with[object Manifest]
. This objects has certain properties and methods that you can access and how you access them depends on the property types and readonly/readwrite status of them. In the case of PS.manifest, the property is readonly.
I find that the easiest way by far to find out what is available and what can be changed is having the source code of the property I am looking for open in front of me. The structure of Oolite's Javascript classes is very easy to browse through and each class has its own OOJS*.m source file in the src/Core/Scripting folder. For JS manifest, the OOJSManifest file says:which tells us that the only property accessible in the manifest is the list property, which is readonly. You can see what list contains if you execute PS.manfiest.list, or something like PS.manifest.list[0] to access specific manifest items, since the list is just an array of objects.Code: Select all
static JSPropertySpec sManifestProperties[] = { // JS name ID flags { "list", kManifest_list, OOJS_PROP_READONLY_CB }, { 0 } };
As for changing the script on the fly, I've never tried it to be honest. Give it a go, see how it goes.
It looks like dynamically changing the method worked! I replaced the action method of the equipment I'm tweaking with an empty "function() {}" and it indeed did nothing after that. I had saved the original method, re-assigned it back, and it worked again. So that looks like a good way to quickly iterate testing changes
Re: Hints and tips for using the debug console
OK I've browsed that source file and I do not know enough yet to understand how I take that Obj-C code and infer what the correct JS code is to modify the player manifest. Shouldn't that info be in the OOlite JS reference? I haven't found it yet...
-
- Quite Grand Sub-Admiral
- Posts: 6682
- Joined: Wed Feb 28, 2007 7:54 am
Re: Hints and tips for using the debug console
The code segment I posted earlier is the only thing you need to look at. It tells you that the list property of manifest is the only one that there is and the flag OOJS_PROP_READONLY_CB means that it is read-only. If it were writeable, that last flag would read OOJS_PROP_READWRITE_CB. So we know already from that that it cannot be changed by scripts.
As a further example, this is what properties we have available for the player ship, taken from the file OOJSPlayerShip.m:JS name is the name used to call the property from scripts or the console. ID is an internal ID reference and can be ignored for the purposes of property look-up. Flags, as said earlier, tells you right away whether the corresponding property is readonly or read/write. So, in the above example, it makes no sense to attempt to change e.g. PS.pitch, because that property is readonly, but you can change e.g. PS.hudHidden, because it is marked as read/write.
Note that, apart from available properties, the JS source files list - normally directly after properties - the available methods that each JS class can call as well. So, by looking at the methods available in OOJSPlayerShip.m,you can see that there are methods for removing parcels and cargo, launch the player from a station, set custom views etc.
This is the kind of information I was referring to in the JS classes source files. You can use these files as quick reference indexes, if you want. No need to know Obj-C or have experience in the internal workings of Oolite.
As a further example, this is what properties we have available for the player ship, taken from the file OOJSPlayerShip.m:
Code: Select all
static JSPropertySpec sPlayerShipProperties[] =
{
// JS name ID flags
{ "aftShield", kPlayerShip_aftShield, OOJS_PROP_READWRITE_CB },
{ "aftShieldRechargeRate", kPlayerShip_aftShieldRechargeRate, OOJS_PROP_READWRITE_CB },
{ "compassMode", kPlayerShip_compassMode, OOJS_PROP_READONLY_CB },
{ "compassTarget", kPlayerShip_compassTarget, OOJS_PROP_READONLY_CB },
{ "currentWeapon", kPlayerShip_currentWeapon, OOJS_PROP_READWRITE_CB },
{ "crosshairs", kPlayerShip_crosshairs, OOJS_PROP_READWRITE_CB },
{ "cursorCoordinates", kPlayerShip_cursorCoordinates, OOJS_PROP_READONLY_CB },
{ "cursorCoordinatesInLY", kPlayerShip_cursorCoordinatesInLY, OOJS_PROP_READONLY_CB },
{ "docked", kPlayerShip_docked, OOJS_PROP_READONLY_CB },
{ "dockedStation", kPlayerShip_dockedStation, OOJS_PROP_READONLY_CB },
{ "fastEquipmentA", kPlayerShip_fastEquipmentA, OOJS_PROP_READWRITE_CB },
{ "fastEquipmentB", kPlayerShip_fastEquipmentB, OOJS_PROP_READWRITE_CB },
{ "forwardShield", kPlayerShip_forwardShield, OOJS_PROP_READWRITE_CB },
{ "forwardShieldRechargeRate", kPlayerShip_forwardShieldRechargeRate, OOJS_PROP_READWRITE_CB },
{ "fuelLeakRate", kPlayerShip_fuelLeakRate, OOJS_PROP_READWRITE_CB },
{ "galacticHyperspaceBehaviour", kPlayerShip_galacticHyperspaceBehaviour, OOJS_PROP_READWRITE_CB },
{ "galacticHyperspaceFixedCoords", kPlayerShip_galacticHyperspaceFixedCoords, OOJS_PROP_READWRITE_CB },
{ "galacticHyperspaceFixedCoordsInLY", kPlayerShip_galacticHyperspaceFixedCoordsInLY, OOJS_PROP_READWRITE_CB },
{ "galaxyCoordinates", kPlayerShip_galaxyCoordinates, OOJS_PROP_READONLY_CB },
{ "galaxyCoordinatesInLY", kPlayerShip_galaxyCoordinatesInLY, OOJS_PROP_READONLY_CB },
{ "hud", kPlayerShip_hud, OOJS_PROP_READWRITE_CB },
{ "hudAllowsBigGui", kPlayerShip_hudAllowsBigGui, OOJS_PROP_READONLY_CB },
{ "hudHidden", kPlayerShip_hudHidden, OOJS_PROP_READWRITE_CB },
{ "injectorsEngaged", kPlayerShip_injectorsEngaged, OOJS_PROP_READONLY_CB },
// manifest defined in OOJSManifest.m
{ "maxAftShield", kPlayerShip_maxAftShield, OOJS_PROP_READWRITE_CB },
{ "maxForwardShield", kPlayerShip_maxForwardShield, OOJS_PROP_READWRITE_CB },
{ "missilesOnline", kPlayerShip_missilesOnline, OOJS_PROP_READONLY_CB },
{ "multiFunctionDisplays", kPlayerShip_multiFunctionDisplays, OOJS_PROP_READONLY_CB },
{ "multiFunctionDisplayList", kPlayerShip_multiFunctionDisplayList, OOJS_PROP_READONLY_CB },
{ "price", kPlayerShip_price, OOJS_PROP_READONLY_CB },
{ "pitch", kPlayerShip_pitch, OOJS_PROP_READONLY_CB },
{ "renovationCost", kPlayerShip_renovationCost, OOJS_PROP_READONLY_CB },
{ "renovationMultiplier", kPlayerShip_renovationMultiplier, OOJS_PROP_READONLY_CB },
{ "reticleTargetSensitive", kPlayerShip_reticleTargetSensitive, OOJS_PROP_READWRITE_CB },
{ "roll", kPlayerShip_roll, OOJS_PROP_READONLY_CB },
{ "routeMode", kPlayerShip_routeMode, OOJS_PROP_READONLY_CB },
{ "scannerNonLinear", kPlayerShip_scannerNonLinear, OOJS_PROP_READWRITE_CB },
{ "scannerUltraZoom", kPlayerShip_scannerUltraZoom, OOJS_PROP_READWRITE_CB },
{ "scoopOverride", kPlayerShip_scoopOverride, OOJS_PROP_READWRITE_CB },
{ "serviceLevel", kPlayerShip_serviceLevel, OOJS_PROP_READWRITE_CB },
{ "specialCargo", kPlayerShip_specialCargo, OOJS_PROP_READONLY_CB },
{ "targetSystem", kPlayerShip_targetSystem, OOJS_PROP_READWRITE_CB },
{ "torusEngaged", kPlayerShip_torusEngaged, OOJS_PROP_READONLY_CB },
{ "viewDirection", kPlayerShip_viewDirection, OOJS_PROP_READONLY_CB },
{ "viewPositionAft", kPlayerShip_viewPositionAft, OOJS_PROP_READONLY_CB },
{ "viewPositionForward", kPlayerShip_viewPositionForward, OOJS_PROP_READONLY_CB },
{ "viewPositionPort", kPlayerShip_viewPositionPort, OOJS_PROP_READONLY_CB },
{ "viewPositionStarboard", kPlayerShip_viewPositionStarboard, OOJS_PROP_READONLY_CB },
{ "weaponsOnline", kPlayerShip_weaponsOnline, OOJS_PROP_READONLY_CB },
{ "yaw", kPlayerShip_yaw, OOJS_PROP_READONLY_CB },
{ 0 }
};
Note that, apart from available properties, the JS source files list - normally directly after properties - the available methods that each JS class can call as well. So, by looking at the methods available in OOJSPlayerShip.m,
Code: Select all
static JSFunctionSpec sPlayerShipMethods[] =
{
// JS name Function min args
{ "addParcel", PlayerShipAddParcel, 0 },
{ "addPassenger", PlayerShipAddPassenger, 0 },
{ "awardContract", PlayerShipAwardContract, 0 },
{ "awardEquipmentToCurrentPylon", PlayerShipAwardEquipmentToCurrentPylon, 1 },
{ "beginHyperspaceCountdown", PlayerShipBeginHyperspaceCountdown, 0 },
{ "cancelHyperspaceCountdown", PlayerShipCancelHyperspaceCountdown, 0 },
{ "disengageAutopilot", PlayerShipDisengageAutopilot, 0 },
{ "engageAutopilotToStation", PlayerShipEngageAutopilotToStation, 1 },
{ "hideHUDSelector", PlayerShipHideHUDSelector, 1 },
{ "launch", PlayerShipLaunch, 0 },
{ "removeAllCargo", PlayerShipRemoveAllCargo, 0 },
{ "removeContract", PlayerShipRemoveContract, 2 },
{ "removeParcel", PlayerShipRemoveParcel, 1 },
{ "removePassenger", PlayerShipRemovePassenger, 1 },
{ "resetCustomView", PlayerShipResetCustomView, 0 },
{ "resetScannerZoom", PlayerShipResetScannerZoom, 0 },
{ "setCustomView", PlayerShipSetCustomView, 2 },
{ "setCustomHUDDial", PlayerShipSetCustomHUDDial, 2 },
{ "setMultiFunctionDisplay", PlayerShipSetMultiFunctionDisplay, 1 },
{ "setMultiFunctionText", PlayerShipSetMultiFunctionText, 1 },
{ "showHUDSelector", PlayerShipShowHUDSelector, 1 },
{ "takeInternalDamage", PlayerShipTakeInternalDamage, 0 },
{ "useSpecialCargo", PlayerShipUseSpecialCargo, 1 },
{ 0 }
};
This is the kind of information I was referring to in the JS classes source files. You can use these files as quick reference indexes, if you want. No need to know Obj-C or have experience in the internal workings of Oolite.
Re: Hints and tips for using the debug console
OK, thanks. I know obj-C reasonably well, JS passingly, but not the obj-C/JS foreign language interface and how to glean the info I wanted.
I kept digging and found the Manifest JS reference (e.g., http://wiki.alioth.net/index.php/Oolite ... arshalling which tells me what I need to know. Part of learning one's way around is learning which objects own/control which parts of the game, and that's not immediately obvious to a newb. So a ship (or PlayerShip) has a Manifest, and Manifest owns manipulating the cargo.
I kept digging and found the Manifest JS reference (e.g., http://wiki.alioth.net/index.php/Oolite ... arshalling which tells me what I need to know. Part of learning one's way around is learning which objects own/control which parts of the game, and that's not immediately obvious to a newb. So a ship (or PlayerShip) has a Manifest, and Manifest owns manipulating the cargo.
-
- Quite Grand Sub-Admiral
- Posts: 6682
- Joined: Wed Feb 28, 2007 7:54 am
Re: Hints and tips for using the debug console
Oh (I knew I was forgetting something important here), the JS source class files contain also additional more human-friendly descriptions of properties at the parts where the internal IDs are created. These descriptions contain also the data type of each property, as well as a quick explanation about what it does. For OOJSPlayerShip.m:
Code: Select all
// Property IDs
kShip_accuracy = -128, // the ship's accuracy, float, read/write
kShip_aftWeapon, // the ship's aft weapon, equipmentType, read/write
kShip_AI, // AI state machine name, string, read-only
kShip_AIScript, // AI script, Script, read-only
kShip_AIScriptWakeTime, // next wakeup time, integer, read/write
kShip_AIState, // AI state machine state, string, read/write
kShip_AIFoundTarget, // AI "found target", entity, read/write
kShip_AIPrimaryAggressor, // AI "primary aggressor", entity, read/write
kShip_alertCondition, // number 0-3, read-only, combat alert level
kShip_autoAI, // bool, read-only, auto_ai from shipdata
kShip_autoWeapons, // bool, read-only, auto_weapons from shipdata
kShip_beaconCode, // beacon code, string, read/write
kShip_beaconLabel, // beacon label, string, read/write
kShip_boundingBox, // boundingBox, vector, read-only
kShip_bounty, // bounty, unsigned int, read/write
kShip_cargoList, // cargo on board, array of objects, read-only
kShip_cargoSpaceAvailable, // free cargo space, integer, read-only
kShip_cargoSpaceCapacity, // maximum cargo, integer, read/write
kShip_cargoSpaceUsed, // cargo on board, integer, read-only
kShip_collisionExceptions, // collision exception list, array, read-only
kShip_contracts, // cargo contracts contracts, array - strings & whatnot, read only
kShip_commodity, // commodity of a ship, read only
kShip_commodityAmount, // commodityAmount of a ship, read only
kShip_cloakAutomatic, // should cloack start by itself or by script, read/write
kShip_crew, // crew, list, read only
kShip_cruiseSpeed, // desired cruising speed, number, read only
kShip_currentWeapon, // the ship's active weapon, equipmentType, read/write
kShip_dataKey, // string, read-only, shipdata.plist key
kShip_defenseTargets, // array, read-only, defense targets
kShip_desiredRange, // desired Range, double, read/write
kShip_desiredSpeed, // AI desired flight speed, double, read/write
kShip_destination, // flight destination, Vector, read/write
kShip_destinationSystem, // destination system, number, read/write
kShip_displayName, // name displayed on screen, string, read/write
kShip_dockingInstructions, // name displayed on screen, string, read/write
kShip_energyRechargeRate, // energy recharge rate, float, read-only
kShip_entityPersonality, // per-ship random number, int, read-only
kShip_equipment, // the ship's equipment, array of EquipmentInfo, read only
kShip_escortGroup, // group, ShipGroup, read-only
kShip_escorts, // deployed escorts, array of Ship, read-only
kShip_exhaustEmissiveColor, // exhaust emissive color, array, read/write
kShip_exhausts, // exhausts, array, read-only
kShip_extraCargo, // cargo space increase granted by large cargo bay, int, read-only
kShip_flashers, // flashers, array, read-only
kShip_forwardWeapon, // the ship's forward weapon, equipmentType, read/write
kShip_fuel, // fuel, float, read/write
kShip_fuelChargeRate, // fuel scoop rate & charge multiplier, float, read-only
kShip_group, // group, ShipGroup, read/write
kShip_hasHostileTarget, // has hostile target, boolean, read-only
kShip_hasHyperspaceMotor, // has hyperspace motor, boolean, read-only
kShip_hasSuspendedAI, // AI has suspended states, boolean, read-only
kShip_heading, // forwardVector of a ship, read-only
kShip_heatInsulation, // hull heat insulation, double, read/write
kShip_homeSystem, // home system, number, read/write
kShip_hyperspaceSpinTime, // hyperspace spin time, float, read/write
kShip_injectorBurnRate, // injector burn rate, number, read/write dLY/s
kShip_injectorSpeedFactor, // injector speed factor, number, read/write
kShip_isBeacon, // is beacon, boolean, read-only
kShip_isBoulder, // is a boulder (generates splinters), boolean, read/write
kShip_isCargo, // contains cargo, boolean, read-only
kShip_isCloaked, // cloaked, boolean, read/write (if cloaking device installed)
kShip_isDerelict, // is an abandoned ship, boolean, read-only
kShip_isFrangible, // frangible, boolean, read-only
kShip_isFleeing, // is fleeing, boolean, read-only
kShip_isJamming, // jamming scanners, boolean, read/write (if jammer installed)
kShip_isMinable, // is a sensible target for mining, boolean, read-only
kShip_isMine, // is mine, boolean, read-only
kShip_isMissile, // is missile, boolean, read-only
kShip_isPiloted, // is piloted, boolean, read-only (includes stations)
kShip_isPirate, // is pirate, boolean, read-only
kShip_isPirateVictim, // is pirate victim, boolean, read-only
kShip_isPolice, // is police, boolean, read-only
kShip_isRock, // is a rock (hermits included), boolean, read-only
kShip_isThargoid, // is thargoid, boolean, read-only
kShip_isTurret, // is turret, boolean, read-only
kShip_isTrader, // is trader, boolean, read-only
kShip_isWeapon, // is missile or mine, boolean, read-only
kShip_laserHeatLevel, // active laser temperature, float, read-only
kShip_laserHeatLevelAft, // aft laser temperature, float, read-only
kShip_laserHeatLevelForward, // fore laser temperature, float, read-only
kShip_laserHeatLevelPort, // port laser temperature, float, read-only
kShip_laserHeatLevelStarboard, // starboard laser temperature, float, read-only
kShip_lightsActive, // flasher/shader light flag, boolean, read/write
kShip_markedForFines, // has been marked for fines
kShip_maxEscorts, // maximum escort count, int, read/write
kShip_maxPitch, // maximum flight pitch, double, read-only
kShip_maxSpeed, // maximum flight speed, double, read-only
kShip_maxRoll, // maximum flight roll, double, read-only
kShip_maxYaw, // maximum flight yaw, double, read-only
kShip_maxThrust, // maximum thrust, double, read-only
kShip_missileCapacity, // max missiles capacity, integer, read-only
kShip_missileLoadTime, // missile load time, double, read/write
kShip_missiles, // the ship's missiles / external storage, array of equipmentTypes, read only
kShip_name, // name, string, read-only
kShip_parcelCount, // number of parcels on ship, integer, read-only
kShip_parcels, // parcel contracts, array - strings & whatnot, read only
kShip_passengerCapacity, // amount of passenger space on ship, integer, read-only
kShip_passengerCount, // number of passengers on ship, integer, read-only
kShip_passengers, // passengers contracts, array - strings & whatnot, read only
kShip_pitch, // pitch level, float, read-only
kShip_portWeapon, // the ship's port weapon, equipmentType, read/write
kShip_potentialCollider, // "proximity alert" ship, Entity, read-only
kShip_primaryRole, // Primary role, string, read/write
kShip_reactionTime, // AI reaction time, read/write
kShip_reportAIMessages, // report AI messages, boolean, read/write
kShip_roleWeights, // roles and weights, dictionary, read-only
kShip_roles, // roles, array, read-only
kShip_roll, // roll level, float, read-only
kShip_savedCoordinates, // coordinates in system space for AI use, Vector, read/write
kShip_scanDescription, // STE scan class label, string, read/write
kShip_scannerDisplayColor1, // color of lollipop shown on scanner, array, read/write
kShip_scannerDisplayColor2, // color of lollipop shown on scanner when flashing, array, read/write
kShip_scannerHostileDisplayColor1, // color of lollipop shown on scanner, array, read/write
kShip_scannerHostileDisplayColor2, // color of lollipop shown on scanner when flashing, array, read/write
kShip_scannerRange, // scanner range, double, read-only
kShip_script, // script, Script, read-only
kShip_scriptedMisjump, // next jump will miss if set to true, boolean, read/write
kShip_scriptedMisjumpRange, // 0..1 range of next misjump, float, read/write
kShip_scriptInfo, // arbitrary data for scripts, dictionary, read-only
kShip_shipClassName, // ship type name, string, read/write
kShip_shipUniqueName, // uniqish name, string, read/write
kShip_speed, // current flight speed, double, read-only
kShip_starboardWeapon, // the ship's starboard weapon, equipmentType, read/write
kShip_subEntities, // subentities, array of Ship, read-only
kShip_subEntityCapacity, // max subentities for this ship, int, read-only
kShip_subEntityRotation, // subentity rotation velocity, quaternion, read/write
kShip_sunGlareFilter, // sun glare filter multiplier, float, read/write
kShip_target, // target, Ship, read/write
kShip_temperature, // hull temperature, double, read/write
kShip_thrust, // the ship's thrust, double, read/write
kShip_thrustVector, // thrust-related component of velocity, vector, read-only
kShip_trackCloseContacts, // generate close contact events, boolean, read/write
kShip_vectorForward, // forwardVector of a ship, read-only
kShip_vectorRight, // rightVector of a ship, read-only
kShip_vectorUp, // upVector of a ship, read-only
kShip_velocity, // velocity, vector, read/write
kShip_weaponFacings, // available facings, int, read-only
kShip_weaponPositionAft, // weapon offset, vector, read-only
kShip_weaponPositionForward, // weapon offset, vector, read-only
kShip_weaponPositionPort, // weapon offset, vector, read-only
kShip_weaponPositionStarboard, // weapon offset, vector, read-only
kShip_weaponRange, // weapon range, double, read-only
kShip_withinStationAegis, // within main station aegis, boolean, read/write
kShip_yaw, // yaw level, float, read-only
};
Re: Hints and tips for using the debug console
Hi Commanders!
I am running Debian 8.4. Installed python and oolite Debug Console. I can get Debug Console to run, but every time I start oolite Debug Console hangs and to restart it I have to kill the process.
Log file has nothing in it indicating that oolite tries to connect to Debug Console. I am running trunk version of oolite without oxps other than BasicDebug and LogEvents oxps.
Any suggestions? Thanks
EDIT: I managed to run pySimpleConsole.py in the console and it worked. For some reason python process terminates if I run DebugConsole.py
vsfc
I am running Debian 8.4. Installed python and oolite Debug Console. I can get Debug Console to run, but every time I start oolite Debug Console hangs and to restart it I have to kill the process.
Log file has nothing in it indicating that oolite tries to connect to Debug Console. I am running trunk version of oolite without oxps other than BasicDebug and LogEvents oxps.
Any suggestions? Thanks
EDIT: I managed to run pySimpleConsole.py in the console and it worked. For some reason python process terminates if I run DebugConsole.py
vsfc
Re: Hints and tips for using the debug console
Hi!
Is there a way to change commander location system / galaxy using Debugging Console to avoid moving my test commander to particular system across galaxy the normal way? If not, how do I edit the save file to set that desired location?
Thanks,
vsfc
Is there a way to change commander location system / galaxy using Debugging Console to avoid moving my test commander to particular system across galaxy the normal way? If not, how do I edit the save file to set that desired location?
Thanks,
vsfc
- Norby
- ---- E L I T E ----
- Posts: 2577
- Joined: Mon May 20, 2013 9:53 pm
- Location: Budapest, Hungary (Mainly Agricultural Democracy, TL10)
- Contact:
Re: Hints and tips for using the debug console
It is Lave:vsfc wrote:how do I edit the save file to set that desired location?
Code: Select all
<key>system_id</key>
<string>7</string>