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.


Topics - Shrooblord

Pages: [1] 2
1
Mods / Your Music In-Game After Patch 0.21
« on: March 01, 2019, 12:57:17 PM »
Hey gang,

Avorion recently got an overhaul to its Music Player. It now builds a playlist of tracks based on "moods", and chooses tracks that are appropriate for that Sector based on how many Stations are left alive there, how many Wreckages are there, whether the Sector is neutral, hostile, or friendly to you, whether it's completely empty, etc. etc.

Basically, you no longer have a list of random tracks, but tracks that feel "appropriate" for that environment.

Spoiler: "introduction" • show
For example, there's the collection of TrackCollection.All(), one for TrackCollection.Happy(), one for TrackCollection.Neutral(), TrackCollection.Desolate() etc.

Also there's this one TrackCollection.HappyNoParticle() which is literally what it sounds like: the collection from TrackCollection.Happy() minus Particle.ogg. RIP
There's also this helpful line:
-- modders: reserve track numbers 15 - 1000 for additional future music
which is a pointer that you should start using tracks with IDs 1001 and up to avoid conflicts with future Avorion updates.



What does this mean for all of you out there who had a vast library of music added into the game? Well, I am one of them (3 GB of music to be precise), so let me walk you through the steps of making your music show up in game again. In my case, it's time to categorise 3 GB worth of music into "moods"... ^^"

[NOTE:]
  • For all directories, move into your Avorion Steam installation directory first: YourSteamFolder/(...)/Avorion/, typically something like
    C:\Program Files (x86)\Steam\steamapps\common\Avorion\.
  • All music files need to be in .OGG format, or Avorion will not play them.


Main Menu
Spoiler: show

The Main Menu just plays whatever's in the data/music/main/ folder.



Background / Ambient Tracks
Spoiler: show

Step 1.
Navigate to data/scripts/lib and open music.lua.


Step 2.
Add indeces for your music tracks:



Step 3.
Add them as keys in the Tracks table:


This has the path to the actual tracks. Note how I've forgotten to add .ogg at the end of most of my files? Don't do that! The filepath includes the .ogg extension.

[NOTE:] The track "long_forgotten.ogg" will never be played, because it is erroneously called "loing_forgotten.ogg" in your /background/ folder. I have already submitted a bug report.
To get it to show up in-game, rename the file in the /background/ folder to "long_forgotten.ogg" as it should be.


Step 4.
Add the keys to the TrackCollection.All() function.



Step 5.
Make a decision about which mood your tracks fit to, and put them in the appropriate function. I'm putting them in Neutral myself, because I'm currently in a Sector that pulls from this list, so I want my music to show up there. I'll have to properly categorise them later, but for now, this is good enough for me.


To find out which moods the Sectors pull from, you're gonna have to do some digging. Search for the TrackCollection. function inside all scripts in the data/scripts/sectors/ folder -- this defines which tables the game pulls from in order to build a music playlist for that Sector.


Step 6.
Turn up the volume to 11.

That's it! Your Background Music will now play in-game. ^^



Combat Tracks
Spoiler: show

Not sure yet! I haven't investigated combat music yet, but I expect it either plays any of the files inside the data/music/combat/ folder, or operates in a similar fashion as Background Tracks and has a music table of its own. But I haven't gotten to that part yet so I don't know for now.



Boss Tracks
Spoiler: show

Each Boss has a unique track that is defined in the data/music/special/ folder. When a Boss gets spawned and goes into attack mode, the Boss defines which track to play:

The AI
registerBoss(Uuid(), nil, nil, "data/music/special/ai.ogg")
Don't worry about the other arguments -- they detail the Boss's Entity UUID index, health bar and shield bar colour values, but we're not interested in that right now. The good part is the fourth argument, which is the path to the music track.

The Guardian
registerBoss(Entity().index, nil, nil, "data/music/special/guardian.ogg")

Not Specified / Generic Boss
Bosses that don't specify a special track use the boss track data/music/special/boss.ogg.


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

