PC [Project] Mechmod - A T-MEC community mod

Yeah, sorry, I honestly don't set out to be verbose, it just happens naturally :naughty:. And sorry about any turbulence in the wake of all that too.:sigh:
No, no no, that's awesome. You're putting things into words that I (and probably a few others) couldn't :D
Forwarding to @stefnocth ...
It didn't crash the game outright until I selected the whole world and attempted to copy it over a few tiles to the right. At the very least I think the maximum selectable size of area to be copied should be restricted. Possibly selecting copy area using map view should not be an option at all (as clever as this feature is). But code stability (and loosing progress in a crash) isn't my worry with this feature, it's making major undesirable changes to one's world file, when there is no undo option, and no backup o fall back to (once you exit out with save).

Using the same area select system as for camera mode is reasonable, but I've found that camera selection tool very clumsey as it is. Then, since one can't see exactly where what you've copied is going to land until you've committed to pasting, it's already too late once you've done it. I'm thinking you would need to add a *lot* more original coding to make this feature comfortably usable (to my liking). I don't know if a block silhouette preview would be fairly do-able, or how much it would help in all situations. Maybe just continuing to highlight the area being copied and pre-highlighting the area to be copied to would help a lot...? Regardless of this, there's still all the issues with select copying you get in TEdit: contents of chests, item frames, etc are not copied over, so can easily loose all your precious items. A half copied (over) chest also makes an infinite chest glitch, and all kinda of other edge effects I've not experimented properly with it as yet. Like I've said, an exciting feature, but seemingly not ready for mass consumption at the moment.
Yeah, you have re-assured me a little, and I wasn't expecting any unintentional changes, particularly. It's just one of those things that I imagine would be virtually impossible to bet your life on that no one little thing somewhere hasn't gone a little bit weird when there's no good reason... But then, this is just a game, not the control software for a fighter jet that has to be provably sound. So I'll shut up about this. ;)
I mean ... no, I wouldn't bet my life on it, but that is a good point.

You mean, to avoid needing to quit out of a world before Tediting it? Would that then have to disable auto-save? Is that strictly worth while, I mean, what would be the benefit over exiting out, a couple of seconds?
It makes a difference to me :p but that's because it takes my computer >10 seconds to load a world :sigh:
It worked suprisingly well! I was able to open a world, change it, save it, open it in TEdit, change it again, then load it again. It's a pretty good difference of 20 seconds to 5 seconds for me. I encourage you to try it out :p (but if you want to or are paranoid at all, go for the manual option)
Ok, sounds good. I am keen to see this in action! :) I'm currently imagining a Mechmod cog in the bottom right corner, with the shortcuts expanding out to the left of it... I imagine the cog always being visible there, but a faint watermark when it (and all features) are disabled (just to remind that the game exe is the modified one). Then have it brightly visible when enabled, with the default shortcuts besides it, but collapse-able/expandable. The screen-lock button would double as an indicator, (forcibly) appearing when screen is locked, so you can easily click it off/away. The slow-mo button/indicator would display the currently selected frame rate (or is it divide ratio?), and again pop-up/highlight when on. Pause might be integrated into/over the slow-mo control....? All easy to just spout on about, but coding custom UI is, i expect, another matter! :confused:
That's a pretty neat idea! I might play around with it. I'm just worried about making it too complicated ... do you think a persistent watermark is nessecary? I don't mind either way, but currently if you turn the hotbar off there's no visual indication of the mod.
That's a good idea for the screen-lock indicator. If the hotbar is enabled, the screenlock (or any other toggleable) button will be slightly more highlighted than the rest, but if it's disabled, there's nothing.
The hotbar is already completely ground-up custom UI, so adding ti wouldn't be too hard.

If we're talking about cutting down on options/streamlining, then wire visibility is, perhaps an obvious choice to try simplifying... I might suggest that wire highlighting is just on whenever mechmod is enabled. Being able to quickly see where wires go through dark areas is just a handy convenience, not especially cheaty.
Who else likes the idea of keeping wire highlighting permanantly on? I don't mind too much myself, but to be honest I'd probably find it annoying. That is a good point though; if it isn't removed it'l be squashed into one color-wide option :/

Then, perhaps, make holding each colour wrench highlight all the wires of that colour (making the other colour wires 50% transparent), unless you hover a specific wire, in which case it highlights just that length. Have cutters fully illuminate everything cuttable, until you hover a wire, and then just highlight the length of the wire you have selected (so at over-lap points, that would be green first, blue, then red on successive cuts...). I don't know if other people would still want the option menu sliders, for making single wire colour screenshots? But if wrench-holding for colour highlighting isn't sufficient, then maybe a 3 (or 7) way toggle (each colour all the way on or off) would be sufficient...?
Currently wrenches only highlight wire when they're hovering over it. I'll look at the possibility at making it subtly but passively highlight all wires of that color. That would further invalidate the necessity of individual wire opacities ... I like it! :D
So do you mean wire cutters having the same functionality as the Mechanical Ruler?

