1. Post #41
    F12Bwth's Avatar
    March 2006
    609 Posts
    Night-Eagle posted:
    What would you like me to change?
    Well it isn't TOTALLY horrible that each axis and button has to be on a separate spawned controller but it still sucks if you use 3 axis and 10 buttons.

    If you do decide to make it an OPTION for all in one spawn you can have it save presets so you can choose (Basic Car, Plane Controls, etc)


    Just a note to everyone complaining that this addon seems slow. If you are using hydraulics this can be "fixed" at least temporarily. You see Hydraulics are just Elastics that can get longer or shorter. But their Constant and Dampening are determined by the weight of the props you apply the hydro to. High Constant is good but High dampening slows the hydraulic length change down alot. Our Coder at TrickysTutorials.com has written up a tool that can adjust the Constant and Dampening of existing Hydraulics by hovering over the controller to see what it is currently then you can apply whatever settings you like. Keeping the dampening under 3000 allows for a very responsive Hydro. Our custom stools however are not out for public use and can only be used on a TT.com servers http://trickystutorials.com/index.ph...nce&f=15&id=12 . The adjustments also will not save in a dup due to the way A-Dup is coded. You have to edit every hydro every time.

  2. Post #42
    Infectious's Avatar
    October 2007
    52 Posts
    Night-Eagle posted:
    What would you like me to change?
    Basically, what F12 said above, that there needs to be a separate ent for each axis and button. When you're trying to map a whole HOTAS setup for use in a tiny little SBMP cockpit it gets ridiculous.

    Also, I've been looking through your code, figuring out how to add this stuff with LUA. For one, it's fairly complex...but it seems like there is no way to simply, directly, ask for somebody's (e.g.,) X-Axis? You have to create an entry in a table and then configure it in the joyconfig menu? It makes sense if you're coding whole vehicles and you want to re-map functions but needlessly complex if you're trying to write an ent that deals with 6 axes and 26 buttons and you want a certain value to ALWAYS be an x-axis and have no use for it to ever be anything else.

  3. Post #43
    Project 41's Avatar
    January 2007
    8 Posts
    I am SO CONFUSED THE server I am playing on has the tool already installed, but when I go to configure my joystick it says

    Unknown command: joyconfig
    I am sure my joystick is working can someone tell me what I am doing wrong?

  4. Post #44
    Infectious's Avatar
    October 2007
    52 Posts
    Also, possibility, I dunno how related it is to the DirectInput and XInput system, but...Rumble/Force Feedback support? Eh? Good idea? Wire inputs for them; I believe XInput has separate vertical and horizontal controls, dunno about standard Force Feedback.

  5. Post #45
    Gold Member
    Night-Eagle's Avatar
    January 2005
    815 Posts
    I've tried working on force feedback before, but I'll try again. I'm not sure about XInput, though, it is mostly catered to one device. The last thing I was actively working on was keyboard support.

    The multi-joystick Wire SENT is complete; it just needs to undergo some testing. It can handle up to 8 inputs.

    Also: Both the server and client must install this module for it to work. The server cannot send binary modules to the client. The only way to fix this would be to have this module officially supported.

  6. Post #46
    ImageShack®'s Avatar
    July 2008
    4 Posts
    Too bad I don't have a joystick. Ah well.

  7. Post #47
    PwnedYoAss's Avatar
    December 2007
    11 Posts
    My question is what does the scaling do? Because from what I can tell it doesn't make things go faster.

  8. Post #48
    Gold Member
    Night-Eagle's Avatar
    January 2005
    815 Posts
    You're talking about the axis calibration menu?
    There are two ways to calibrate an axis:
    -Setting the minimum and maximum
    -Setting the center and the scale
    If you set the minimum and maximum, the center and scale are calculated from those values.
    If you set the center and scale, the minimum and maximum are calculated from those values.

    So, if you wanted to make a deadzone at the extremes of an axis, reduce scale to .95 and press the set button to the right of the entry.
    ...or was it increase the scale to 1.05? Hmm, I forget. It is easy enough to figure out, however, because of the real-time readouts.

  9. Post #49
    fishface60's Avatar
    May 2007
    430 Posts
    There's a problem with the Joystick's wire input when it's set to digital. It outputs "0" and "1" instead of 0 and 1, which makes them useless as the inputs don't take strings.

  10. Post #50
    Gold Member
    Night-Eagle's Avatar
    January 2005
    815 Posts
    Version 22 is now out.
    -User inputs are now sanitized more carefully (fixes fishface's above issue, prevents advanced duplicator tampering)
    -Wire Joystick Multi chip added (Supports up to 8 inputs)
    -Added custom server tags with version number
    -Added example car

  11. Post #51
    F12Bwth's Avatar
    March 2006
    609 Posts
    Night-Eagle posted:
    Version 22 is now out.
    -User inputs are now sanitized more carefully (fixes fishface's above issue, prevents advanced duplicator tampering)
    -Wire Joystick Multi chip added (Supports up to 8 inputs)
    -Added custom server tags with version number
    -Added example car
    Excellent. I will update all my servers tonight.

    ----------------
    Listening to: Henry Rollins Band - Rejection
    via FoxyTunes

  12. Post #52
    fishface60's Avatar
    May 2007
    430 Posts
    Is there any way to reorder joystick controls, right now it's a bit of a mess.

    This is the code I used.
    local LTransjcon = {}	
    local LTransJoystickControl = function()
    	--Joystick control stuff
    	
    	LTransjcon.pitch = jcon.register{
    		uid = "ltrans_pitch",
    		type = "analog",
    		description = "Pitch",
    		category = "Large Transport",
    	}
    	LTransjcon.yaw = jcon.register{
    		uid = "ltrans_yaw",
    		type = "analog",
    		description = "Yaw",
    		category = "Large Transport",
    	}
    	LTransjcon.roll = jcon.register{
    		uid = "ltrans_roll",
    		type = "analog",
    		description = "Roll",
    		category = "Large Transport",
    	}
    	LTransjcon.thrust = jcon.register{
    		uid = "ltrans_thrust",
    		type = "analog",
    		description = "Thrust",
    		category = "Large Transport",
    	}
    	LTransjcon.accelerate = jcon.register{
    		uid = "ltrans_accelerate",
    		type = "analog",
    		description = "Accelerate/Decelerate",
    		category = "Large Transport",
    	}
    	LTransjcon.up = jcon.register{
    		uid = "ltrans_strafe_up",
    		type = "digital",
    		description = "Strafe Up",
    		category = "Large Transport",
    	}
    	LTransjcon.down = jcon.register{
    		uid = "ltrans_strafe_down",
    		type = "digital",
    		description = "Strafe Down",
    		category = "Large Transport",
    	}
    	LTransjcon.right = jcon.register{
    		uid = "ltrans_strafe_right",
    		type = "digital",
    		description = "Strafe Right",
    		category = "Large Transport",
    	}
    	LTransjcon.left = jcon.register{
    		uid = "ltrans_strafe_left",
    		type = "digital",
    		description = "Strafe Left",
    		category = "Large Transport",
    	}
    	LTransjcon.launch = jcon.register{
    		uid = "ltrans_launch",
    		type = "digital",
    		description = "Launch",
    		category = "Large Transport",
    	}
    	LTransjcon.switch = jcon.register{
    		uid = "ltrans_switch",
    		type = "digital",
    		description = "Yaw/Roll Switch",
    		category = "Large Transport",
    	}
    	LTransjcon.fire1 = jcon.register{
    		uid = "ltrans_fire1",
    		type = "digital",
    		description = "Fire 1",
    		category = "Large Transport",
    	}
    	LTransjcon.fire2 = jcon.register{
    		uid = "ltrans_fire2",	
    		type = "digital",
    		description = "Fire 2",
    		category = "Large Transport",
    	}
    	
    end
    
    hook.Add("JoystickInitialize","LTransJoystickControl",LTransJoystickControl)

  13. Post #53
    Gold Member
    Night-Eagle's Avatar
    January 2005
    815 Posts
    Well, all the entries are in a subtable of jcon.reg.cat - so you could sort them as part of a custom script.

    Just run this check before you execute a custom script:
    local a = joystick
    if not type(a) == "table" then
    	return
    end
    a = tonumber(a.binaryversion)
    if not a then
    	return
    end
    if a > 1.1 then
    	return
    end
    

    I will sort entries by description when the next binary update is made (1.2).
    Note to self: Allow renaming of devices by GUID.

  14. Post #54
    20 Smartness's Avatar
    August 2008
    153 Posts
    Thank you for this! Going to have lots of fun with 360 controller and steering wheel :3

  15. Post #55
    chicob's Avatar
    April 2008
    76 Posts
    I NEED HELP i get

    exec: couldn't exec userconfig.cfg
    Host_WriteConfiguration: Wrote cfg/config.cfg

    when i try to activate my 360 controller
    and i it is installed and when i press device menu
    all i get is
    No joysticks detected.
    in counsle
    nothing pops up please help

  16. Post #56
    Gold Member
    evan_madore's Avatar
    December 2006
    265 Posts
    Night Eagle, I was wondering if you could make the areas where you enter in the Min&Max Value in the joystick-multi larger. You can only see three digits out on those values and that gets kind of confusing when you work with numbers like 3420000. It would be a very helpful little change.


    Edit: Also, is there a way to make it update the controllers? Say i have nothing plugged in, then I plug in my steering wheel, can you make the steering wheel show up? It is a pain to exit game and rejoin if you forget to plug it in.

  17. Post #57
    Gold Member
    Night-Eagle's Avatar
    January 2005
    815 Posts
    I need to update the binary for that functionality, so 1.2.

    chicob: Rename your addons folder and reinstall the module. If this works, you have a conflicting addon. Note that your controller must be plugged in before you join/create a game. Better yet, rename your garrysmod folder and start fresh if you want to be sure. This is all I can say with the information provided.

  18. Post #58
    Facepunch iSeries!
    rieda1589's Avatar
    November 2007
    4,363 Posts
    Is it possible to get a version which updates faster? The toolgun's speed is ok but the actual output is much slower which tends to make whatever you are controlling jumpy.

  19. Post #59
    chicob's Avatar
    April 2008
    76 Posts
    ha ha ha lol im not renaming my garrysmod folder again jsut to find out that a mod like Assmod is not leting me use my game corectly so i just got xpadder and teh wireless reciever
    Reply With Quote Edit / Delete Reply United States Show Events Dumb Dumb x 1 (list)

  20. Post #60
    Gold Member
    Night-Eagle's Avatar
    January 2005
    815 Posts
    Is it possible to get a version which updates faster? The toolgun's speed is ok but the actual output is much slower which tends to make whatever you are controlling jumpy.
    This is a limitation made by Garry's Mod. If you're talking about resolution, the module sends 10 times per second. However, the latency is so great that it takes a significant amount of time for the server to respond.

    The only solution would require networking without the use of console commands. Garry is opposed to this, however, because

  21. Post #61
    Æsh's Avatar
    January 2009
    26 Posts
    This is a limitation made by Garry's Mod. If you're talking about resolution, the module sends 10 times per second. However, the latency is so great that it takes a significant amount of time for the server to respond.

    The only solution would require networking without the use of console commands. Garry is opposed to this, however, because
    because huh

  22. Post #62
    Gold Member
    Deco Da Man's Avatar
    July 2007
    1,015 Posts
    Why not make it an option for servers to allow clients to connect via the socket module? (Hopefully UDP, not TCP)

    That'd solve your problems. simply release it saying to set a port and unblock it.
    Then you could tell the client the info they need to connect to.

    Edit: And you'd simply close the socket when the associated client disconnects.
    To prevent someone connecting and saying "I'm user #5!" yet they are user #8, you could send a random number via umsg, and have them send that.

  23. Post #63
    Gold Member
    Night-Eagle's Avatar
    January 2005
    815 Posts
    I thought of that, but no one has actually demonstrated a working client to server UDP connection.

  24. Post #64
    Wolvenmoon's Avatar
    December 2006
    6 Posts
    Low priority suggestion here!

    I started playing around with this and didn't have enough axis to do everything I wanted.

    It'd be immensely useful if it was possible to bind buttons to increase/decrease a virtual axis, especially for throttles. If this is possible, while you're at it if you decide to implement this, having a button that toggles between a virtual axis being at a point when pressed, and another when left would be awesome too.

  25. Post #65
    Gold Member
    evan_madore's Avatar
    December 2006
    265 Posts
    Low priority suggestion here!

    I started playing around with this and didn't have enough axis to do everything I wanted.

    It'd be immensely useful if it was possible to bind buttons to increase/decrease a virtual axis, especially for throttles. If this is possible, while you're at it if you decide to implement this, having a button that toggles between a virtual axis being at a point when pressed, and another when left would be awesome too.
    That could easily be done with wire.

  26. Post #66

    January 2009
    8 Posts
    I cant add functions for my Joystick, like
    Up = Press 8
    Down = Press 5
    Etc..

    Zeos i watched ur tut, i get no Joystick Axis thingy in Entities..
    Can you do one of the new mod?

  27. Post #67
    Gold Member
    Night-Eagle's Avatar
    January 2005
    815 Posts
    That could easily be done with wire.
    Yes, but if another player wants to use his contraption and he doesn't have enough axes, he is boned.

  28. Post #68

    October 2008
    1 Posts
    Can I use this to control the player's movement? Or just vehicles?

  29. Post #69
    Gold Member
    WeltEnSTurm's Avatar
    December 2007
    1,874 Posts
    Hell yeah, this still works after two years :D

  30. Post #70

    January 2009
    8 Posts
    I think you should add like a setup guide in the bottom, ive been wasting 5 hours of trying to find out how to make it work correctly, and all was a fail, every time xD

  31. Post #71
    cue kalamos's Avatar
    October 2007
    8 Posts
    I think you should add like a setup guide in the bottom, ive been wasting 5 hours of trying to find out how to make it work correctly, and all was a fail, every time xD
    the SBMP module won't bind the joystick controls D: i was hoping its because of my ignorance.

  32. Post #72
    adadr's Avatar
    January 2009
    263 Posts
    I can not for the life of me get this to work! please help >,<

  33. Post #73
    Gold Member
    WeltEnSTurm's Avatar
    December 2007
    1,874 Posts
    Spawn a Multi-Controller, Open the binding menu, select "Wire Joystick" on the right and now you can pull your axis/button from the left to the right.

  34. Post #74
    adadr's Avatar
    January 2009
    263 Posts
    i got numpad one to work now i will try what you said. theres only so many numpads, so i cant use that for complex things like a helicopter im working on.

  35. Post #75
    adadr's Avatar
    January 2009
    263 Posts
    ok i just tried it and it doesnt work, as there are no inputs/outputs on it. please tell me how

  36. Post #76
    jamescorbett's Avatar
    July 2007
    13 Posts
    Brilliant, perfect for planes gives you that extra bit of control. Thank you.

  37. Post #77
    nubbynub's Avatar
    October 2007
    4 Posts
    Thx love it ^^

  38. Post #78
    fishface60's Avatar
    May 2007
    430 Posts
    Finally got around to sorting the order
    SBEP = SBEP or {}
    
    function SBEP.JoystickReorder(category,order)
    	local oldCatTab = jcon.reg.cat[category]
    	local newCatTab = {}
    	if #oldCatTab != #order then
    		ErrorNoHalt("New order hasn't got the same number of entries as old order")
    		return
    	end
    	for order,description in ipairs(order) do
    		for _,data in ipairs(oldCatTab) do
    			if data.description == description then
    				newCatTab[order] = data
    			end
    		end
    	end
    	jcon.reg.cat[category] = newCatTab
    end
    
    local function JoyReorder()
    	SBEP.JoystickReorder("Fighters",{"Pitch","Yaw","Roll","Thrust","Accelerate/Decelerate",
    					"Strafe Up","Strafe Down","Strafe Right","Strafe Left","Fire 1","Fire 2",
    					"Launch","Yaw/Roll Switch"})
    	SBEP.JoystickReorder("Gyro-Pod",{"Pitch","Yaw","Roll","Thrust","Accelerate/Decelerate",
    					"Strafe Up","Strafe Down","Strafe Right","Strafe Left","Launch",
    					"Yaw/Roll Switch"})
    	SBEP.JoystickReorder("Rover",{"Turning","Accelerate/Decelerate","Strafe","Strafe Left",
    					"Strafe Right","Jump","Fire 1","Fire 2"})
    	SBEP.JoystickReorder("Boarding Pod",{"Pitch","Yaw","Roll","Yaw/Roll Switch","Launch"})
    end

  39. Post #79

    June 2008
    1 Posts
    Is it just me or is garrysmod.org not letting you get this also?

    Rather annoying.

    Edit: ah, seems garry failed at an update...

  40. Post #80
    Where the fuck did the download go!?