Have fun modding your game, and listening to some cool tunes!


Shrooblord


P.S.
Note that the file paths described above can be any subdirectory of the Steam Avorion installation path you want! This means that if you package a mod with, for example, a cool new Boss to fight, you can give it custom music that sits in its own folder separate from the data/music folder, so that you don't even have to tell your users to drag the file into the appropriate folder; just "plug 'n play" and there you go!

This system means adapting, a little, but it is more flexible than the old one, and you as a modder (or user) have more control. Excellent~!

2
Feedback / Allow AI Ships to Use Gates
« on: January 11, 2019, 07:06:56 PM »
Hey there,

It would be awesome if AI ships jumping from Sector to Sector could utilise the Gates when this speeds up their travel time / when their hyperdrive is on cooldown. Currently, they'll jump to a Sector, and just sit there like a ... well, sitting duck ... until their hyperdrive is recharged.

With using Gates, they could be constantly on the move.

I freaking love the new what I call "RTS update". It's made my Avorion life so much more enjoyable. Keep up the good work!

3
Feedback / Looping Trade AI Ships
« on: January 11, 2019, 07:04:37 PM »
Hi,

Has anyone gotten looping Trade AI ships working? Because whenever I give my AI ships trade commands (buy, sell, repeat), it performs the queue once and then forgets about it.

This is what I've done:
  • Craft Trader ship.
  • Give it a Captain.
  • Outfit it with a Trading System (so it can do the trades).
  • Give it an order: buy 10 goods from Sector at 85% price threshold.
  • Hold shift.
  • Right-click another Sector to jump there. Shift queues it up.
  • Give it an order while holding Shift: sell goods until 0 left at 110% price threshold.
  • Right-click the first Sector to jump back to the place we got the goods from.
  • Loop Commands using the Loop Commands button that appears while holding Shift.

For me, it executes the orders once, then forgets about its queue.

Am I simply doing it wrong?

4
Mods / [MOD] AutoDock -- v1.2.2
« on: July 23, 2018, 10:00:15 PM »
AutoDock
Do you find docking tedious? Do you wish you could just press a button when close to a Station, and get docked, like those lazy AI traders do? Do you want to fly at a dock at 2000 m/s and still dock perfectly fine without ever having to hit the brakes?

Then AutoDock is for you!


Usage
This mod adds the Interaction "Auto-Dock to Station" to all Stations, which allows you to easily dock to them by flying up to a Docking Beacon that gets created when the Interaction is used. You'll get pulled into the Station dock by tractor beams like AI traders get too, and like so easily dock without having to try and manoeuvre yourself correctly or lose enough speed while approaching the dock. What's more, you can fly at the Docking Beacon at great speed (up to 2000 m/s due to, probably, engine limitations) and it will still instantly start the docking procedure for you, so you don't even have to make sure you slow down to dock anymore! Sound great? Install the mod now!

See the following video for an explanation:



Prerequisites
This mod requires an external resource: ShipScriptLoader
Please follow the installation instructions of ShipScriptLoader before you install AutoDock.


Installation Instructions (Client-Side)
- Download the mod ShipScriptLoader by Dirtyredz and follow its installation instructions. This is required to load AutoDock. If you are already using it you may skip this step.