I just think these enhancements would be cool integrated right into the game experience as far as possible, totally circumventing menu usage. We may have to see if basic 1.3.1 has overhauled anything like this already, though... Like a multi-wrench for all 4 colour wires, or something. A colour selectable cutter might be handy, if not added, especially in combination with smart-cursor (if that wouldn't be too tricky to code in, and use).

As for adding features, I was thinking of something that might indicate a few things, perhaps a special custom item, like a MecMod PDA (or integrated into the exisint Cell phone), a kind of 'tri-corder' diagnostic tool, that gives a (continual) read-out of your current biome(s!), fishing biome, active spawn rate...Other stuff....? I'll stop there for now.

I like youre ideas alot :D Thanks! Yeah, 1.3.1 will probably be out relatively soon, so I'm interested to see what happens with it. A color selectable cutter (inc. smart cursor) should definitely be possible.

Ooh, like an Engineer's Cell Phone? That's a great idea! Adding new items is kinda hard (I haven't actually tried though, due to the reasons ahead), but also brings a few other problems (e.g. incompatibility with vanilla saves, stuff overwritten by updates etc.), so we'll look for something to use for this. What else would this item display?


@stefnotch and @thejaxster: Godmode would still be an option, just hidden (most of the other cheat options would be killed completely though) There is merit in an idea of a 'quiet' mode (e.g. Skyrim's Become Ethereal shout that made you invulnerable but unable to do damage)
Question: what are the odds of a steam-on-Mac compatible version of mech-mod?

(or a pointer to the instructions I missed for Mac, without too much laughing is also cool.)
I dunno. There's no mac version yet, but I said a while ago that I was going to contact the author of tModLoader about Mac support. I might as well see about that now :)
 
About what cheats to remove:
Infinity mechanical things seems to be fairly fitting (So, I guess we can leave Infinite wire and Infinite actuators alone)
No placing limits is a pretty decent, not so cheaty feature (And, the copy-paste thing doesn't enforce a placing limit either)
I am not too sure about UFO speed..
Godmode might get tweaked...

The not so cheaty features could be moved to another section, right?
 
About what cheats to remove:
Infinity mechanical things seems to be fairly fitting (So, I guess we can leave Infinite wire and Infinite actuators alone)
No placing limits is a pretty decent, not so cheaty feature (And, the copy-paste thing doesn't enforce a placing limit either)
I am not too sure about UFO speed..
Godmode might get tweaked...

The not so cheaty features could be moved to another section, right?
That's the pooint though. As I said in bold in my post above, I want to aim towards making Mechmod a uncheaty alternative to TEdit (the reason being that many people only use TEdit because there aren't any easy building tools in the vanilla game, but TEdit conjures resources up from free air, so this is a favourable alternative)

I say remove them all.
 
I say remove them all.

Surely that is sarcasm. <sarcasmic> I mean a mod with no cheats ;) I honestly love the mod the way it is now. Sure you can polish it, but is it necessary to go backwards.

Make a "clean" version for those who think a mod should be vanilla in nature. My point is a mod is a mod to make something better for a reason, and that reason is for you developers to determine.

IRL Note from me: A few companies I used to work for would have meetings to discuss meetings... guess what... not much got accomplished but a lot of what ifs. I personally know it is hard to take back something that has been given. We all want more and sometimes that is less.

So make this the best mod you can!

Edit: PS, I would still like a mod that is a combo of MechMod and Terraria ReTexturer. No pressure :)
 
Surely that is sarcasm. <sarcasmic> I mean a mod with no cheats ;) I honestly love the mod the way it is now. Sure you can polish it, but is it necessary to go backwards.

Make a "clean" version for those who think a mod should be vanilla in nature. My point is a mod is a mod to make something better for a reason, and that reason is for you developers to determine.

IRL Note from me: A few companies I used to work for would have meetings to discuss meetings... guess what... not much got accomplished but a lot of what ifs. I personally know it is hard to take back something that has been given. We all want more and sometimes that is less.

So make this the best mod you can!
Thanks for your feedback!

@stefnotch also expressed his strong desire to keep the cheats in. There is the possibility of a 'clean' version (but that's a pain to update and maintain seperately). I think the best thing to do here is just hide the cheats so that they're only acessible through modifying the config file (e.g. by default the cheats are all disabled and hidden from the menu but by changing dirtyHacker=false in the config file they'd come back)

Edit: PS, I would still like a mod that is a combo of MechMod and Terraria ReTexturer. No pressure :)
Definitely! I'll whip that up once 1.3.1 drops :p
 
Thanks for your feedback!

@stefnotch also expressed his strong desire to keep the cheats in. There is the possibility of a 'clean' version (but that's a pain to update and maintain seperately). I think the best thing to do here is just hide the cheats so that they're only acessible through modifying the config file (e.g. by default the cheats are all disabled and hidden from the menu but by changing dirtyHacker=false in the config file they'd come back)


Definitely! I'll whip that up once 1.3.1 drops :p

so awesome! dirtyHacker=false is sweet ;)
 
New forum member and a very recent new T-MEC Mod user.

I don't have much to add in terms of new features as I have not fully explored the interface.

I am primarily a multi-player user so this is really the only option available to make engineering and building easier. I am a proponent of leaving the "cheats" in place. It makes solo building at the cavern layer and below considerably less problematic. I only use them when building as to employ them in gameplay makes the game boring.

Thank you for your hard work and I support whichever direction the group chooses to move.
 
New forum member and a very recent new T-MEC Mod user.

I don't have much to add in terms of new features as I have not fully explored the interface.

I am primarily a multi-player user so this is really the only option available to make engineering and building easier. I am a proponent of leaving the "cheats" in place. It makes solo building at the cavern layer and below considerably less problematic. I only use them when building as to employ them in gameplay makes the game boring.

Thank you for your hard work and I support whichever direction the group chooses to move.

:D About multiplayer, since it does have a potential to get abused, what kind of "check" would you like?
e.g.
1) Handing out a custom server.exe
2) An admin/the server console has to write "Allow Mechmod"
3) Totally disable multiplayer (I would be against it)
4) Use a specific port when connecting to the server
5) Something else?

Also, that kind of "check" would not have to be used in Steam multiplayer, right?
 
@stefnotch - I'll have to give that some thought as there has to (should) be a failsafe to prevent outright cheating, yet still allow for easier building.

The first two options at first blush seem the best approach with # 2 seeming to be the easiest to implement and control from a server admin perspective.

Is it possible for Mechmod to do a player count and disable god mode if there are more than one player present?
 
it is hard to take back something that has been given. We all want more and sometimes that is less.
Absolutely, I think you designers need to strain against the problems of 'design by committee', like that Simpsons episode, where the long lost brother makes the mistake of letting the whole family design his new car, and ends up with this car-tastrophy!:
latest

