Jump to content

Reneer

Premium Member
  • Posts

    3671
  • Joined

  • Last visited

Posts posted by Reneer

  1. I don't understand why.What's wrong with allowing a modmaker to earn some money.

    Because Bethesda explicitly forbids mod authors from making money for developing a mod or selling mods when they license us the Creation Kit, that's why.

     

    I suppose it's easier to say "I would be highly inclined to donate to such a brilliant mod author that managed to make such a mod". Being inclined to donate isn't a payment schema.

    Yes, something along those lines would, hypothetically, provide the needed plausible deniability, though it would be a rather thin smokescreen.

  2. Thanks.

     

    If I mod sees this please feel free to lock/close if necessary. How might I go about finding a way to request someone that I'm inclined to "tip" for a specific mod I've just been especially wanting?

     

    Paying mod authors to create a mod can easily get them into trouble with Bethesda, which is one reason why such things are banned here. So you are going to have to look elsewhere to find a mod author who might be willing to take that risk.

  3. Here is a script that might help you. You will want to put this on a Quest, but you can easily modify the code to put it on a switch or button. Please note I haven't compiled this (don't feel like opening up the CK, though I really should get a compiler setup going on Notepad++) and there may be errors / bugs. If you have any questions about how or why it works, or if there is a bug, just let me know.

    Scriptname SpawnRandomActorFromFormlist extends Quest
    
    ;/
    	Copyright 2020 Reneer
    	
    	This program is free software: you can redistribute it and/or modify
    	it under the terms of the GNU General Public License as published by
    	the Free Software Foundation, either version 3 of the License, or
    	(at your option) any later version.
    
    	This program is distributed in the hope that it will be useful,
    	but WITHOUT ANY WARRANTY; without even the implied warranty of
    	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    	GNU General Public License for more details.
    
    	For the full LGPL license, see http://www.gnu.org/licenses/gpl.html
    /;
    
    FormList Property MyList Auto
    ActorBase Property ChosenBase Auto
    ObjectReference Property ChosenRef Auto
    ObjectReference Property MyMarker Auto
    Actor Property PlayerRef Auto
    
    Event OnInit()
    
    	SpawnRandomActorFromFormlist()
    
    endEvent
    
    Function SpawnRandomActorFromFormlist()
    
    	if (PlayerRef == none)
    		PlayerRef = Game.GetPlayer()
    	endif
    
    	if (MyList != none)
    		ChosenBase = (MyList.GetAt(Utility.RandomInt(0, MyList.GetSize())) As ActorBase)
    		if (ChosenBase != none)
    			if (MyMarker != none)
    				ChosenRef = MyMarker.PlaceActorAtMe(ChosenBase)
    			else
    				ChosenRef = PlayerRef.PlaceActorAtMe(ChosenBase)			
    			endif
    		endif
    	endif
    	
    endFunction
    
  4. I apologies that "Tried to PlaceAtMe the holotape terminal menu" and "Tried PlaceAtMe the holotape terminal with a model and idle" is unclear, and without actually posting code as evidence there is no belief.

     

    Following some of your posts in the MA forum it seems that you often don't actually read peoples content and jump to conclusions. Good luck with that.

     

    Since you follow my posts in the MA forum you know that I apologize for the mistakes I make when I make them. Have I accidentily misread people's content when replying to them? Yes. I'm human. Will I probably do it again at some point? Yeah, still human. But when I realize a mistake I have made, I apologize to the people I've wronged, I try to learn from my mistake, and I work towards being better in the future.

     

    So, in that vein, I'm sorry for wasting your time and making an honest mistake while simply trying to help you.

  5. Yeah, except that wasn't what you opened this thread with. You didn't show any code I could look at, you just talked about an implementation, and without ever using the word AddTextReplacementData. So forgive me for not catching on that little non-existent detail. Anyway, I won't waste any more of your time. Good luck figuring it out.

  6. @Reneer AddTextReplacementData is a good idea but it work work as it acts on an ObjectReference like an instantiated terminal. Whilst I have an ObjectReference for the Pipboy, it is not a terminal.

    In my experience you can use AddTextReplacementData to add token names directly to Objectreferences completely outside of the Quest system. It seems, in my testing, to directly attach the info to the Objectreference permanently, though I haven't had the chance to do extensive save testing yet. I've used the method to add random / 'encrypted' ASCII text to paper notes and the tokens on the Objectreference notes appear to stay filled just fine. I think if you try that idea with a Holotape before it is loaded into the Pipboy it might work. Just a guess though.

  7. It's certainly possible. You would simply need to attach a script to the elevator button and use the following code. Please note my Oblivionscript is rusty as heck and there may be ways to improve on this. Importantly, I haven't tried to compile it since I don't have Oblivion installed anymore. I hope this is helpful.

     

    Scriptname LGPL_ElevatorButton_OnActivateTeleportPlayer
    
        Copyright 2020 Reneer
    
        This program is free software: you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
        the Free Software Foundation, either version 3 of the License, or
        (at your option) any later version.
    
        This program is distributed in the hope that it will be useful,
        but WITHOUT ANY WARRANTY; without even the implied warranty of
        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        GNU General Public License for more details.
    
        Find a copy of the LGPL at https://www.gnu.org/licenses/licenses.html#LGPL.
    
    Begin OnActivate
    	set refVar to GetActionRef
    	if (refVar.GetIsReference Player == true)
    		YourDoorRef.Activate Player
    	endif
    End
    
  8. I'm here to offer feedback, not argue with any of you, so I'm out. Keep bashing whoever you guys want, I figured out a solution anyway.

    Let me guess: A certain userscript that does away with the free / premium ad page entirely. And people wonder why Nexus Mods has to continually ask for money.

     

    Mark my words, if that userscript becomes more popular, Nexus Mods will likely be forced to take action that the free users will most certainly not like.

  9. Maybe they could try scaling back their operations if they can't afford the costs?

    Scaling back would invariably make the user experience worse, not better. Sure, belt-tightening seems like a good idea on paper, but how exactly would that be accomplished? The biggest money sink for Nexus Mods, I would assume based on their Expenses Page, is the obscene cost of bandwidth chewed through by all the people who aren't financially supporting their own bandwidth usage. Scaling back on bandwidth would mean you get less of it for your mod downloads.

  10. Its not science, it understanding what you are doing and the consequences of those actions:

     

    RemoveAlItems on the player removes the Pipboy

    If the script is initiated from a holotape in the pipboy ... what happens ?

    If they player is not using the standard pipboy form ... what form does the script AddItem and EquipItem ?

    If the script can not add Pipboy functionality back to the player ... what happens.

    If the player is holding quest locked items ... what happens (especially to those with OnContainerChanged trigger scripts) ?

    & other angry end user edge conditions.

     

    I had exactly this issue with my GunGames solution that tries to outfit and equip the player with the same stuff as the opponents IN THE MIDDLE OF A GAME and then seamlessly revert back to whatever they originally had. RemoveAlItems caused so many issues that eventually I had to remove items based on specific keywords like ObjectTypeWeapon and ObjectTypeAmmo. But, I get that my aspiration for quality user experiences are different to others who may not care.

    Thank you for this post, SKK50. I mean, I'm not going to be using RemoveAllItems on the player anytime soon, mind, but it's certainly great to see someone putting in the effort to create a great user experience. I'm certain I could learn a thing or two from you on that. :)

  11. This is utterly scummy practice and I'm never coming to this website ever again.

     

    Congratulations Nexusmods, you've given me cause to never mod (and therefore, never play) any game with mods supported by your site.

     

    I hope you're pleased with yourselves.

     

    So, because you refuse to support Nexus Mods by buying them a cup of coffee (£2.99 / $3.69) a month, you're giving up 995 video games. Sounds rather counterproductive to me, but hey, it's your decision.

  12. What matters is that we can all agree having invasive premium advertisements all over the place makes this website feel like one of those shady indian websites from which you'd torrent Sony Vegas or the Adobe Suite. It wasn't this way back in the early 10's and it still ran, so the whole "but the website needs money to run" argument is mediocre at best.

    Back on May 1st, 2012, Nexus Mods had only 3,764,120 members. Today, Nexus Mods has 21,801,730 members. That's roughly an increase of about 2.2 million users per year, every year, for 8 years. And all those users are downloading mods, which takes up bandwidth, and that bandwidth costs a huge amount of money, as outlined on the Expenses page.

     

    In other words: the website needs money to run. And if you don't like how it is being run, then offer some constructive criticism. How would you go about making money to run Nexus Mods? What would you, as a user, change to make the site better? How would you improve Premium service so that more people buy in and actually support the site?

  13. The sound loop can be restarted OnLoad, but it will always start at the beginning not where it switched off. I reverted to the device being a zero range radio station where the scene(s) play(s) continuously while its quest is running regardless of the device state.

    Ah, hm. That would definitely be a better way of doing it. Honestly I didn't think about a zero-range radio station since I got caught up in avoiding radio stations altogether, but it makes perfect sense. A lot of the code I wrote isn't helpful anymore, but maybe it will be useful for someone in the future.

  14. It's certainly possible. You will want to create a Sound Descriptor that points to your audio file and set it to loop. Then create your radio activator object and put this Papyrus script on it:

    Edit:
    1.1.0 - Updated code to deal with a savegame issue (sound wouldn't play anymore) noticed by LadyEdith and also added some code to potentially deal with an issue brought up by SKK50 (sound would stop after the object unloads).

    Scriptname PlaySoundOnActivateAndLoop extends Objectreference
    
    ; Original script by Reneer. License: LGPL 3.0
    ; Version code: 1.1.0
    ; URL to license: https://www.gnu.org/licenses/lgpl-3.0.html
    
    Sound Property YourSoundDescriptor Auto
    Int Property CurrentSoundInstance = -1 Auto
    Bool Property SoundPlaying = false Auto
    
    Actor Property PlayerRef Auto
    
    Float Property PlayerDistance = 3000.0 Auto
    
    bool Property ObjUnloadedBool = false Auto
    
    Event OnInit()
    
    	if (PlayerRef == none)
    		PlayerRef = Game.GetPlayer()
    	endif
    	Self.RegisterForRemoteEvent("OnPlayerLoadGame", PlayerRef)
    
    endEvent
    
    Event OnUnload()
    
    	ObjUnloadedBool = true
    
    endEvent
    
    Event OnLoad()
    
    	if (ObjUnloadedBool == true && (SoundPlaying == true || Self.IsRadioOn() == true))
    		; assume the sound is not playing
    		; because the object unloaded previously
    		ObjUnloadedBool = false
    		CurrentSoundInstance = -1
    		ChangeSongState(true, true)		
    	endif
    
    endEvent
    
    Event Actor.OnPlayerLoadGame(Actor akSender)
    
    	if (SoundPlaying == true)
    		CurrentSoundInstance = -1
    		ChangeSongState(true, true)
    	endif
    
    EndEvent
    
    Function ChangeSongState(bool state, bool force = false)
    
    	if (PlayerRef == none)
    		PlayerRef = Game.GetPlayer()
    		Self.RegisterForRemoteEvent("OnPlayerLoadGame", PlayerRef)		
    	endif
    
    	if ((SoundPlaying == false && state == true) || force == true)
    		; no sound is playing, so start playing the sound because
    		; we are turning on.
    		Self.SetRadioOn(true)
    		if (CurrentSoundInstance == -1 || force == true)
    			CurrentSoundInstance = YourSoundDescriptor.Play(Self)		
    			SoundPlaying = true			
    		else
    			; assume the CurrentSoundInstance is playing. 
    			; TODO: Figure out how to see if audio is still playing.
    			SoundPlaying = true			
    		endif
    		Sound.SetInstanceVolume(CurrentSoundInstance, 1.0)		
    	else if (SoundPlaying == true && state == false)
    		; sound is playing, so QUIET the current sound, but don't stop playing it.
    		; Volume change since we don't want the music to actually stop
    		; playing when the radio itself is turned off.
    		Self.SetRadioOn(false)
    		SoundPlaying = false
    		if (CurrentSoundInstance != -1)
    			Sound.SetInstanceVolume(CurrentSoundInstance, 0.0)
    		endif
    	endif
    
    endFunction
    
    Event OnActivate(ObjectReference akActionRef)
    
    	if (SoundPlaying == true)
    		ChangeSongState(false)
    	else
    		ChangeSongState(true)
    	endif
    
    endEvent
    


    Please note I haven't compiled or tested this script and you will need to set up the Properties yourself, unfortunately. It might have errors or bugs, but it should be a decent starting point. If you have any questions feel free to reply and I'll do my best to help.

  15. Depends on what you mean by "stream" but, overall, yes it is possible. Here is a YouTube tutorial on how to create a radio station. If you need more help, feel free to ask. I've got a bit of experience working with the radio system.

    Edit: Not sure where my brain was the other day for not mentioning this, but if you want a modder's resource that does basically what you're looking to do, check out my Morse Code Mod.

    Also, great avatar. :smile:

  16. Hey now, could be both. :tongue:

     

    The forums here are one of the most transparent and open about bans and warnings I've ever seen.

     

    And practically every website in the history of ever censors people. Freedom of speech is not something that applies when you are on a private forum or website. Harassment, hate speech, trolling, doxxing - all those types of speech are banned on pretty much every forum and website out there. And with good reason. Companies and organizations don't need to tolerate that kind of speech like some governments do and so, rather then letting their services become a hub for harassment and trolling, those types of speech are banned because it is better for both the company and their customers to keep trolling, harassment, and other such things off their sites.

     

    And giving mod authors the ability to ban users from our mods is an extension of that. From my understanding of the situation, the moderation team here at Nexus Mods cannot keep up with the amount of harassment and stupidity that mod authors get thrown at them on a daily basis, so the most practical solution was to give mod authors the ability to police their own mod pages. Mod authors having the ability to ban people from their mods pages is simply a consequence of Nexus Mods not having the resources to fully support a moderation team to patrol a majority of the site every day to ferret out inappropriate comments.

×
×
  • Create New...