- Open the file Avorion/mods/ShipScriptLoader/config/ShipScriptLoader.lua
- Before the last line containing return Config add this:
Code: [Select]
Config.Add("mods/AutoDock/data/scripts/player/autoDockMigrator.lua")- Modify defaultscripts.lua in Avorion/data/scripts/lib/: in the function AddDefaultStationScripts(station) (line 14) add the following code:
Code: [Select]
station:addScriptOnce("mods/AutoDock/data/scripts/entity/autoDockInteraction.lua")For example, add it on line 28 such that the block of code becomes:
Code: [Select]
function AddDefaultStationScripts(station)
    station:addScriptOnce("data/scripts/entity/startbuilding.lua")
    station:addScriptOnce("data/scripts/entity/entercraft.lua")
    station:addScriptOnce("data/scripts/entity/exitcraft.lua")

    station:addScriptOnce("data/scripts/entity/crewboard.lua")
    station:addScriptOnce("data/scripts/entity/backup.lua")
    station:addScriptOnce("data/scripts/entity/bulletinboard.lua")
    station:addScriptOnce("data/scripts/entity/story/bulletins.lua")
    station:addScriptOnce("data/scripts/entity/regrowdocks.lua")

    station:addScriptOnce("data/scripts/entity/craftorders.lua")
    station:addScriptOnce("data/scripts/entity/transfercrewgoods.lua")

station:addScriptOnce("mods/AutoDock/data/scripts/entity/autoDockInteraction.lua")
end
- Copy the directory mods contained in the AutoDock .zip file directly into the Steam installation directory folder for Avorion.

Multiplayer (Server Owners)
NOTE: This mod needs to be installed both client-side and server-side in order to work. To install on the server, copy these same instructions, but use the server's root directory folder in place of the Avorion Steam Installation folder.

For example: when installing for the server, if the installation instructions tell you to drop a file in the Steam installation directory for Avorion, drop it in the server's top-level folder instead.

Addtionally, an instruction like
- Modify defaultscripts.lua in Avorion/data/scripts/lib/

becomes

- Modify defaultscripts.lua in SERVER-TOP-LEVEL-FOLDER/data/scripts/lib/


For Modders
If you want to disable AutoDocks for a Station of yours, add the following code near the top of one of its scripts:

Code: [Select]
local noAutoDock = require ("mods/AutoDock/data/scripts/lib/noAutoDock")
if noAutoDock then
    noAutoDock.initialize()
end

This local variable is never used, but simply including it will execute the code inside the script, causing your station to be given a noAutoDock = true Entity Value which the AutoDock Migrator now checks for.
If this value is found, and its value is true, the AutoDock Migrator will skip that station and not add any AutoDocks to it.

If AutoDock is not installed, this value is nil, but because you're not using the value anywhere in your script, that doesn't matter. So it works with AutoDock installed, and with AutoDock not installed.


Known Issues
Spoiler: show

  • Detected an issue where AutoDock Beacons will fail to spawn if something is in the way of the Station's "light line", i.e. Asteroids, another Ship, etc.



Changelog
==MOST RECENT VERSION: 1.2.2==

1.2.2
  • Fixed .zip directory structure so that it actually contains what it displays on the tin. Thanks to Amriel for notifying me of this problem!

1.2.1
  • Fixed a bug where the opt-out functionality would not correctly remove AutoDock functionality. Opt-out functionality should behave as expected now. See updated installation instructions.

1.2
  • Added functionality to opt-out your Station for AutoDocks. See the For Modders section for information.

1.1.1
  • Removed erroneously included developer content from release zip.

==OLDER VERSIONS==
Spoiler: show

1.1
  • Namespaced all scripts where applicable.
  • Added compatibility with 0.20.2 Beta Branch Security update.

1.0
  • Initial Release


Credits
- Dirtyredz for the ShipScriptLoader.

5
Mods / [MOD] [WIP] GTTS:It's Coming...
« on: July 13, 2018, 09:12:38 PM »
Something wonderful is about to happen...



Stay tuned.

6
Hi one and all!

Spoiler: Introduction • show

I'm an enormous fan of Avorion and love creating a better experience for myself and friends in-game with mods, and by modding the game myself. However, whenever an update rolls around, it's always quite a fuss to determine what parts of which code and scripts have changed, how that will affect my installed mods, and, more importantly, how to reinstall all the mods I've effectively "lost" by updating my scripts folder when patching.

To this extent, a mod manager would be ideal, but where such a tool does not exist for us (yet), I think the next best thing would be to compile a list of mods that we know are stable in this patch, to avoid headaches when patching up to the new version of the game, or the new beta version on the Beta Branch. This way, we can consult this one thread and find out which mods can be simply reinstalled, and which ones will need some more development / need to be patched before they become available to us again.