Point being: be a little bit ruthless with cutting/limiting features to fit your vision. Most of your (eventual) users are yet to download and will never miss what they didn't know about. The rest of us here are clearly flexible, forgiving and just excited to be along for the ride! :happy:

Which reminds me, I was going to say again how much of a help and a pleasure it's been to have the mod's camera, time, (and other) controls to had. Helping me with my latest Gifs, which I would happily spam here... But I think one of you two should start a new T-MEC thread: "[Mechmod] - Show us what you've built or have been working on using the mod!", for users to show off it's capabilities (and as another source of feedback).

2) An admin/the server console has to write "Allow Mechmod"
Any measure that works with the existing, vanilla, server.exe is a clear winner (to avoid you guys having to recompile that). So that would be a winner (or specific port, as a dodgy work around). Does it have a config file (no)? I'm pretty keen that multiplay server hosts should have to give explicit consent for it's use. Only seems right.

do you think a persistent watermark is nessecary?
Yes. That is my opinion: there should be a faint, but visible, (Mechmod) icon always visible when using the modded exe. (Gameiki did this with the test tube animation, right?) It's just nice and clear and un-ambiguous. No one has to ask a video maker if they were using Mechmod or not, it's there on show, etc. Also reminds the user in case they forgot to switch back executable files.

Which reminds me (side note), why does Windows (7) retain the Mechmod Terraria.exe icon after swapping back to the vanilla file?:
Cropper2016-03-07-04-39-26-8944237.png


I think the best thing to do here is just hide the cheats
I think that this does seem to be the compromise we are centering in on. I'm not sure that giving instructions for people to have to go fiddle in a(nother) file is necessary, in this scenario, though. How about a just a (sub)menu option to enable the more abusable features. Have it pop-up a second dialogue box to click past giving a warning of the intended purpose of these extra features, and the compromises enabling them will bring (that you guys would have to program in):
  • Disable all achievements (while active).
  • Disable world's kill count increment (no banners).
  • Disable world progression on boss kill.
  • (Disable all mob drops? - Tricky because one may be testing automated item collection...)
Then, ideally, it should be made impossible to achieve any of the above by quickly disabling supplemental (aka cheat) mode. Which would mean either being clever, and somehow noting all monsters that were already alive when cheat mode was still on, and continuing to negate them triggering the above things. Or vice-versa, not allow cheat-mode to end until all monsters are dead (tricky for user). Or be more heavy handed and have a... 10 second?... cooldown before cheatmode ends. Or even force player to re-load their world to end cheatmode (which is always defaulted to "off" on each world launch).

The list of things I think should be restricted to this mode include (but might not be limited to):
  • God mode and/or 'quiet' mode (no spawns/bosses).
  • Placing limit.
  • Copy-pasting!
  • UFO speed. (Might this be simplified to turbo-UFO on/off? say 400%? Also, try to clearly state in the first post documentation what each feature is for, e.g. here exploring map rapidly, right? where-as a map view enabled Rod of Discord would be for getting where you want to be fastest.)
  • *Not* any of the wire view options, dummy (view) options, or camera/time control options (I think).
  • Spawn, give, teleport chat commands, including auto-place (if you're keeping that? It seems complicated and I've not tried it yet.)
  • Infinite wire/actuators (which should be combined to one option), I could go either way on. I don't feel like the value of them if *huge*, and as is, it won't (/shouldn't) let you mint money for other things (although, if it does, it should be counted as a cheat).
As well as infinite wire/actuators, any reason why no infinite switches, levers, (detonators), pressure plates, PP track, booster track, timers, target dummies....? Perhaps even infinite wired statues, but that might definitely be considered a higher tier/seperate cheat. Although, infinite use would mean that you'd still need at least one, to get started...

you mean wire cutters having the same functionality as the Mechanical Ruler?
What is the Mechanical ruler suppose to do (differently)? What I was suggesting, is to reduce the number of options in the menus, by making wiring unaffected by lighting (i.e. fully bright) under appropriate conditions of holding the wire cutters. A little quality of life enhancement that I see no reason to not have enabled whenever Mechmod is on. You *could* then have a single toggle option for 'smart wire lighting', for those who take exception to being able to see their wires *too* clearly, but being smart with the interface might let you do away with an entire options sub-menu.

Engineer's Cell Phone?[...]What else would this item display?
Ok, so hang ten on creating all-out new items then, if it's tricky. Could you just rename the regular cellphone when the mod is active? Perhaps re-sprite it slightly? I couldn't think of any extra info it should display, other than biome(s) selected and spawn rate. Might you wrap up a slow motion rate display with it's (extra) info too? (Or vice versa.) Ideally you'd have little enable-disable circles, like the existing data options, but I don't see where there's space on screen to do in neatly...

Other suggestions for this tri-corder read-out people? What do you wish you could see? For debugging builds, etc... Erm, total mob count (out of 200 possible), total projectile count?.....
 
Absolutely, I think you designers need to strain against the problems of 'design by committee', like that Simpsons episode, where the long lost brother makes the mistake of letting the whole family design his new car, and ends up with this car-tastrophy!:
latest

Point being: be a little bit ruthless with cutting/limiting features to fit your vision. Most of your (eventual) users are yet to download and will never miss what they didn't know about. The rest of us here are clearly flexible, forgiving and just excited to be along for the ride! :happy:
That's a great reference! Thanks, I totally agree :p
(apart from that pun, respect -10)
Which reminds me, I was going to say again how much of a help and a pleasure it's been to have the mod's camera, time, (and other) controls to had. Helping me with my latest Gifs, which I would happily spam here... But I think one of you two should start a new T-MEC thread: "[Mechmod] - Show us what you've built or have been working on using the mod!", for users to show off it's capabilities (and as another source of feedback).
N'aw, thanks! I'm loving your gifs though. That last one's given me a good idea ...
I like that idea, but it seems kind of spammy, almost forcing Mechmod on users who are just here to talk about hoiks. I'll reconsider the idea later once the fancier building features are implemented properly.

Any measure that works with the existing, vanilla, server.exe is a clear winner (to avoid you guys having to recompile that). So that would be a winner (or specific port, as a dodgy work around). Does it have a config file (no)? I'm pretty keen that multiplay server hosts should have to give explicit consent for it's use. Only seems right.
Oop. I didn't even consider Multiplay/other external servers that probably won't allow you to use custom exes. There are plenty of things we could do server-side, but unfortunately we can't access (much) of that from a client. The option that sits best with me is a custom server exe, purely because I'm instinctively a bit iffy about the client disallowing itself from joining the server for security reasons; that's not how things are supossed to work and is basically like guarding a bank vault by sternly asking people to not rob it. However, this is a game, not a banking website (plus anybody who can hack past a hardcoded restriction can probably hack the cheats in anyway ...)
I'll go through the options here:
1) Handing out a custom server.exe
2) An admin/the server console has to write "Allow Mechmod"
3) Totally disable multiplayer (I would be against it)
4) Use a specific port when connecting to the server
5) Something else?
1) Best option in terms of convenience-for-us and proper security, but worst version in terms of convenience-for-you

2) I'm not entirely sure if we can see this. AFAIK, chat is not cached on the server, so the admin would have to write it while the player is present, which partly defeats the point. One option is to make the player a 'ghost' until somebody says "Allow Mechmod", but a) that's a pain in the :red: and b) it's either anybodycansayitatall or only-the-server (which come to think of it is the only real option, how do you connect to a server if nobody else is there? but it may not be fully doable, plus can external automated servers even do that?)

3) ... nah.

4) This doesn't sit well with me either. It takes away from the experience of vanilla users (because let's face it, there's always somebody who misses the connection instructions and instead only looks at the IP) because they either won't connect or have to manually change it anyway, plus I'm (again) not even sure if it could work for some things (Steam Multiplayer, external servers?)

5) I'm think that a TShock plugin could be doable, and should work pretty well. It obviously wouldn't work with the vanilla server, but it's the next best thing. Thoughts?
Yes. That is my opinion: there should be a faint, but visible, (Mechmod) icon always visible when using the modded exe. (Gameiki did this with the test tube animation, right?) It's just nice and clear and un-ambiguous. No one has to ask a video maker if they were using Mechmod or not, it's there on show, etc. Also reminds the user in case they forgot to switch back executable files.
Ok :D Sure! Just asking: why do you [think it's neccesary to] switch executable files when not using Mechmod?
Which reminds me (side note), why does Windows (7) retain the Mechmod Terraria.exe icon after swapping back to the vanilla file?:
index.php
Yay! I'm glad it's not only me. It happened to me when I switched from TRt to Mechmod, and kinda stressed me out a bit :p It's just a Windows bug, I think you just have to readjust the view size or something to reset it. No harm done though, it's just due to Windows caching the icon, you're still using the vanilla .exe :p
I think that this does seem to be the compromise we are centering in on. I'm not sure that giving instructions for people to have to go fiddle in a(nother) file is necessary, in this scenario, though. How about a just a (sub)menu option to enable the more abusable features. Have it pop-up a second dialogue box to click past giving a warning of the intended purpose of these extra features, and the compromises enabling them will bring (that you guys would have to program in):
  • Disable all achievements (while active).
  • Disable world's kill count increment (no banners).
  • Disable world progression on boss kill.
  • (Disable all mob drops? - Tricky because one may be testing automated item collection...)
I liked the configfile option because it didn't restrict anything, but still meant that you'd have to close the game, edit the file then restart it to enable cheating mode. All of those (should) be possible. Just asking (again), what kind of situations are you thinking of that you'd use cheats (mainly godmode). Most things can be viewed from a distance with screenlock if neccesary. Either way, that's a good option, and @stefnotch, @thejaxster and you seem to all agree with it?

Or even force player to re-load their world to end cheatmode (which is always defaulted to "off" on each world launch).
I like this option.
auto-place (if you're keeping that? It seems complicated and I've not tried it yet.)
yeah, it's not intended to be used properly yet, hence why there isn't proper documentation for it and it's hidden behind a chat command. it won't kill your world, but it just doesn't work 100% yet.

I have to agree with all of that though, sounds good.
What is the Mechanical ruler suppose to do (differently)? What I was suggesting, is to reduce the number of options in the menus, by making wiring unaffected by lighting (i.e. fully bright) under appropriate conditions of holding the wire cutters. A little quality of life enhancement that I see no reason to not have enabled whenever Mechmod is on. You *could* then have a single toggle option for 'smart wire lighting', for those who take exception to being able to see their wires *too* clearly, but being smart with the interface might let you do away with an entire options sub-menu.

The Mechanical ruler is just the wire-highlighting functionality with all colors built-in. It's a weird item choice, yeah, but it makes the most sense out of the options we had.

Okay ... so wires are normally affected by lighting, but selecting a wrench highlights wires of that color?

Ok, so hang ten on creating all-out new items then, if it's tricky. Could you just rename the regular cellphone when the mod is active? Perhaps re-sprite it slightly? I couldn't think of any extra info it should display, other than biome(s) selected and spawn rate. Might you wrap up a slow motion rate display with it's (extra) info too? (Or vice versa.) Ideally you'd have little enable-disable circles, like the existing data options, but I don't see where there's space on screen to do in neatly...

Other suggestions for this tri-corder read-out people? What do you wish you could see? For debugging builds, etc... Erm, total mob count (out of 200 possible), total projectile count?.....
I like that idea! So, probably slowmotion rate, camera speed, zoomlevel (if zooming ever works) ...?


Okay, after all of that (sorry for the short replies by the way lol, I'm getting tired -_-), I''d like to steal this post to announce that Mechmod is open-source! Check the link here: https://gitlab.com/mechmod/Mechmod/

As it stands, the repo's files are all in .patch files so that we're not illegally distributing the entirety of Terraria's code. As outlined in the README at that repo, it isn't really meant for contributing to the code, only for browsing, use of the issue tracker, and contributing to the Art folders.

I've got an automated program stitched together to generate these patches, but it takes a while and is annoying to do every commit, so we're internally working with a private repo and then updating the public repo every week or so. If you want to check in on what progress we're making, look at the commit history, and you should see the changes we make in increments.

Probably the biggest reason why I wanted to do this was so that we could make full use of the issue tracker. It's just a centralized place for us to keep track of new feature requests, bugs and other things that's more manageable than noting everything in a todo.md file. Note that the issue tracker is not solely for bugs/glitches. Think of the mod not having a certain feature an issue :p

Each issue can have multiple labels (I've got three labels set up already: bug, feature-request and modification. any suggestions for more?), a weighting, and its own comment thread.

Seriously, it makes keeping track of things and organizing our priorities much easier. I'd really appreciate it if anybody could put something up on there when requesting anything. Anybody can add an issue as long as they have a GitLab account ... which is still annoying, so If you'd like to add something without making an account, PM it to either of us and we can forward it in through.

I've just put up a few issues now regarding the Cheats menu, Mac support and Autoplace. Call this our todo list. Again note that each issue has it's own comment thread, so we're free to discuss each issue in a centralized and organized place. (nb: issues #1 to #4 are old, sorry)
Saying this for about the third time: I'd appreciate it massively if anybody could contribute to the Issue tracker. I'm not meaning to take discussion away from this thread, so if you have any proper thoughts or questions for us still put them here, but if there's a relatively simple idea, [ask us to] throw it on the issues page. Thanks a heap guys!
 
I like that idea, but it seems kind of spammy, almost forcing Mechmod on users who are just here to talk about hoiks. I'll reconsider the idea later
Meh! Hoiks, shoiks... This is where the buzz is at. I think it'll be a good opertunity for people to post up little things they probably wouldn't have ventured to create an entire thread for, etc. Plus the extra feedback for you guys, as to how the Mod's being used. So anyway, don't wait to long, or I might start the thread myself! :p;)

1) Best option in terms of convenience-for-us
Oh, well, if a custom server.exe is 'easy' for you guys, that seems reasonable. I just thought it would be doubling up work for you guys after each update (and making another non-stardard game file to worry about).
AFAIK, chat is not cached on the server, so the admin would have to write it while the player is present
Ah, now I see what was meant by that option. Right, chat remains visible (in the terminal screen) of the server, but isn't available to the client (after it scrolls off their chat area, or they log off). Shame.

TShock, I have no experience with. I've heard (via @critcodedtuna) that it's unstable with certain things, so not always a good option. But this could be an option still, if you know what's going on there.

Also, if using specific ports is too ugly, what about a specific character string in the server password? PW = "Mechmod rocks".

why do you [think it's necessary to] switch executable files when not using Mechmod?
Many people are nervous about things they don't fully understand, so I would expect not want to risk running it when joining a (non-mechmod) multiplayer server, or doing an (official) speed run, or such. For me, I'll probably be leaving it on all the time I'm pottering about, but it's distracting to have it there when (if) I'm doing a regular play-through, particularly in multiplayer. Your modded exe did crash out the first time i used it too, using the regular Rod of Discord after trying the camera controls, but that's not recurred, and might not even have been caused by any of your modifications. Still, to feel even safer for stability, if not using any of the features anyway.
It's just a Windows bug, I think you just have to readjust the view size or something to reset it.
I presumed it's just Windows, but while showing large icon thumbnails displays the original (tree only) icon, that (and copious F5 use) doesn't reset it. Do you guys have to mod the icon(s) back in each time too?
what kind of situations are you thinking of that you'd use cheats (mainly godmode).
I don't reallly think I would, but there's an argument there for when working with bosses (or hard mobs) to figure out their behavior and/or build things to fit around them, or something... Or when testing an AFK grinder... Which makes me think, maybe it should let you loose health, be then simply reset it to full instead of dying...? (Ditto mana, if keeping that.) You could even still spawn a gravestone when you should have died... Or perhaps display a gravestone/skull icon (next to health hearts), displaying a count of the number of deaths you would have had. Or, you could modify the heart icons, to be, like, iron/mechanical hearts, or something, when they are impervious in god mode.

Oh and another-other potential extra feature I'd thought of: selective time freeze, Bernard's Watch, Professor Xavier mode - pause all NPCs (and projectiles) except for player! One could make tweaks to mob hoiks and such as they step through (in slow-mo). Or positions trap frameworks around monsters/bosses in-place... I Dunno if other would like these, or how useful it would be, relative to coding difficulty and potential problems. Plus an extra shortcut key?...

Speaking of which!: can we have a shortcut key to repeat the last chat command? An 'echo' feature, for when you've just spawned a test monster with an irritatingly long name... Or want to reset player positon by teleporting x/y... Or repeating that convoluted auto-place command, or whatever... :)

Oh, and @stefnotch, would you mind adding links in this top post to this wiki page which helpfully lists all the monster, item, etc, names and ID numbers (with pictures, how helpful!): http://terraria.wiki.gg/Data_IDs (It doesn't have item IDs for "/give", know somewhere that does?)

Oh, and I couldn't get summon by NPC ID number to work: e.g. "/summon 489" just returns "NPC -100 not found". Am i missing some syntax?

The Mechanical ruler is just the wire-highlighting functionality with all colors built-in.
Really? I can't get my
Mechanical_Ruler.png
to do anything different either when equipped or held...
Okay ... so wires are normally affected by lighting, but selecting a wrench [...]
Gives full illumination to all wires (I think, not just that color). Probably a highlighting effect too (via a little opacity on other color wires). Specific wires highlight when hovering or *adjacent* to a wire of that wrench color (just added the adjacency idea...hmm). Then wire cutters provide full illumination to *all* wire colors and actuators. They highlight the specific wire they will cut from when hovering (hence where all colors overlap, it will just highlight the red one initially).

I think this functionality would allow pretty much all the display options available, while staying fairly intuitive, and whatever mechanical ruler feature (I'm not seeing). And leave just a on/off toggle to have vanilla wire visibility instead.

I'm not meaning to take discussion away from this thread, so if you have any proper thoughts or questions for us still put them here, but if there's a relatively simple idea, [ask us to] throw it on the issues page.
Oooh, interesting! Good work. :) My inclination, at this second, however, is to maintain my arms length distance from your project, rather than pushing directions directly into your inner circle. Would it be lots of trouble to ferry my (and other) suggestions over from this forum, yourselves?

Oh, and definitely add this link and information to the top post (very buried in there)! (Oh, and that link "...mechmod/Mechmod" gives me a "404 The page you're looking for could not be found." error page...)
[DOUBLEPOST=1457406444,1457382972][/DOUBLEPOST]Oh, and another quick thought: how far have you got with making hoiks more rapidly? How about having right clicking with any hammer immediately shaping the block you're hovering over to the same slant as the last block you manually hammered...? Obviously it won't lay an entire length instantly, but it should be fairly intuitive while speeding things up by perhaps an order of magnitude (avoiding the somewhat unpredictable number of hits often needed). Especially if you didn't have to re-click for each block, just hold down (perhaps a little too risky?). That would allow you to hold the button down below you and zip yourself along as you make them... In which case that would be *very* fast, perhaps too fast! :eek: Maybe limit it to the use time of the hammer still... :)

Edit: And a (minor) tweak: Could you make the screen snap back to player smoother from locked position, with the same glide (or cut effect) that the game uses normally for teleportoring? That'd be a classy touch. :D
 
Last edited:
Ahh! Computer crashed, I lost my reply :( I'll quickly sum things up.

A custom server is pretty easy. Note that we don't actually have to keep re-releasing it - as (most of) the features are client-side helpers the server is the same as Vanilla anyway.

Yeah, chat info isn't cached by the server, but even if it was, it's unlikely that there'd be need to repeatedly sendd that chat to each new connecting client. But hang on ... what about the MotD?

I fully understand your nervousness about using something different - that's perfectly valid and come to think of it I'd probably be doing the same thing (if I actually played Terraria properly anymore) P.S. do you have the log for that crash? (should be in client-crashlog.txt)

What do you mean by mod the icon back in?
I don't reallly think I would, but there's an argument there for when working with bosses (or hard mobs) to figure out their behavior and/or build things to fit around them, or something... Or when testing an AFK grinder... Which makes me think, maybe it should let you loose health, be then simply reset it to full instead of dying...? (Ditto mana, if keeping that.) You could even still spawn a gravestone when you should have died... Or perhaps display a gravestone/skull icon (next to health hearts), displaying a count of the number of deaths you would have had. Or, you could modify the heart icons, to be, like, iron/mechanical hearts, or something, when they are impervious in god mode.

Oh and another-other potential extra feature I'd thought of: selective time freeze, Bernard's Watch, Professor Xavier mode - pause all NPCs (and projectiles) except for player! One could make tweaks to mob hoiks and such as they step through (in slow-mo). Or positions trap frameworks around monsters/bosses in-place... I Dunno if other would like these, or how useful it would be, relative to coding difficulty and potential problems. Plus an extra shortcut key?...

I like these ideas, but it seems a waste to put effort into a shady back-alley feature ...

I love that idea!
Speaking of which!: can we have a shortcut key to repeat the last chat command? An 'echo' feature, for when you've just spawned a test monster with an irritatingly long name... Or want to reset player positon by teleporting x/y... Or repeating that convoluted auto-place command, or whatever... :)
I keep perssing Up and wondering why it isn't working, this is a must-have feature.
Oh, and @stefnotch, would you mind adding links in this top post to this wiki page which helpfully lists all the monster, item, etc, names and ID numbers (with pictures, how helpful!): http://terraria.wiki.gg/Data_IDs (It doesn't have item IDs for "/give", know somewhere that does?)

Oh, and I couldn't get summon by NPC ID number to work: e.g. "/summon 489" just returns "NPC -100 not found". Am i missing some syntax?
Item ID's for give are in the first section of that page (in a different link though)
That's ... silly coding. @stefnotch tch tch tch ... I can't understand your train of thought there :D why did you log the npc id in the error message when the whole reason that there's an error was that you couldn't set the ID to anything ...
Gives full illumination to all wires (I think, not just that color). Probably a highlighting effect too (via a little opacity on other color wires). Specific wires highlight when hovering or *adjacent* to a wire of that wrench color (just added the adjacency idea...hmm). Then wire cutters provide full illumination to *all* wire colors and actuators. They highlight the specific wire they will cut from when hovering (hence where all colors overlap, it will just highlight the red one initially).

I think this functionality would allow pretty much all the display options available, while staying fairly intuitive, and whatever mechanical ruler feature (I'm not seeing). And leave just a on/off toggle to have vanilla wire visibility instead.
Awesome! Thanks! That'sa much better way of doing things ...
Oooh, interesting! Good work. :) My inclination, at this second, however, is to maintain my arms length distance from your project, rather than pushing directions directly into your inner circle. Would it be lots of trouble to ferry my (and other) suggestions over from this forum, yourselves?

Oh, and definitely add this link and information to the top post (very buried in there)! (Oh, and that link "...mechmod/Mechmod" gives me a "404 The page you're looking for could not be found." error page...)
That's the whole idea! Please do fill taht with any and all of the ideas!

Yeah, that's the main reason why I decided to 'open it up' like this; between all of the discussion here I'm losing track of everything we've agreed on. I'm going to have to scroll through the thread and add everything ...:sigh:

Oop! Sorry! https://gitlab.com/mechmod/MechmodPublic is the proper link ...
Oh, and another quick thought: how far have you got with making hoiks more rapidly? How about having right clicking with any hammer immediately shaping the block you're hovering over to the same slant as the last block you manually hammered...? Obviously it won't lay an entire length instantly, but it should be fairly intuitive while speeding things up by perhaps an order of magnitude (avoiding the somewhat unpredictable number of hits often needed). Especially if you didn't have to re-click for each block, just hold down (perhaps a little too risky?). That would allow you to hold the button down below you and zip yourself along as you make them... In which case that would be *very* fast, perhaps too fast! :eek: Maybe limit it to the use time of the hammer still... :)

That was the biggest holdup in auto-placing. That's a really important thing - hoiking is the central feature of (nearly) every mech build, and for big ones it's a pain in the :red: (I'm looking at you, auto star farm :mad:). I couldn't actually get a sort of auto-hoik feature to work - I can't seem to set blocks to a slope via code. I'll look at it again soon - it's a high priority.
Edit: do you want some sort of feature to lock wire-placing in a straight line?

Hehehehe. Two steps ahead of you! I've already done that (this gif was from a while ago in page 7)


Keep in mind that that was taken on my 2GB RAM laptop with Firefox, Visual Studio and Terraria open all at the same time, so it's not nearly that laggy in normal use. It actually looks really neat.

Edit: I feel silly now. I put up all of the issues on the private repo before - they're copied over now though ...
 
Last edited:
I liked the configfile option because it didn't restrict anything, but still meant that you'd have to close the game, edit the file then restart it to enable cheating mode. All of those (should) be possible. Just asking (again), what kind of situations are you thinking of that you'd use cheats (mainly godmode). Most things can be viewed from a distance with screenlock if neccesary. Either way, that's a good option, and @stefnotch, @thejaxster and you seem to all agree with it?

I like the config file idea, defaulting to mods off is good to accommodate the users with concerns of cheating. Really any user wanting a custom game mode should be able to use a config file.
 
Ahh! Computer crashed, I lost my reply :( I'll quickly sum things up.
Geez, you really don't have much luck with posting here... Maybe compulsive use of a clipboard manager, to periodically copy out what you've typed as a post gets bigger (I'm paranoid).
if I actually played Terraria properly anymore
Well, that's just it, you guys are playing with the game in a very meta way (re-structuring parts of it), while I'm largely playing it in a different meta way (making things to show others), it's important to try to stay in touch with 'naive' gamers and/or those who *were* unfamiliar with this mod, to see the aspects of it we've now habituated to and take for granted.
do you have the log for that crash? (should be in client-crashlog.txt)
Hmm, must do then. Can't seem to pin down the specifc crash for sure (from my comprehensive screen shot history), but it might well be the second of these last 4...(?) The 3rd and forth (last) are Mechmod crashes from copying the entire world, I think.
0/02/2016 20:10:57
System.Exception: Map meta-data is invalid.
at Terraria.Map.MapHelper.LoadMapVersion2(BinaryReader fileIO, Int32 release)
at Terraria.Map.WorldMap.Load()

24/02/2016 05:43:15
System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.
at Terraria.UI.Chat.ChatLine..ctor()
at Terraria.Main.DrawMenu(GameTime gameTime)
at Terraria.Main.Draw(GameTime gameTime)
at Microsoft.Xna.Framework.Game.DrawFrame()
at Microsoft.Xna.Framework.Game.Tick()
at Microsoft.Xna.Framework.Game.HostIdle(Object sender, EventArgs e)
at Microsoft.Xna.Framework.GameHost.OnIdle()
at Microsoft.Xna.Framework.WindowsGameHost.RunOneFrame()
at Microsoft.Xna.Framework.WindowsGameHost.ApplicationIdle(Object sender, EventArgs e)
at System.Windows.Forms.Application.ThreadContext.System.Windows.Forms.UnsafeNativeMethods.IMsoComponent.FDoIdle(Int32 grfidlef)
at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.Run(Form mainForm)
at Microsoft.Xna.Framework.WindowsGameHost.Run()
at Microsoft.Xna.Framework.Game.RunGame(Boolean useBlockingRun)
at Terraria.Program.LaunchGame(String[] args)

24/02/2016 09:16:51
System.IndexOutOfRangeException: Index was outside the bounds of the array.
at Terraria.Lighting.LightTiles(Int32 firstX, Int32 lastX, Int32 firstY, Int32 lastY)
at Terraria.Main.Draw(GameTime gameTime)
at Microsoft.Xna.Framework.Game.DrawFrame()
at Microsoft.Xna.Framework.Game.Tick()
at Microsoft.Xna.Framework.Game.HostIdle(Object sender, EventArgs e)
at Microsoft.Xna.Framework.GameHost.OnIdle()
at Microsoft.Xna.Framework.WindowsGameHost.RunOneFrame()
at Microsoft.Xna.Framework.WindowsGameHost.ApplicationIdle(Object sender, EventArgs e)
at System.Windows.Forms.Application.ThreadContext.System.Windows.Forms.UnsafeNativeMethods.IMsoComponent.FDoIdle(Int32 grfidlef)
at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.Run(Form mainForm)
at Microsoft.Xna.Framework.WindowsGameHost.Run()
at Microsoft.Xna.Framework.Game.RunGame(Boolean useBlockingRun)
at Terraria.Program.LaunchGame(String[] args)

28/02/2016 16:37:21
System.IndexOutOfRangeException: Index was outside the bounds of the array.
at Terraria.Graphics.MapCapture.MapCaptureInterface.Update()
at Terraria.Graphics.MapCapture.MapCaptureManager.Update()
at Terraria.Main.Draw(GameTime gameTime)
at Microsoft.Xna.Framework.Game.DrawFrame()
at Microsoft.Xna.Framework.Game.Tick()
at Microsoft.Xna.Framework.Game.HostIdle(Object sender, EventArgs e)
at Microsoft.Xna.Framework.GameHost.OnIdle()
at Microsoft.Xna.Framework.WindowsGameHost.RunOneFrame()
at Microsoft.Xna.Framework.WindowsGameHost.ApplicationIdle(Object sender, EventArgs e)
at System.Windows.Forms.Application.ThreadContext.System.Windows.Forms.UnsafeNativeMethods.IMsoComponent.FDoIdle(Int32 grfidlef)
at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.Run(Form mainForm)
at Microsoft.Xna.Framework.WindowsGameHost.Run()
at Microsoft.Xna.Framework.Game.RunGame(Boolean useBlockingRun)
at Terraria.Program.LaunchGame(String[] args)
What do you mean by mod the icon back in?
I don't remember how one changes the (embedded) icon of an exe, do you not have to reset it to your alternate tree and cog one, each time you publish?
Item ID's for give are in the first section of that page (in a different link though)
Ah, yes, here (many, many items!): http://terraria.wiki.gg/Item_IDs
Not sure what you're saying about my failing to get mobs to spawn by ID number (when they work fine by name), are you saying you don't know what went wrong there?
I've already done that (this gif was from a while ago in page 7)
Gah, yes, that's familiar. I did make a special effort to try to read back through the 15 pages of posts from here and MEFBAEA (oh. @stefnotch add a link to the Mefbaea thread: "mod formally known as MEFBAEA", in this top post...?), but memory can be a bit sieve-like... That smooth snap-back would have made a little difference to the big Gif I made today. Oh well, I'd better stop haranguing you guys with more suggestions and such, so that you can finish off what you were already working on...
Yeah, that's the main reason why I decided to 'open it up' like this; between all of the discussion here I'm losing track of everything we've agreed on. I'm going to have to scroll through the thread and add everything ...
Well, see, I appreciate any (voluminous!) back and forth here makes more 'work' for you guys, but really this should be a well of inspiration for you all to grazz upon as you desire. I don't think I should be coming into Mechmod's inner-sanctum and writing my suggestions as items on you communal todo list (maybe I misunderstand the setup...?) I mean, I would, because I have a tendancy towards over-reach and taking on too much (and taking control), but I don't think I should do. I'd want to have ever finer control on details (like some formatting on the top post is bugging me, but it's better I hold my peach, I think ;))... You guys should just take what you like from in here as and if you like what you see. :)
 
@ZeroGravitas
The crashes are also stored in the Event Viewer. (Event Viewer ==> Windows Logs ==> Application)

thing.png


(Yes, that program in the background is paint.)



Well, see, I appreciate any (voluminous!) back and forth here makes more 'work' for you guys, but really this should be a well of inspiration for you all to grazz upon as you desire. I don't think I should be coming into Mechmod's inner-sanctum and writing my suggestions as items on you communal todo list (maybe I misunderstand the setup...?) I mean, I would, because I have a tendancy towards over-reach and taking on too much (and taking control), but I don't think I should do. I'd want to have ever finer control on details (like some formatting on the top post is bugging me, but it's better I hold my peach, I think ;))... You guys should just take what you like from in here as and if you like what you see. :)

If I do like one of your suggestions (which is pretty often), can I at least ask you to post it over there as well? (More work for you, less for us! :naughty: )

Not sure what you're saying about my failing to get mobs to spawn by ID number (when they work fine by name), are you saying you don't know what went wrong there?

Whoops, I screwed up in the main post. /summon can only take a name. (The error message writes an ID though. My bad)
Should I make it able to take an ID as well?
 
he crashes are also stored in the Event Viewer.
I see nothing looking related to Terraria or the times the crashes listed above happen... Is this important, aren't the game logs sufficient for what they are worth?
can I at least ask you to post it over there as well?
You could come back and ask me to post a particular suggestion, but then I think maybe better you note it down yourself, such that you understand what wants doing best, seeing as you guys will actually be doing it. I'm not up to semi-kind-of project managing Mechmod, sorry.
Should I make it able to take an ID as well?
Sure, that would make sense, right, seeing as the others do and that can be quicker than trying to spell a full name. :)
 
Geez, you really don't have much luck with posting here... Maybe compulsive use of a clipboard manager, to periodically copy out what you've typed as a post gets bigger (I'm paranoid).
Bahhahahah ... it just seems that sometimes drafts arent saved :(
Hmm, must do then. Can't seem to pin down the specifc crash for sure (from my comprehensive screen shot history), but it might well be the second of these last 4...(?) The 3rd and forth (last) are Mechmod crashes from copying the entire world, I think.
Ahh. Thanks - it seems that it was the second-last one, an error in the lighting system that we can't actually tell the source of. Slightly irritating ...
Just a followup question, you weren't near the edge of the world or anything were you?
I see nothing looking related to Terraria or the times the crashes listed above happen... Is this important, aren't the game logs sufficient for what they are worth?
Funny - the Event Viewer doesn't show them for me either :/ Either way, it's no different to the game's crashlog.
You could come back and ask me to post a particular suggestion, but then I think maybe better you note it down yourself, such that you understand what wants doing best, seeing as you guys will actually be doing it. I'm not up to semi-kind-of project managing Mechmod, sorry.
That's fine - @stefnotch: we'll just have to remember to note each suggestion as it comes.
Whoops, I screwed up in the main post. /summon can only take a name. (The error message writes an ID though. My bad)
Should I make it able to take an ID as well?
definitely - use the same structure as /give
 
Back
Top Bottom