Now, I do not have all the time in the world and I would love for you guys to help me set this up to - a community effort, if you will.

On the Wiki!
This list also exists on the Wiki, here.
For everyone who has any information about mod compatibility, please edit the Wiki directly. You can still PM me and/or leave a message here to notify me of changes, if you want to have all bases covered. I'll also be checking the Wiki periodically, myself.

If at any time there is a conflict between the information on the Wiki, and this list, assume the information on the Wiki is correct.

That said, let's compile our shortlist of supported mods right now!

[ MISSING YOUR GAME VERSION? ]
Due to a character post limit, and an oversight on my part to not have reserved the first four or so replies to this topic for this purpose, the archive for older versions is located here, on page 3 of this thread.

[ NOTE ]
As a general rule on these forums, when the mod author doesn't seem to be updating the mod themselves, chances are someone on the latter pages of the thread has. So if a mod doesn't appear on this list, don't worry. Maybe someone has already updated it to be compatible to the latest patch! If someone has, please tell me by replying to this thread so I can keep this list as up-to-date as possible.


[0.20.x] STABLE MODS -- [[CURRENTLY TESTING]]
These mods are stable on the latest patch of the base game. Simply install them and play!
Spoiler: show



[0.19.x] STABLE MODS -- [[LAST TESTED PATCH -- REVIEWING FOR CURRENT PATCH]]
These mods were stable on the last tested patch of the base game. It's possible they aren't compatible anymore.
Spoiler: show




[BB 0.21.2] STABLE MODS -- [[CURRENTLY TESTING]]
These mods are stable on the latest patch of the beta branch. Simply install them and play!
Spoiler: show



[BB 0.20.3] STABLE MODS -- [[LAST TESTED BETA BRANCH -- REVIEWING FOR CURRENT BRANCH]]
These mods were stable on the last tested patch of the beta branch. It's possible they aren't compatible anymore.
Spoiler: show



STABILITY UNDER REVIEW
We are currently testing these mods in our games on the current patches. Preliminary testing results seem good so far (no crash on startup, game is playable). More interactions / test cases need to be explored still to bump this up to Stable.



STABILITY UNKNOWN
We haven't tested yet whether these mods work under the current patches. We need to investigate further into these.
Spoiler: show





DEPRECATED
These mods are confirmed no longer stable on the current patches. Mod developer action is required to conform to the changes introduced to the game since the last time the mod was stable. For each mod, the last known stable patch is mentioned.
Spoiler: show

  • CompleX3s - by Laserzwei -- deprecated by author -- last known version compatible: [0.15.x]
  • Extended trading reach - by NexusNull -- functionality now integrated into vanilla Avorion!
  • out of sector Production - by Laserzwei -- functionality now integrated into vanilla Avorion! -- last known version compatible: [0.16.0]
  • RenameShips - by Shrooblord -- functionality now integrated into vanilla Avorion! --  last known version compatible: [0.18.0]




To flesh out this list, we need to collect a list of all the mods for the game, put them in the "stability unknown" category, and systematically test them on the new patches.

Here's to making all our lives easier!

Thanks for your assistance,


Shrooblord


P.S.
I'm just running down the list of mods I find in the Mods forum as sorted by last posting activity - got to page 6 - will continue to run through all the mods posted in this subforum at a later time. If you know a mod you love that isn't included in this list, don't hesitate to post!


P.P.S.
At the time of writing this post there's 27 pages worth of mods in this subforum. Indiscriminately and systematically going through all of them will take some time. This is why the "Stability Unknown" section is so huge right now compared to the other categories. If you know anything about the mods in that section, please let us know in a post down below!

7
Mods / [Mod Request] Get Rid of the Black Flag!
« on: July 11, 2018, 09:25:01 PM »
Hey gang,

I've been away from the game and this forum for a while. Recently played a multiplayer game with my friend again, and, at least for a short while, I'm ready to get sucked right back into the thick of things, haha. Some of the new updates are amazing! We both fell in love with designing custom turrets for our ships - good stuff!

One of the updates, however, pissed me off to no extent! :P

I'm talking about the "black flag" that's behind every Resource and Upgrade and Error Message you collect and receive on the right hand side of the screen. There's no menu option to disable it, or control its opacity, and frankly I find it obnoxious, especially when you're in build mode and a mining ship of yours is collecting Resources. If you've got a steady income, you literally can't read the majority of the stats that are supposed to be displayed to you in Build Mode.

So I was wondering if anyone's taken a closer look at the scripts and knows where this was introduced, and if it can be disabled. If it's a texture file you can "delete" by replacing it with a fully transparent image, I'd find that acceptable too.

I tried looking myself, but couldn't find what I was after in the short 20 minutes I spent searching.

I hope this is not hard-locked and baked into the game engine itself. Yare yare...

Anyway have a good one!

Shrooblord

8
Mods / [MODPACKS] Make-a-Modpack
« on: February 17, 2018, 01:13:41 AM »
Hi there!

The modding process is tedious. It's incredibly tedious. It takes a long time, it's error-prone, and, worst of all, come update, you have to do it all over again, because the modded vanilla files get silently replaced. That's boring work and not many people are enthusiastic about repeatedly doing it, I'm sure.

So, how about we make life easier for each other?

Request a modpack here, and we'll compile it for you and put her right up on this first post. I'll also keep track of what version of Avorion the modpack is meant to run on.

That way, we'll have a neat little archive of modpacks you can just install-and-play, as opposed to having to do all that gruelling manual labour DiffCheckering every file included in every mod you want to install. Bleh!

Without further ado...

[[MODPACKS]]

[0.16.x]
None yet... request a modpack now!

[0.15.x]
None yet... request a modpack now!

9
Bugs / Alliances Fail to Have Functionality That Players Have
« on: February 16, 2018, 02:34:30 PM »
I'm just going to dump a load of issues here that we've noticed after a long time of playing online with Alliances:

  • Alliance members do not receive chat messages about Economy changes, like how much a crew was paid or how much money was made in a Trade with an Alliance-owned Station. This makes it very hard to gauge how well specific Stations are doing, rather than the Alliance's Economy as a whole.

  • Alliance members can't teleport to Alliance craft like Players can teleport to their craft with the new teleporting functionality.

  • Captained Alliance ships don't post their messages to chat log. For example, the "Sir, we can't find any more wreckages to salvage!" message never shows up, which means you have to baby-sit your Captained ships to see whether they're still doing their job or not.

  • Alliance ships don't show up as bordered green squares on the Galaxy map like Player ships do. This makes it hard to pinpoint where your ships are currently, and means you have to open up the Alliance window, then select Ships, then check which Sector they're in, then open Galaxy Map, and then find that Sector, instead of one quick glance at the Galaxy Map.

  • While scripting mods, Alliances in general seem to have some issues with Player() functionality. Some scripts fail to select the Player() because certain calls to Player() work while other do not. I believe it's a discrepancy between Player() and Player(Player().index). Because different scripts (also vanilla scripts) can use a wide variety of different behaviour for selecting the player, this can cause issues in some cases, while being fine in others. Consolidating this behaviour into one, specific method of targeting players and/or fixing the bug itself would help with scripts (silently) failing when players are piloting Alliance craft.

  • Missions and other such rewards completed and performed while flying an Alliance craft pay out into your personal inventory instead of into the Alliance's.

  • You can't right click to quick-drop items from your personal inventory to that of the Alliance when opening the Alliance Vault UI. This means you have to click-drag all items from your inventory into the Alliance Vault one item at a time (stacks of the same item don't transfer in one go, for example).

  • Players can be hated by Factions while this same Faction loves the Alliance they're in. While this is OK in general, it can lead to very weird situations where exiting your Alliance craft to pilot your Mining Drone in your strongest ally's Sector can suddenly result in you exiting into your Drone into very hostile territory, which is weird. I propose that all members of the Alliance slowly gain favour with the Factions that favour the Alliance, though at a reduced pace to that of the relations between the Faction and the Alliance itself.


10
Feedback / Damage Numbers Gone?
« on: February 16, 2018, 02:25:15 PM »
Flying an Alliance ship, we've noticed that we see no Damage Number Indicators on our HUD whatsoever. I love the DNIs. It's exciting to see huge numbers whizz off an enemy's ship as it's slowly dying, and it's a good indicator of whether and when your shots are hitting.

11
Mods / [MOD] Welcome Mail - 1.0
« on: February 05, 2018, 05:05:06 PM »
After a request made by death dealah for a mod that creates a welcome e-mail to first-timers on a server, I created this mod, which is able to send such welcome e-mail, and include resources like money and all the materials from Iron up to Avorion as an attachment to the e-mail.

====

WELCOME MAIL - v1.0

Introducing: Welcome Mail!




====

MODIFYING THE E-MAIL (SERVER OWNERS):

You can change the contents of the e-mail, including the amount of resources the joining player will receive, by modifying the appropriate lines of code in the file /mods/WelcomeMail/scripts/player/welcomeMail.lua :

Code: [Select]
invokeServerFunction("setTranslatedMailText",
                     "Some Assets to Help You Get Rolling"%_t,  --message header
                     WelcomeMail.generateWelcomeMailText(Player().index),
                     "Shrooblord /* The owner of this galaxy. Wait, what? */"%_t)   --sender
invokeServerFunction("generateWelcomeMailAttachments",
                      50,  --money
                      100,  --iron
                      200,  --titanium
                      300,  --naonite
                      400,  --trinium
                      500,  --xanion
                      600,  --ogonite
                      700)  --avorion

local welcome_text = [[Welcome, ${player},

We see you are new here. Good to have you on board!
Included in this e-mail is a bit of a start-up capital for you to work with.
We hope this will help you get going more easily, and give you a little bit
of a leg-up in this dangerous Galaxy... good luck out there!
   
May our paths once cross. Until then!

Best wishes,


Your Galactic Overlords
]]%_t

====

INSTALLATION INSTRUCTIONS:

This mod needs to be installed on both client and server.

Unzip the contents of this .ZIP file into your (...)/Avorion/ installation directory.

Modify (...)/Avorion/data/scripts/server/server.lua in the following way:

Insert this code inside the onPlayerLogIn call.
Code: [Select]
    player:addScriptOnce("mods/WelcomeMail/scripts/player/welcomeMail.lua")                                   --WelcomeMail
If you had a vanilla server.lua file, that function will now look like this:
Code: [Select]
    function onPlayerLogIn(playerIndex)
        local player = Player(playerIndex)
        Server():broadcastChatMessage("Server", 0, "Player %s joined the galaxy"%_t, player.name)

        player:addScriptOnce("headhunter.lua")
        player:addScriptOnce("eventscheduler.lua")
        player:addScriptOnce("story/spawnswoks.lua")
        player:addScriptOnce("story/spawnai.lua")
        player:addScriptOnce("story/spawnguardian.lua")
        player:addScriptOnce("story/spawnadventurer.lua")
        player:addScriptOnce("mods/WelcomeMail/scripts/player/welcomeMail.lua")                                   --WelcomeMail

        matchResources(player)
    end
You're done! Have fun playing. :)

NOTE: A side effect of having to install this mod on both client and server means that new Galaxies created in singleplayer will also trigger the Welcome Mail. I'm looking into how to prevent this from happening.

Changelog
==MOST RECENT VERSION: 1.0==
1.0
  • Initial release.

==OLDER VERSIONS==
Spoiler: show

  • 1.0
    • Initial Release


12
Bugs / A Ship Being Built by a Shipyard is an Immortal Object
« on: February 01, 2018, 11:18:54 PM »
Hey,

I had a problem when building a Ship at a Shipyard. The particular build I requested from the Shipyard would take 40 minutes to complete, and at the time I wanted to go to bed, so I closed the game and would return to it later (now).

However, when I returned, the ship wasn't being built by the Shipyard anymore (no blue progress bar on the Shipyard). I decided to try and use the /destroy command to get rid of it and request it being built again, but that command didn't succeed on killing the object. It left it with 1 hull and no amount of damage would destroy the ship, nor blow any of its blocks off.

I tried using /destroy on the Shipyard to see if it was keeping the ship alive somehow, but that didn't help. I'm now stuck with an immortal, immobile object that I can't get rid of.

Work-Around:
Change entitydbg.lua's onOwnButtonPressed() function to this:
Code: [Select]
function onOwnButtonPressed(arg)

    if onClient() then
        invokeServerFunction("onOwnButtonPressed", Player().index)
        return
    end

    Entity().selectedObject.factionIndex = arg
end
That way, you can take ownership of objects that are your selected object, rather than only objects that you are currently piloting (how would that even work, by the way... whatever).

You now have ownership of the broken object.

Fly to it in your Mining Drone. Pilot it.

Summon the Entity Debugger once more. Now hit Toggle Invincibility. The Immortal Object is no longer invincible.

/suicide, /destroy or ramming your ship into anything at all will now be able to destroy it.

13
Mods / Why Does the Player Ship not Have AI?
« on: January 29, 2018, 03:44:44 PM »
Hi forum,

I'm currently modding in an AutoDocker script that allows for easier docking at Stations, and I ran into a bit of a conundrum. Now, for the mod itself it doesn't matter, since I've found a work-around, but it left me curious: has anyone figured out why the player's ship can't perform AI commands while the player is flying it? With AI commands, I mean executing the Orders that you can give to Captained ships, or how the tradership.lua ships are ordered to flyaround and dock at Stations. Essentially, I'm talking about ShipAI()'s control over the ship.

Certainly, AI control is disabled while the player flies it, and for a good reason: can you imagine the frustration of trying to wrestle AI commands for control when you're trying to do one thing, but the AI is trying to do something else? Still though: I scoured through all the relevant code and documentation I could think of, but never found a conclusive answer: where and how does the ship get inactivated while the player flies the craft?

Good examples of the AI trying to wrestle back control from the player are mods where an AI command is given to the craft but isn't removed after the player enters the ship. One such example is Goods Hauler, and I found the same behaviour when trying to implement ShipAI() on the player's ship for my mod. The way you can tell the AI is trying to take control of the ship is that, when you exit into your Drone, the ship instantly starts heading to the location the commands are telling it to. But as soon as you get back into the ship, it stops flying and you can control it again.

I'd love to be able to programmatically take control of a player's ship, for example for the following use cases:
  • Auto-piloting ships to locations in the Sector, for example by using Tactical Mode (F9).
  • Auto-Docking (which I aim to implement, but more specifically:) by flying towards the Station in question first.
  • Enemies with immobilising Tractor Beams.
  • Cinematic cutscenes.

So finding out how to wrestle control from the player craft would be excellent.

But I fear that this is one more of those cases where the code to do so simply isn't exposed to us from source.

Anyway, please tell me what you know. I'm eager to find out.

14
Mods / [MOD] Rename Ships - 1.1.3
« on: January 27, 2018, 04:44:31 AM »
Rename Ships
Have you ever made a mistake during ship creation and given it the wrong name? Has a kooky name grown old? Have you given a ship a name for a specific purpose, only to discover you wanted to reassign it a different purpose, but now the name is all wrong?

In other words: do you want to rename your ships? Then look no further! This mod is for you.


Usage
This mod adds a Holy Grail icon to the UI. Use this icon to modify the name of the ship you are currently piloting.
To modify the name of another ship you own, which you are currently not piloting, bring up the Interaction Window with F and choose "Rename Ship".
This can also be done on the ship you're currently piloting yourself, of course.
Either way, a dialog comes up within which you can type your new ship's name. The name is limited to 35 characters, as all ship names in Avorion are. Press OK and the new name is applied. Press the X button to close the dialog afterwards.
See the following video for an explanation:



Prerequisites
This mod requires an external resource: ShipScriptLoader
Please follow the installation instructions of ShipScriptLoader before you install Rename Ships.


Installation Instructions
- Download the mod ShipScriptLoader by Dirtyredz and follow its installation instructions. This is required to load Rename Ships. If you are already using it you may skip this step.
Note
There is an issue in the installation instructions of ShipScriptLoader. These are the lines you should add to Avorion/data/scripts/server/server.lua:
Code: [Select]
local s, b = pcall(require, 'Avorion/mods/ShipScriptLoader/scripts/server/server')
    if s then if b.onPlayerLogIn then local a = onPlayerLogIn; onPlayerLogIn = function(c) a(c); b.onPlayerLogIn(c); end end end

- Open the file Avorion/mods/ShipScriptLoader/config/ShipScriptLoader.lua
- Before the last line containing return Config add this:
Code: [Select]
Config.Add("mods/RenameShips/scripts/entity/shipRename.lua")
Config.Add("mods/RenameShips/scripts/player/shipRenameMigrator.lua")
- Copy the directory mods contained in the RenameShips .zip file directly into the Steam installation directory folder for Avorion.

NOTE: This mod needs to be installed both client-side and server-side in order to work. Client-side integration is important for the UI to work, while server-side integration ensures the change is registered and saved to the galaxy's data.


Changelog
==MOST RECENT VERSION: 1.1.3==
NOTE: A new file, mods/RenameShips/scripts/player/shipRenameMigrator.lua was added in this version, which needs to be added to the config of ShipScriptLoader.lua. See the updated installation instructions in this forum post or README file included in the download.

1.1.3
  • BUGFIX: shipRenameMigrator now prints the correct amount of ships into Console when entering a new Sector.

1.1.2
  • BUGFIX: You can now rename ships at long range. If you own the craft or have the appropriate Alliance permissions to modify a ship,
     you can now Interact with any ship in the Sector and use the item Rename Ship.

==OLDER VERSIONS==
Spoiler: show

  • 1.1.1
    • BUGFIX: The UI window now closes when you press OK.

  • 1.1
    • Added Alliance recognition: players in Alliance craft will now have the ability to rename those craft if they have the appropriate Alliance permissions to fly ships.
    • Added a README.txt to the modpack for bundled installation instructions.

  • 1.0
    • Initial Release


Credits
- Dirtyredz for the ShipScriptLoader.
- Laserzwei's post for CarrierCommander, whose structure (and, partly, words) I shamelessly copy-pasta'd because it is very effective at getting the point across succinctly.

15
Suggestions / Expose Sector().name to Be Writable Instead of Read-Only
« on: January 26, 2018, 02:51:14 PM »
Hi devs,

One of the nicest things of building civilisations, empires or cities in other "building games" is to be able to name your assets and later look back on them and go "Oh, yeah, that's the Mr. Fancypants Partyhouse. Muggers like to patrol the scene there."
There's just something fun about naming things the way you want to.

To that end, could you please lift the Read-Only attribute on the name property of Sector()? That way we could make a mod ourselves that sets the name using
Code: [Select]
if onServer() then
    sector = Sector()
    print(sector.name)
    sector.name = "My New Sector Name"
    print(sector.name)
end
, a script that currently fails due to Sector.name not being writable.

I hope this should prove an easy-ish feature to implement. I'm not asking for a renaming function or a UI that does this for us, nor anything fancy. If you only lift the Read-Only property of Sector.name, I'll do the heavy lifting. ;)

Thank you for reading,


Shrooblord

Pages: [1] 2